Name: series-workflowvkhq6 Phase: Failed StartedAt: 2026-09-11 02:42:26 +0000 UTC FinishedAt: 2026-09-11 03:40:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvkhq6[0] Phase: Succeeded StartedAt: 2026-09-11 02:42:26 +0000 UTC FinishedAt: 2026-09-11 03:40:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvkhq6[0].run-triage Phase: Succeeded StartedAt: 2026-09-11 02:42:26 +0000 UTC FinishedAt: 2026-09-11 03:40:11 +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+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMGI5MzkzZWNkNjg1ODg0YzJhMWNkNDdlNDNlNjRiM2EwYmE5NGY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgMTEgMDM6Mzk6MTAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuaW5kZXggNzc5NDEzYTM4M2I3NC4uNzhlNDI1NDlkOTkwOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuQEAgLTcsNiAmIzQzOzcsMTAgQEBcbiAjaWZuZGVmIENPTU1PTl9IXG4gI2RlZmluZSBDT01NT05fSFxuIFxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtbWFwcGluZy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2dmcC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L21tLmhcdTAwM2VcbiYjNDM7XG4gI2luY2x1ZGUgXCYjMzQ7cnZ1X3N0cnVjdC5oXCYjMzQ7XG4gXG4gI2RlZmluZSBPVFgyX0FMSUdOXHRcdFx0MTI4ICAvKiBBbGlnbiB0byBjYWNoZWxpbmUgKi9cbkBAIC00NCw2ICYjNDM7NDgsMzMgQEAgc3RydWN0IHFtZW0ge1xuIFx0dTMyXHRcdHFzaXplO1xuIH07XG4gXG4mIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCAqb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcbiYjNDM7XHRcdFx0XHRcdCAgICBkbWFfYWRkcl90ICpkbWFfaGFuZGxlKVxuJiM0Mzt7XG4mIzQzO1x0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbiYjNDM7XHR2b2lkICp2YWRkcjtcbiYjNDM7XG4mIzQzO1x0dmFkZHIgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xuJiM0MztcdGlmICghdmFkZHIpXG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XG4mIzQzO1x0ZG1hX2FkZHIgPSBkbWFfbWFwX3NpbmdsZShkZXYsIHZhZGRyLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7XG4mIzQzO1x0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKGRldiwgZG1hX2FkZHIpKSB7XG4mIzQzO1x0XHRrZnJlZSh2YWRkcik7XG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdCpkbWFfaGFuZGxlID0gZG1hX2FkZHI7XG4mIzQzO1x0cmV0dXJuIHZhZGRyO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgb3R4Ml9kbWFfZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLFxuJiM0MztcdFx0XHRcdFx0ICB2b2lkICp2YWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlKVxuJiM0Mzt7XG4mIzQzO1x0ZG1hX3VubWFwX3NpbmdsZShkZXYsIGRtYV9oYW5kbGUsIHNpemUsIERNQV9CSURJUkVDVElPTkFMKTtcbiYjNDM7XHRrZnJlZSh2YWRkcik7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbiBcdFx0XHQgICAgIGludCBxc2l6ZSwgaW50IGVudHJ5X3N6KVxuIHtcbkBAIC02MCw4ICYjNDM7OTEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbiBcbiBcdHFtZW0tXHUwMDNlZW50cnlfc3ogPSBlbnRyeV9zejtcbiBcdHFtZW0tXHUwMDNlYWxsb2Nfc3ogPSAocXNpemUgKiBlbnRyeV9zeikgJiM0MzsgT1RYMl9BTElHTjtcbi1cdHFtZW0tXHUwMDNlYmFzZSA9IGRtYV9hbGxvY19hdHRycyhkZXYsIHFtZW0tXHUwMDNlYWxsb2Nfc3osIFx1MDAyNnFtZW0tXHUwMDNlaW92YSxcbi1cdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCwgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7XG4mIzQzO1xuJiM0MztcdGlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLVx1MDAzZWFsbG9jX3N6KSkgXHUwMDNlIE1BWF9QQUdFX09SREVSKVxuJiM0MztcdFx0cmV0dXJuIC1FTk9NRU07XG4mIzQzO1xuJiM0MztcdHFtZW0tXHUwMDNlYmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeiwgXHUwMDI2cW1lbS1cdTAwM2Vpb3ZhKTtcbiBcdGlmICghcW1lbS1cdTAwM2ViYXNlKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbkBAIC04MCwxMCAmIzQzOzExNCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxbWVtX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcW1lbSAqcW1lbSlcbiBcdFx0cmV0dXJuO1xuIFxuIFx0aWYgKHFtZW0tXHUwMDNlYmFzZSlcbi1cdFx0ZG1hX2ZyZWVfYXR0cnMoZGV2LCBxbWVtLVx1MDAzZWFsbG9jX3N6LFxuLVx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWJhc2UgLSBxbWVtLVx1MDAzZWFsaWduLFxuLVx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWlvdmEgLSBxbWVtLVx1MDAzZWFsaWduLFxuLVx0XHRcdCAgICAgICBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTKTtcbiYjNDM7XHRcdG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBxbWVtLVx1MDAzZWFsbG9jX3N6LFxuJiM0MztcdFx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWJhc2UgLSBxbWVtLVx1MDAzZWFsaWduLFxuJiM0MztcdFx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWlvdmEgLSBxbWVtLVx1MDAzZWFsaWduKTtcbiBcdGRldm1fa2ZyZWUoZGV2LCBxbWVtKTtcbiB9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhMGI5MzkzZWNkNjg1ODg0YzJhMWNkNDdlNDNlNjRiM2EwYmE5NGY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBTZXAgMTEgMDM6Mzk6MTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oCmluZGV4IDc3OTQxM2EzODNiNzQuLjc4ZTQyNTQ5ZDk5MDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oCkBAIC03LDYgJiM0Mzs3LDEwIEBACiAjaWZuZGVmIENPTU1PTl9ICiAjZGVmaW5lIENPTU1PTl9ICiAKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvZG1hLW1hcHBpbmcuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvZ2ZwLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L21tLmgmZ3Q7CiYjNDM7CiAjaW5jbHVkZSAmIzM0O3J2dV9zdHJ1Y3QuaCYjMzQ7CiAKICNkZWZpbmUgT1RYMl9BTElHTgkJCTEyOCAgLyogQWxpZ24gdG8gY2FjaGVsaW5lICovCkBAIC00NCw2ICYjNDM7NDgsMzMgQEAgc3RydWN0IHFtZW0gewogCXUzMgkJcXNpemU7CiB9OwogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkICpvdHgyX2RtYV9hbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAomIzQzOwkJCQkJICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpCiYjNDM7ewomIzQzOwlkbWFfYWRkcl90IGRtYV9hZGRyOwomIzQzOwl2b2lkICp2YWRkcjsKJiM0MzsKJiM0MzsJdmFkZHIgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwomIzQzOwlpZiAoIXZhZGRyKQomIzQzOwkJcmV0dXJuIE5VTEw7CiYjNDM7CiYjNDM7CWRtYV9hZGRyID0gZG1hX21hcF9zaW5nbGUoZGV2LCB2YWRkciwgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpOwomIzQzOwlpZiAoZG1hX21hcHBpbmdfZXJyb3IoZGV2LCBkbWFfYWRkcikpIHsKJiM0MzsJCWtmcmVlKHZhZGRyKTsKJiM0MzsJCXJldHVybiBOVUxMOwomIzQzOwl9CiYjNDM7CiYjNDM7CSpkbWFfaGFuZGxlID0gZG1hX2FkZHI7CiYjNDM7CXJldHVybiB2YWRkcjsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGlubGluZSB2b2lkIG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKJiM0MzsJCQkJCSAgdm9pZCAqdmFkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSkKJiM0Mzt7CiYjNDM7CWRtYV91bm1hcF9zaW5nbGUoZGV2LCBkbWFfaGFuZGxlLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7CiYjNDM7CWtmcmVlKHZhZGRyKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW5saW5lIGludCBxbWVtX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKipxLAogCQkJICAgICBpbnQgcXNpemUsIGludCBlbnRyeV9zeikKIHsKQEAgLTYwLDggJiM0Mzs5MSwxMSBAQCBzdGF0aWMgaW5saW5lIGludCBxbWVtX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKipxLAogCiAJcW1lbS0mZ3Q7ZW50cnlfc3ogPSBlbnRyeV9zejsKIAlxbWVtLSZndDthbGxvY19zeiA9IChxc2l6ZSAqIGVudHJ5X3N6KSAmIzQzOyBPVFgyX0FMSUdOOwotCXFtZW0tJmd0O2Jhc2UgPSBkbWFfYWxsb2NfYXR0cnMoZGV2LCBxbWVtLSZndDthbGxvY19zeiwgJmFtcDtxbWVtLSZndDtpb3ZhLAotCQkJCSAgICAgR0ZQX0tFUk5FTCwgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7CiYjNDM7CiYjNDM7CWlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLSZndDthbGxvY19zeikpICZndDsgTUFYX1BBR0VfT1JERVIpCiYjNDM7CQlyZXR1cm4gLUVOT01FTTsKJiM0MzsKJiM0MzsJcW1lbS0mZ3Q7YmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS0mZ3Q7YWxsb2Nfc3osICZhbXA7cW1lbS0mZ3Q7aW92YSk7CiAJaWYgKCFxbWVtLSZndDtiYXNlKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtODAsMTAgJiM0MzsxMTQsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcW1lbV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKnFtZW0pCiAJCXJldHVybjsKIAogCWlmIChxbWVtLSZndDtiYXNlKQotCQlkbWFfZnJlZV9hdHRycyhkZXYsIHFtZW0tJmd0O2FsbG9jX3N6LAotCQkJICAgICAgIHFtZW0tJmd0O2Jhc2UgLSBxbWVtLSZndDthbGlnbiwKLQkJCSAgICAgICBxbWVtLSZndDtpb3ZhIC0gcW1lbS0mZ3Q7YWxpZ24sCi0JCQkgICAgICAgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7CiYjNDM7CQlvdHgyX2RtYV9mcmVlX2NvaGVyZW50KGRldiwgcW1lbS0mZ3Q7YWxsb2Nfc3osCiYjNDM7CQkJCSAgICAgICBxbWVtLSZndDtiYXNlIC0gcW1lbS0mZ3Q7YWxpZ24sCiYjNDM7CQkJCSAgICAgICBxbWVtLSZndDtpb3ZhIC0gcW1lbS0mZ3Q7YWxpZ24pOwogCWRldm1fa2ZyZWUoZGV2LCBxbWVtKTsKIH0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwMzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjQ1CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIFBhdGNoIGFuZCBIYXJkd2FyZSBDb250ZXh0KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoYXQgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgTWFydmVsbCBPY3Rlb25UWDIgQUYgZXRoZXJuZXQgZHJpdmVyLiBIbW0sIEkgd29uZGVyIGlmIHRoaXMgcGFydGljdWxhciBoYXJkd2FyZSBpcyBldmVuICphY2Nlc3NpYmxlKiB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwIG9yIGV2ZW4gb24gR0NFPyBJdCYjMzk7cyBhIGJpdCBuaWNoZS4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGUgZHJpdmVyIGNvZGUgaXRzZWxmLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYEtjb25maWdgIGZpbGVzLgoKVGhpcyYjMzk7bGwgaW52b2x2ZSBzb21lIGdyZXBwaW5nIGFuZCBnZW5lcmFsIGludmVzdGlnYXRpb24gdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoZXNlIGNoYW5nZXMgYW5kIHdoZXRoZXIgb3Igbm90IHRoaXMgY29kZSBpcyByZWxldmFudCB0byBteSBjdXJyZW50IGNvbmNlcm5zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O09DVEVPTlRYMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6Njpjb25maWcgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MTE6XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTItXHRzZWxlY3QgTkVUX0RFVkxJTktcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yMy1cdGJvb2wgXCYjMzQ7RGlzYWJsZSBjYWNoaW5nIG9mIGR5bmFtaWMgZW50cmllcyBpbiBORENcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yNS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMzOlx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTM0LVx0c2VsZWN0IE5FVF9ERVZMSU5LXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDU6Y29uZmlnIE9DVEVPTlRYMl9WRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIE5JQyBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo1MzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTU0LVx0ZGVmYXVsdCBtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gYWYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICYjNDM7PSBhZi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9QRikgJiM0Mzs9IG5pYy9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGNneF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjgtXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5oLTE1LSAvKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9DR1hcdFx0MHhBMDU5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNTY6I2RlZmluZSBfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1Ny1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBfX25hbWUgIyMgX2ZvcHMgPSB7XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE2NTojZGVmaW5lIERFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKF9fbmFtZSwgX19zaXplKVx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cdFx0XHRcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTcxOl9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnQgbnBjX21jYW1fZHN0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI0MzpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9kc3RhdHMsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjg0LS8qIFwmIzM0OyV1XFx0JWRcXHQldVxcblwmIzM0OyBuZWVkcyBsZXNzIHRoYW4gNjQgY2hhcmFjdGVycyB0byBwcmludC4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyODU6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fbWlzbWF0Y2gsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXHRcdFx0MHhBMDBDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMi0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFBcdFx0MHhCMTAwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjctI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhPX1BUUFx0MHhCNjAwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyODojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlNUXHRcdFx0MHhBMDg1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yOS0jZGVmaW5lIFBDSV9ERVZJRF9DTjEwS19QVFBcdFx0XHQweEEwOUVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01ODk9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkwOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTEtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkyLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTQtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk2Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk4LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk5Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDAtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAxLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhOX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAzLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwNTpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy00Ni1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9OTI3PXN0YXRpYyB2b2lkIHJ2dV9nZXRfbGJrX2J1ZnNpemUoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTkzMy1cdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcdFx0XHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzUtXHRpZiAoIXBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ0Nz1pbnQgcnZ1X2dldF9udW1fbGJrX2NoYW5zKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0NTM6XHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1NC1cdFx0XHQgICAgICBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcdDB4QTBGOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ5NTpcdGlmIChydnUtXHUwMDNldmZfZGV2aWQgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5Ni1cdFx0Y2hhbnMgPSBydnVfZ2V0X251bV9sYmtfY2hhbnMoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yMy0vKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjQ6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZcdFx0MHhBMDY1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNTojZGVmaW5lXHRQQ0lfREVWSURfT0NURU9OVFgyX0xCS1x0XHRcdDB4QTA2MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MzkyPXN0YXRpYyB2b2lkIHJ2dV9sYmtfc2V0X2NoYW5uZWxzKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTUtXHRcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jOjQxNjpcdFx0XHRcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNy1cdFx0aWYgKCFwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM9MjgwNj1zdGF0aWMgdm9pZCBydnVfZGJnX25wYV9pbml0KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MjUtLyogUGVyLWxtYWMgQ0dYIGRlYnVnZnMgZmlsZXMgbmVlZCBib3RoIFJWVSBhbmQgQ0dYIGhhbmRsZTsgaW5vZGUtXHUwMDNlaV9wcml2YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4MjY6ICogcG9pbnRzIGhlcmUgc28gc2VxX2ZpbGUgb3BzIGF2b2lkIHBjaV9nZXRfZGV2aWNlKFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgyNy0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICYjNDM7PSBydnVfbmljcGYubyBvdHgyX3B0cC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX1ZGKSAmIzQzOz0gcnZ1X25pY3ZmLm8gb3R4Ml9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTgtb2JqLSQoQ09ORklHX1JWVV9FU1dJVENIKSAmIzQzOz0gcnZ1X3JlcC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDItLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQzOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYgICAgICAgICAgICAgIDB4QTA2M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDQ6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRlx0XHQweEEwNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ1OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlx0XHQweEEwRjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVBcdFx0MHhBMEY3XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD01OTc9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfbGJrdmYoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTk5Olx0cmV0dXJuIChwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjAwLVx0XHQocGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX1JWVV9SRVApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTYxNT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9zZHBfcmVwKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjYxNzpcdHJldHVybiBwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTgtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfcGZfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6Mzc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zOC1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz0yMj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml92Zl9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyMzpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjQ6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0yNi1cdHsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMDA0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaGAuIFRoaXMgaXMgb2J2aW91c2x5IGEga2V5IGhlYWRlciBmaWxlIGZvciB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gdW5kZXJzdGFuZCBpdHMgc2NvcGUgYW5kIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoaXMgZmlsZSBpcyB1c2VkIGFuZCB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gcmVseSBvbiBpdC4gTGV0JiMzOTtzIHNlZSB3aG8mIzM5O3MgaW5jbHVkaW5nIGBjb21tb24uaGAuIE1heWJlIEkgc2hvdWxkIGFsc28gbG9vayBmb3IgY2FsbHMgdG8gZnVuY3Rpb25zIGxpa2UgYHFtZW1fYWxsb2NgIG9yIG90aGVyIGtleSBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCBpdCYjMzk7cyBmdW5jdGlvbmFsaXR5LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIGRyaXZlciYjMzk7cyBhcmNoaXRlY3R1cmUgYW5kIGhvdyB0aGlzIGBjb21tb24uaGAgZml0cyBpbnRvIHRoZSBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3FtZW1fYWxsb2MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYz0yNjg9c3RhdGljIGludCBydnVfYWxsb2NfbWJveF9tZW1vcnkoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYy0yODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzoyODg6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNm1ib3hfYWRkciwgbmRldnMsIG1ib3hfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYy0yODktXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jPTQwOD1pbnQgcnZ1X2FsbG9jX2NpbnRfcWludF9tZW0oc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcnZ1X3BmdmYgKnBmdmYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDI3LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSAyNCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzo0Mjg6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlY3FfaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jLTQyOS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDM4LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSAyMCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzo0Mzk6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlbml4X3FpbnRzX2N0eCwgcWludHMsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDQwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaD03MT1zdGF0aWMgaW5saW5lIHZvaWQgb3R4Ml9kbWFfZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oLTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmg6Nzg6c3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oLTc5LVx0XHRcdCAgICAgaW50IHFzaXplLCBpbnQgZW50cnlfc3opXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTIzNj1pbnQgcnZ1X2FxX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGFkbWluX3F1ZXVlICoqYWRfcXVldWUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMTI0Ny1cdC8qIEFsbG9jIG1lbW9yeSBmb3IgaW5zdHJ1Y3Rpb25zIGkuZSBBUSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTI0ODpcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2YXEtXHUwMDNlaW5zdCwgcXNpemUsIGluc3Rfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjQ5LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNTQtXHQvKiBBbGxvYyBtZW1vcnkgZm9yIHJlc3VsdHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjEyNTU6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNmFxLVx1MDAzZXJlcywgcXNpemUsIHJlc19zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNTYtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTk0ND1zdGF0aWMgaW50IG5peGxmX3Jzc19jdHhfaW5pdChzdHJ1Y3QgcnZ1ICpydnUsIGludCBibGthZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy05NTctXHQvKiBBbGxvYyBOSVggUlNTIEhXIGNvbnRleHQgbWVtb3J5IGFuZCBjb25maWcgdGhlIGJhc2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzo5NTg6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlcnNzX2N0eCwgbnVtX2luZGljZXMsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTk1OS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTE1MTI9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2xmX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTU4Ni1cdGh3Y3R4X3NpemUgPSAxVUwgXHUwMDNjXHUwMDNjICgoY3R4X2NmZyBcdTAwM2VcdTAwM2UgNCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6MTU4NzpcdHJjID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZXJxX2N0eCwgcmVxLVx1MDAzZXJxX2NudCwgaHdjdHhfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTU4OC1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTYwNS1cdGh3Y3R4X3NpemUgPSAxVUwgXHUwMDNjXHUwMDNjIChjdHhfY2ZnIFx1MDAyNiAweEYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2MDY6XHRyYyA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2cGZ2Zi1cdTAwM2VzcV9jdHgsIHJlcS1cdTAwM2VzcV9jbnQsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MDctXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MjMtXHRod2N0eF9zaXplID0gMVVMIFx1MDAzY1x1MDAzYyAoKGN0eF9jZmcgXHUwMDNlXHUwMDNlIDgpIFx1MDAyNiAweEYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2MjQ6XHRyYyA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2cGZ2Zi1cdTAwM2VjcV9jdHgsIHJlcS1cdTAwM2VjcV9jbnQsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MjUtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2NTEtXHRod2N0eF9zaXplID0gMVVMIFx1MDAzY1x1MDAzYyAoKGN0eF9jZmcgXHUwMDNlXHUwMDNlIDI0KSBcdTAwMjYgMHhGKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNjUyOlx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlY3FfaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjUzLVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjY1LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSAyMCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6MTY2NjpcdHJjID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZW5peF9xaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjY3LVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz0zNzIyPXN0YXRpYyBpbnQgbml4X3NldHVwX21jYXN0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9odyAqbml4X2h3LCBpbnQgYmxrYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc0NS1cdC8qIEFsbG9jIG1lbW9yeSBmb3IgbXVsdGljYXN0L21pcnJvciByZXBsaWNhdGlvbiBlbnRyaWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6Mzc0NjpcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2bWNhc3QtXHUwMDNlbWNlX2N0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0zNzQ3LVx0XHRcdCBtY2FzdC1cdTAwM2VtY2VfY291bnRlcltOSVhfTUNBU1RfSU5HUkVTU10ubWF4LCBzaXplKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc2Mi1cdHNpemUgPSBydnVfcmVhZDY0KHJ2dSwgYmxrYWRkciwgTklYX0FGX01DX01JUlJPUl9DT05TVCkgXHUwMDI2IDB4RkZGRjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzozNzYzOlx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZtY2FzdC1cdTAwM2VtY2FzdF9idWYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc2NC1cdFx0XHQgKDhVTCBcdTAwM2NcdTAwM2MgTUNfQlVGX0NOVCksIHNpemUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYz0zMjc9aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBhX2xmX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzY2LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKGN0eF9jZmcgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmM6MzY3Olx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZWF1cmFfY3R4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jLTM2OC1cdFx0XHQgTlBBX0FVUkFfQ09VTlQocmVxLVx1MDAzZWF1cmFfc3opLCBod2N0eF9zaXplKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzc4LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSA0KSBcdTAwMjYgMHhGKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozNzk6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlcG9vbF9jdHgsIHJlcS1cdTAwM2Vucl9wb29scywgaHdjdHhfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzgwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzkzLVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSA4KSBcdTAwMjYgMHhGKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozOTQ6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlbnBhX3FpbnRzX2N0eCwgcWludHMsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jLTM5NS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrLmM9NDM9aW50IGNuMTBrX2xtdHN0X2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEway5jLTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrLmM6NjY6XHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZWR5bmNfbG10LCBwZnZmLVx1MDAzZXRvdF9sbXRfbGluZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYy02Ny1cdFx0XHQgTE1UX0xJTkVfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX2lwc2VjLmM9NjY2PXN0YXRpYyBpbnQgY24xMGtfaXBzZWNfb3V0Yl9hZGRfc3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYzo2ODE6XHRlcnIgPSBxbWVtX2FsbG9jKHBmLVx1MDAzZWRldiwgXHUwMDI2c2FfaW5mbywgcGYtXHUwMDNlaXBzZWMuc2Ffc2l6ZSwgT1RYMl9BTElHTik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jPTUyMD1zdGF0aWMgaW50IGNuMjBrX2F1cmFfYXFfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIGludCBhdXJhX2lkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTUzMy1cdGlmICghcG9vbC1cdTAwM2VmY19hZGRyKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYzo1MzQ6XHRcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cdTAwM2VkZXYsIFx1MDAyNnBvb2wtXHUwMDNlZmNfYWRkciwgMSwgT1RYMl9BTElHTik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYy01MzUtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM9NTk3PXN0YXRpYyBpbnQgY24yMGtfcG9vbF9hcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHBvb2xfaWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmMtNjA3LVx0LyogQWxsb2MgbWVtb3J5IGZvciBzdGFjayB3aGljaCBpcyB1c2VkIHRvIHN0b3JlIGJ1ZmZlciBwb2ludGVycyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM6NjA4Olx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2cG9vbC1cdTAwM2VzdGFjayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTYwOS1cdFx0XHQgc3RhY2tfcGFnZXMsIHBmdmYtXHUwMDNlaHcuc3RhY2tfcGdfYnl0ZXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTk2MT1pbnQgb3R4Ml9zcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHFpZHgsIHUxNiBzcWJfYXVyYSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy05NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzo5NzQ6XHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXHUwMDNlZGV2LCBcdTAwMjZzcS1cdTAwM2VzcWUsIDEsIHNxLVx1MDAzZXNxZV9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk3NS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTkxLVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzo5OTI6XHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXHUwMDNlZGV2LCBcdTAwMjZzcS1cdTAwM2VzcWVfcmluZywgcXNldC1cdTAwM2VzcWVfY250LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTkzLVx0XHRcdCBzcS1cdTAwM2VzcWVfc2l6ZSAqIDIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjk5NzpcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cdTAwM2VkZXYsIFx1MDAyNnNxLVx1MDAzZWNwdF9yZXNwLCBxc2V0LVx1MDAzZXNxZV9jbnQsIDY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk5OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAwMS1cdGlmIChxaWR4IFx1MDAzYyBwZnZmLVx1MDAzZWh3LnR4X3F1ZXVlcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTAwMjpcdFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2c3EtXHUwMDNldHNvX2hkcnMsIHFzZXQtXHUwMDNlc3FlX2NudCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEwMDMtXHRcdFx0XHQgVFNPX0hFQURFUl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xMDEzLVx0aWYgKHBmdmYtXHUwMDNlcHRwIFx1MDAyNlx1MDAyNiBxaWR4IFx1MDAzYyBwZnZmLVx1MDAzZWh3LnR4X3F1ZXVlcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTAxNDpcdFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2c3EtXHUwMDNldGltZXN0YW1wcywgcXNldC1cdTAwM2VzcWVfY250LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAxNS1cdFx0XHRcdCBzaXplb2YoKnNxLVx1MDAzZXRpbWVzdGFtcHMpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYz0xMDUxPWludCBvdHgyX2NxX2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmLCB1MTYgcWlkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xMDk5LVx0LyogQWxsb2NhdGUgbWVtb3J5IGZvciBDUUVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxMTAwOlx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2Y3EtXHUwMDNlY3FlLCBjcS1cdTAwM2VjcWVfY250LCBjcS1cdTAwM2VjcWVfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xMTAxLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYz0xMzc2PWludCBvdHgyX2F1cmFfYXFfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIGludCBhdXJhX2lkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzODgtXHRpZiAoIXBvb2wtXHUwMDNlZmNfYWRkcikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTM4OTpcdFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2cG9vbC1cdTAwM2VmY19hZGRyLCAxLCBPVFgyX0FMSUdOKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzOTAtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM9MTQ2MD1pbnQgb3R4Ml9wb29sX2FxX2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmLCB1MTYgcG9vbF9pZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNDcwLVx0LyogQWxsb2MgbWVtb3J5IGZvciBzdGFjayB3aGljaCBpcyB1c2VkIHRvIHN0b3JlIGJ1ZmZlciBwb2ludGVycyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTQ3MTpcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cdTAwM2VkZXYsIFx1MDAyNnBvb2wtXHUwMDNlc3RhY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNDcyLVx0XHRcdCBzdGFja19wYWdlcywgcGZ2Zi1cdTAwM2Vody5zdGFja19wZ19ieXRlcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYz01Nzk9c3RhdGljIHZvaWQgKmNuMjBrX3BmdmZfbWJveF9hbGxvYyhzdHJ1Y3Qgb3R4Ml9uaWMgKnBmLCBpbnQgbnVtdmZzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzo1ODQ6XHRlcnIgPSBxbWVtX2FsbG9jKFx1MDAyNnBmLVx1MDAzZXBkZXYtXHUwMDNlZGV2LCBcdTAwMjZtYm94X2FkZHIsIG51bXZmcywgTUJPWF9TSVpFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNTg1LVx0aWYgKGVycikge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1NjQ5CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMzc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgTWFydmVsbCBPY3Rlb25UWDIgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSBpZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgY29kZSBpcyBpbmhlcmVudGx5IGhhcmR3YXJlLXNwZWNpZmljLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCBmYWxscyB1bmRlciB0aGUgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBjYXRlZ29yeSwgc3BlY2lmaWNhbGx5IHRoZSAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IGNsYXVzZS4gVGhpcyBtZWFucyBJIG5lZWQgdG8gYXNzZXNzIGlmIHRoaXMgY29kZSBpbnRlcmFjdHMgd2l0aCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyB0aGF0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZSDigJMgc3R1ZmYgbm90IHR5cGljYWxseSBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuCgpNeSBsaW5lIG9mIHJlYXNvbmluZyBpcyBjbGVhcjogSXMgdGhlIE9jdGVvblRYMiBhIFNtYXJ0TklDIG9yIEV0aGVybmV0IEFTSUMgZHJpdmVyIHRoYXQmIzM5O3MgZGVwZW5kZW50IG9uIHNwZWNpZmljIGhhcmR3YXJlLCBlc3BlY2lhbGx5IGEgUENJZSBkZXZpY2UsIGFuZCBjcnVjaWFsbHksICpub3QqIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVU/CgpTbywgZmlyc3QgSSYjMzk7bGwgemVybyBpbiBvbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5LiBCYXNlZCBvbiBteSBleGlzdGluZyBrbm93bGVkZ2UsIE1hcnZlbGwmIzM5O3MgT2N0ZW9uVFgyIFJWVSBhcmNoaXRlY3R1cmUgaXMgYSBrZXkgY29tcG9uZW50LCB1c2VkIGluIHRoZWlyIE9jdGVvbiBUWDIgbmV0d29yayBwcm9jZXNzb3JzLCB3aGljaCBhcmUgdHlwaWNhbGx5IGZvdW5kIGluIFNtYXJ0TklDcyBhbmQgU29DcyAoQ045WFhYLCBDTjEwSywgZXRjLikuIEJpbmdvLCB0aGF0JiMzOTtzIGEgUENJZSBkZXZpY2UhIFRoZXkgaGF2ZSBzcGVjaWZpYyBQQ0kgSURzLCB2ZW5kb3IgMHgxNzdkIChDQVZJVU0pLCBhbmQgdmFyaW91cyBkZXZpY2UgSURzIHN1Y2ggYXMgMHhBMDY1LCAweEEwNjMsIDB4QTA2NCwgYW5kIG90aGVycy4KCkFuZCB0aGUgY29uY2x1c2lvbiBJJiMzOTt2ZSBjb21lIHRvOiBUaGVzZSBkZXZpY2VzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgb3IgYXQgbGVhc3QgR0NFIGVudmlyb25tZW50cy4KClRvIGJlIHRob3JvdWdoLCBJIHdpbGwgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbW9jayBkZXZpY2VzLiBBbHNvLCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgY29kZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBvdXRzaWRlIG9mIHRoYXQgZHJpdmVyLCB3aGljaCBjb3VsZCBpbmRpY2F0ZSBhIGxldmVsIG9mIGFic3RyYWN0aW9uIG9yIGhhcmR3YXJlLWluZGVwZW5kZW50IHBhcnRzLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGxvb2sgaW50byB0aGUgaW5jbHVzaW9uIG9mIGBjb21tb24uaGAgdG8gc2VlIGhvdyBpdCBtaWdodCBiZSB1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2luY2x1ZGUuKmFmL2NvbW1vblxcLmgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2NDg1CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqT2theSwgTGV0JiMzOTtzIEdldCB0byBXb3JrKioKClJpZ2h0LCB0aW1lIHRvIGRpZyBpbi4gVGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byBkbyBpcyBsb2NhdGUgdGhhdCBjcnVjaWFsIGhlYWRlciBmaWxlLCBgI2luY2x1ZGUgJiMzNDtjb21tb24uaCYjMzQ7YC4gVGhhdCYjMzk7cyBsaWtlbHkgdGhlIGp1bXBpbmctb2ZmIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoaXMgY29kZSBiYXNlLiBJdCYjMzk7cyBwcm9iYWJseSB3aGVyZSBhIGxvdCBvZiB0aGUgY29yZSBkZWZpbml0aW9ucyBhbmQgc3RydWN0dXJlcyBhcmUgbG9jYXRlZC4gT25jZSBJIGZpbmQgaXQsIEkgY2FuIHN0YXJ0IHRyYWNpbmcgZGVwZW5kZW5jaWVzIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4gTGV0JiMzOTtzIHNlZSBpZiBJIGNhbiB1c2UgYSBzaW1wbGUgc2VhcmNoIHRvIGxvY2F0ZSB0aGF0IGZpbGUgcXVpY2tseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2luY2x1ZGUgXCYjMzQ7Y29tbW9uXFwuaFwmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjc2OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jLTE4LVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvY29tbW9uLmMtMjAtI2luY2x1ZGUgXCYjMzQ7Y3B1dHlwZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NwdXR5cGUuaC0xNi1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmg6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmgtMTgtXG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhODUwLmMtMjItXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4NTAuYzoyMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhODUwLmMtMjQtI2luY2x1ZGUgXCYjMzQ7Y3B1dHlwZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhOHh4LWR0LmMtOS1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kYTh4eC1kdC5jOjEwOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4eHgtZHQuYy0xMS0jaW5jbHVkZSBcJiMzNDtkYTh4eC5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RldmljZXMtZGE4eHguYy0yMC1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kZXZpY2VzLWRhOHh4LmM6MjE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kZXZpY2VzLWRhOHh4LmMtMjItI2luY2x1ZGUgXCYjMzQ7Y3B1dHlwZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL211eC5jLTIzLSNpbmNsdWRlIFwmIzM0O211eC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvbXV4LmM6MjQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9tdXguYy0yNS1cbi0tXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvcGRhdGEtcXVpcmtzLmMtMTItXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvcGRhdGEtcXVpcmtzLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9wZGF0YS1xdWlya3MuYy0xNC0jaW5jbHVkZSBcJiMzNDtkYTh4eC5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmMtMTgtXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvcG0uYzoxOTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmMtMjAtI2luY2x1ZGUgXCYjMzQ7ZGE4eHguaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9zcmFtLmMtMTEtXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jLTEzLSNpbmNsdWRlIFwmIzM0O3NyYW0uaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtZG92ZS9jbS1hNTEwLmMtMjItI2luY2x1ZGUgXCYjMzQ7ZG92ZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvY20tYTUxMC5jOjIzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvY20tYTUxMC5jLTI0LVxuLS1cbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNC0jaW5jbHVkZSBcJiMzNDtwbS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvY29tbW9uLmM6MjU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNi1cbi0tXG5hcmNoL2FybS9tYWNoLWRvdmUvaXJxLmMtMTYtI2luY2x1ZGUgXCYjMzQ7YnJpZGdlLXJlZ3MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1kb3ZlL2lycS5jOjE3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvaXJxLmMtMTgtXG4tLVxuYXJjaC9hcm0vbWFjaC1kb3ZlL3BjaWUuYy0xOS0jaW5jbHVkZSBcJiMzNDticmlkZ2UtcmVncy5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvcGNpZS5jOjIwOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvcGNpZS5jLTIxLVxuLS1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jLTIxLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvZXh5bm9zLmM6MjI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jLTIzLVxuLS1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL2Zpcm13YXJlLmMtMTgtXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9maXJtd2FyZS5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWV4eW5vcy9maXJtd2FyZS5jLTIwLSNpbmNsdWRlIFwmIzM0O3NtYy5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvbWNwbS1leHlub3MuYy0xOC1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmM6MTk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmMtMjAtXG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvcGxhdHNtcC5jLTI0LVxuYXJjaC9hcm0vbWFjaC1leHlub3MvcGxhdHNtcC5jOjI1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbGF0c21wLmMtMjYtXG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvcG0uYy0yNC1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmM6MjU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmMtMjYtXG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3Mvc3VzcGVuZC5jLTMyLVxuYXJjaC9hcm0vbWFjaC1leHlub3Mvc3VzcGVuZC5jOjMzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWV4eW5vcy9zdXNwZW5kLmMtMzQtI2luY2x1ZGUgXCYjMzQ7c21jLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmMtMjgtXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmM6Mjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYy0zMC1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZGMyMTI4NS10aW1lci5jLTIwLVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2RjMjEyODUtdGltZXIuYzoyMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2RjMjEyODUtdGltZXIuYy0yMi1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS5jLTE3LVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUuYzoxODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUuYy0xOS1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLWlycS5jLTI3LVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1pcnEuYzoyODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1pcnEuYy0yOS1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXJ0Yy5jLTI0LVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1ydGMuYzoyNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1ydGMuYy0yNi1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXRpbWVyLmMtMTgtXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXRpbWVyLmM6MTk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EtdGltZXIuYy0yMC1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLmMtMTItXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EuYy0xNC1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvbmV0d2luZGVyLWh3LmMtMjUtXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvbmV0d2luZGVyLWh3LmM6MjY6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9uZXR3aW5kZXItaHcuYy0yNy1cbi0tXG5hcmNoL2FybS9tYWNoLWlteC9hbmF0b3AuYy0xMi0jaW5jbHVkZSBcdTAwM2NsaW51eC9yZWdtYXAuaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1pbXgvYW5hdG9wLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2FuYXRvcC5jLTE0LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9hdmljLmMtMTYtXG5hcmNoL2FybS9tYWNoLWlteC9hdmljLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2F2aWMuYy0xOC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDMxLmMtMTEtXG5hcmNoL2FybS9tYWNoLWlteC9jcHUtaW14MzEuYzoxMjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDMxLmMtMTMtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXg1LmMtMTYtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYzoxNzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYy0xOC1cbi0tXG5hcmNoL2FybS9tYWNoLWlteC9jcHUuYy04LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2NwdS5jOjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2NwdS5jLTEwLVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnEuYy0xMi1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnEuYzoxMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2cS5jLTE0LSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnNsLmMtMTAtXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzbC5jOjExOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzbC5jLTEyLSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnN4LmMtMTItXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jOjEzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jLTE0LSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14N3VscC5jLTExLVxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg3dWxwLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14N3VscC5jLTEzLSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jLTEzLVxuYXJjaC9hcm0vbWFjaC1pbXgvZ3BjLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jLTE1LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9ob3RwbHVnLmMtMTItXG5hcmNoL2FybS9tYWNoLWlteC9ob3RwbHVnLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2hvdHBsdWcuYy0xNC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgxLmMtNy1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MS5jOjg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MS5jLTktI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy02LSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNoL2FyY2guaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNS5jOjc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy04LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDI3LmMtOS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjcuYzoxMDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNy5jLTExLSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtNi0jaW5jbHVkZSBcdTAwM2Nhc20vbWFjaC9hcmNoLmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzEuYzo3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtOC1cbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDM1LmMtOC0jaW5jbHVkZSBcdTAwM2Nhc20vbWFjaC9hcmNoLmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzUuYzo5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDM1LmMtMTAtI2luY2x1ZGUgXCYjMzQ7bXgzNS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MC5jLTktXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUwLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NTAuYy0xMS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MS5jLTExLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MS5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUxLmMtMTMtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NTMuYy04LVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1My5jOjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NTMuYy0xMC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jLTE4LVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDZxLmMtMjAtI2luY2x1ZGUgXCYjMzQ7Y3B1aWRsZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c2wuYy0xMy1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmMtMTUtI2luY2x1ZGUgXCYjMzQ7Y3B1aWRsZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c3guYy0xMS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnN4LmM6MTI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnN4LmMtMTMtI2luY2x1ZGUgXCYjMzQ7Y3B1aWRsZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYy04LVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYzo5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDZ1bC5jLTEwLSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N2QuYy0xNC1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N2QuYzoxNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3ZC5jLTE2LVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N3VscC5jLTEzLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3dWxwLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N3VscC5jLTE1LSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtbHMxMDIxYS5jLTctXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWxzMTAyMWEuYzo4OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWxzMTAyMWEuYy05LVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtdmY2MTAuYy0xMy1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtdmY2MTAuYzoxNDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC12ZjYxMC5jLTE1LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmMtMTktXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21tLWlteDMuYy0yMS0jaW5jbHVkZSBcJiMzNDtjcm1yZWdzLWlteDMuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21tZGMuYy0yMC1cbmFyY2gvYXJtL21hY2gtaW14L21tZGMuYzoyMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbW1kYy5jLTIyLVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L3BsYXRzbXAuYy0xNi1cbmFyY2gvYXJtL21hY2gtaW14L3BsYXRzbXAuYzoxNzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvcGxhdHNtcC5jLTE4LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNS5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvaW8uaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjUuYzo5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNS5jLTEwLVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDI3LmMtMTQtXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNy5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNy5jLTE2LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg1LmMtMjEtXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg1LmM6MjI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDUuYy0yMy0jaW5jbHVkZSBcJiMzNDtjcHVpZGxlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg2LmMtMjctXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg2LmM6Mjg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDYuYy0yOS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jLTExLVxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg3dWxwLmMtMTMtXG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvc3JjLmMtMTUtI2luY2x1ZGUgXHUwMDNjYXNtL3NtcF9wbGF0LmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtaW14L3NyYy5jOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9zcmMuYy0xNy0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvc3lzdGVtLmMtMjItXG5hcmNoL2FybS9tYWNoLWlteC9zeXN0ZW0uYzoyMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvc3lzdGVtLmMtMjQtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYy0xNy1cbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYzoxODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvdHppYy5jLTE5LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvY29tbW9uLmMtMTYtI2luY2x1ZGUgXCYjMzQ7bHBjMzJ4eC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvY29tbW9uLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9jb21tb24uYy0xOC1cbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcGh5MzI1MC5jLTExLSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNoL2FyY2guaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3BoeTMyNTAuYzoxMjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3BoeTMyNTAuYy0xMy1cbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03MS0jaW5jbHVkZSBcJiMzNDtscGMzMnh4LmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9wbS5jOjcyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03My1cbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvc2VyaWFsLmMtMjAtI2luY2x1ZGUgXCYjMzQ7bHBjMzJ4eC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvc2VyaWFsLmM6MjE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9zZXJpYWwuYy0yMi1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9jb21tb24uYy0xNy1cbmFyY2gvYXJtL21hY2gtbW1wL2NvbW1vbi5jOjE4OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW1tcC9jb21tb24uYy0xOS1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAtZHQuYy0xMy1cbmFyY2gvYXJtL21hY2gtbW1wL21tcC1kdC5jOjE0OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW1tcC9tbXAtZHQuYy0xNS1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAyLWR0LmMtMTMtXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAyLWR0LmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbW1wL21tcDItZHQuYy0xNS1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAzLmMtMTAtXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAzLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbW1wL21tcDMuYy0xMi1cbi0tXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvYnVmZmFsby13eGwtc2V0dXAuYy0yMi0jaW5jbHVkZSBcJiMzNDttdjc4eHgwLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9idWZmYWxvLXd4bC1zZXR1cC5jOjIzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvYnVmZmFsby13eGwtc2V0dXAuYy0yNC0jaW5jbHVkZSBcJiMzNDttcHAuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYy0yNS0jaW5jbHVkZSBcJiMzNDticmlkZ2UtcmVncy5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmM6MjY6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYy0yNy1cbi0tXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMtMTQtI2luY2x1ZGUgXCYjMzQ7YnJpZGdlLXJlZ3MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMtMTYtXG4tLVxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jLTEyLSNpbmNsdWRlIFwmIzM0O212Nzh4eDAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jOjEzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvbXBwLmMtMTQtI2luY2x1ZGUgXCYjMzQ7bXBwLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvcGNpZS5jLTE1LSNpbmNsdWRlIFwmIzM0O212Nzh4eDAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYzoxNjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYy0xNy1cbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmMtMjgtI2luY2x1ZGUgXCYjMzQ7YXJtYWRhLTM3MC14cC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmM6Mjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvYm9hcmQtdjcuYy0zMC0jaW5jbHVkZSBcJiMzNDtjb2hlcmVuY3kuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvY3B1LXJlc2V0LmMtMTUtXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2NwdS1yZXNldC5jOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L2NwdS1yZXNldC5jLTE3LVxuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvZG92ZS5jLTEzLSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNoL2FyY2guaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1tdmVidS9kb3ZlLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvZG92ZS5jLTE1LVxuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNC0jaW5jbHVkZSBcJiMzNDtraXJrd29vZC1wbS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L2tpcmt3b29kLmM6MjU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNi1cbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L212ZWJ1LXNvYy1pZC5jLTI0LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3N5c19zb2MuaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1tdmVidS9tdmVidS1zb2MtaWQuYzoyNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9tdmVidS1zb2MtaWQuYy0yNi0jaW5jbHVkZSBcJiMzNDttdmVidS1zb2MtaWQuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC1hOS5jLTE4LSNpbmNsdWRlIFx1MDAzY2FzbS9zbXBfcGxhdC5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAtYTkuYzoxOTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLWE5LmMtMjAtI2luY2x1ZGUgXCYjMzQ7cG1zdS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLmMtMjQtI2luY2x1ZGUgXHUwMDNjYXNtL3NtcF9wbGF0LmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC5jOjI1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAuYy0yNi0jaW5jbHVkZSBcJiMzNDthcm1hZGEtMzcwLXhwLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLWJvYXJkLmMtMTctI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLWJvYXJkLmM6MTg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0tYm9hcmQuYy0xOS1cbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLmMtMjItI2luY2x1ZGUgXCYjMzQ7Y29oZXJlbmN5LmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0uYzoyMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9wbS5jLTI0LSNpbmNsdWRlIFwmIzM0O3Btc3UuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvcG1zdS5jLTM3LSNpbmNsdWRlIFx1MDAzY2FzbS90bGJmbHVzaC5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3Btc3UuYzozODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9wbXN1LmMtMzktI2luY2x1ZGUgXCYjMzQ7cG1zdS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1tdmVidS9zeXN0ZW0tY29udHJvbGxlci5jLTI2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlYm9vdC5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3N5c3RlbS1jb250cm9sbGVyLmM6Mjc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvc3lzdGVtLWNvbnRyb2xsZXIuYy0yOC0jaW5jbHVkZSBcJiMzNDttdmVidS1zb2MtaWQuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1zLWRlbHRhLmMtNDQtI2luY2x1ZGUgXCYjMzQ7aW9tYXAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1hbXMtZGVsdGEuYzo0NTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1hbXMtZGVsdGEuYy00Ni1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMtMzQtI2luY2x1ZGUgXCYjMzQ7dXNiLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYzozNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1ub2tpYTc3MC5jLTM2LSNpbmNsdWRlIFwmIzM0O2Nsb2NrLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jLTU2LSNpbmNsdWRlIFwmIzM0O3VzYi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jOjU3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jLTU4LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDItI2luY2x1ZGUgXCYjMzQ7bW1jLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmM6NDM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDQtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1zeDEuYy00MS0jaW5jbHVkZSBcJiMzNDt1c2IuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1zeDEuYzo0MjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1zeDEuYy00My1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2RldmljZXMuYy0yMy0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2RldmljZXMuYzoyNDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9kZXZpY2VzLmMtMjUtI2luY2x1ZGUgXCYjMzQ7Y2xvY2suaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvaWQuYy0xOS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lkLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvaWQuYy0yMS1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2lvLmMtMTgtI2luY2x1ZGUgXCYjMzQ7aW9tYXAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9pby5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lvLmMtMjAtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pcnEuYy01MS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jOjUyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jLTUzLVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvb2NwaS5jLTI1LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvb2NwaS5jOjI2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL29jcGkuYy0yNy1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL3Jlc2V0LmMtMTAtI2luY2x1ZGUgXCYjMzQ7aW9tYXAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9yZXNldC5jOjExOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3Jlc2V0LmMtMTItXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMS9zZXJpYWwuYy0yMi1cbmFyY2gvYXJtL21hY2gtb21hcDEvc2VyaWFsLmM6MjM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvc2VyaWFsLmMtMjQtI2luY2x1ZGUgXCYjMzQ7c2VyaWFsLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWUuYy01NS0jaW5jbHVkZSBcJiMzNDtpb21hcC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWUuYzo1NjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS90aW1lLmMtNTctI2luY2x1ZGUgXCYjMzQ7Y2xvY2suaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01NC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWVyMzJrLmM6NTU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01Ni1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL3VzYi5jLTIxLSNpbmNsdWRlIFwmIzM0O3VzYi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3VzYi5jOjIyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3VzYi5jLTIzLVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvYW0zM3h4LXJlc3RhcnQuYy05LVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9hbTMzeHgtcmVzdGFydC5jOjEwOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2FtMzN4eC1yZXN0YXJ0LmMtMTEtI2luY2x1ZGUgXCYjMzQ7Y29udHJvbC5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmMtMTktXG5hcmNoL2FybS9tYWNoLW9tYXAyL2JvYXJkLWdlbmVyaWMuYzoyMDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmMtMjEtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMtMjgtXG5hcmNoL2FybS9tYWNoLW9tYXAyL2JvYXJkLW44eDAuYzoyOTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMtMzAtI2luY2x1ZGUgXCYjMzQ7bW1jLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMtMzYtI2luY2x1ZGUgXCYjMzQ7Y20tcmVnYml0cy0zNHh4LmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYzozNzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jLTM4LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLmMtMTQtXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5jLTE2LSNpbmNsdWRlIFwmIzM0O29tYXAtc2VjdXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYy0yMC0jaW5jbHVkZSBcJiMzNDtpb21hcC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYzoyMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMtMjItI2luY2x1ZGUgXCYjMzQ7Y20tcmVnYml0cy0zNHh4LmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NwdWlkbGUzNHh4LmMtMzItI2luY2x1ZGUgXCYjMzQ7Y29udHJvbC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2NwdWlkbGUzNHh4LmM6MzM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTM0eHguYy0zNC0jaW5jbHVkZSBcJiMzNDtzb2MuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTQ0eHguYy0xNy1cbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTQ0eHguYzoxODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlNDR4eC5jLTE5LSNpbmNsdWRlIFwmIzM0O3BtLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2RldmljZXMuYy0yNy0jaW5jbHVkZSBcJiMzNDtzb2MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9kZXZpY2VzLmM6Mjg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvZGV2aWNlcy5jLTI5LSNpbmNsdWRlIFwmIzM0O2NvbnRyb2wuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvZGlzcGxheS5jLTI2LSNpbmNsdWRlIFwmIzM0O29tYXBfZGV2aWNlLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvZGlzcGxheS5jOjI3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2Rpc3BsYXkuYy0yOC1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jLTMyLSNpbmNsdWRlIFwmIzM0O3NvYy5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jOjMzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jLTM0LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvaGRxMXcuYy0yMi0jaW5jbHVkZSBcJiMzNDtwcm0uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9oZHExdy5jOjIzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2hkcTF3LmMtMjQtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9pMmMuYy0xMi0jaW5jbHVkZSBcJiMzNDtwcm0uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9pMmMuYzoxMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9pMmMuYy0xNC0jaW5jbHVkZSBcJiMzNDtpMmMuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYy0yNy1cbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYzoyODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9pZC5jLTI5LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zMi0jaW5jbHVkZSBcJiMzNDtjbG9ja2RvbWFpbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2lvLmM6MzM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zNC0jaW5jbHVkZSBcJiMzNDtjbG9jay5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9tc2RpLmMtMTQtI2luY2x1ZGUgXCYjMzQ7cHJtLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvbXNkaS5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL21zZGkuYy0xNi0jaW5jbHVkZSBcJiMzNDtjb250cm9sLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtaG90cGx1Zy5jLTE5LSNpbmNsdWRlIFwmIzM0O29tYXAtd2FrZXVwZ2VuLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1ob3RwbHVnLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1ob3RwbHVnLmMtMjEtI2luY2x1ZGUgXCYjMzQ7cG93ZXJkb21haW4uaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jLTE1LSNpbmNsdWRlIFwmIzM0O3Bvd2VyZG9tYWluLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtaW9tbXUuYy0xNy1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtbXB1c3MtbG93cG93ZXIuYy01MC0jaW5jbHVkZSBcJiMzNDtzb2MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLW1wdXNzLWxvd3Bvd2VyLmM6NTE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1tcHVzcy1sb3dwb3dlci5jLTUyLSNpbmNsdWRlIFwmIzM0O29tYXA0NHh4LmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmMtMjEtXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmM6MjI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1zZWN1cmUuYy0yMy0jaW5jbHVkZSBcJiMzNDtvbWFwLXNlY3VyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNtcC5jLTMwLSNpbmNsdWRlIFwmIzM0O2lvbWFwLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1zbXAuYzozMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNtcC5jLTMyLSNpbmNsdWRlIFwmIzM0O2Nsb2NrZG9tYWluLmhcJiMzNDtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYxODgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9uVFgyIEFGIEluY2x1ZGUgUGF0aCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYXJvdW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaGAuIFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIGJhY2sgYW5kIGRldGVybWluZSBwcmVjaXNlbHkgd2hlcmUgdGhpcyBoZWFkZXIgZmlsZSBpcyBiZWluZyBwdWxsZWQgaW4uIFRoaXMgaXMgbGlrZWx5IHBhcnQgb2YgYSBkZWJ1Z2dpbmcgZWZmb3J0IG9yIG1heWJlIEkmIzM5O20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaG93IGEgcGFydGljdWxhciBmZWF0dXJlIGlzIGVuYWJsZWQvZGlzYWJsZWQgb3IgaG93IHRoZSBBRiAoQXBwbGljYXRpb24gRm9yd2FyZGluZykgY29tcG9uZW50IGlzIGludGVncmF0ZWQgd2l0aGluIHRoZSBPY3Rlb25UWDImIzM5O3MgRXRoZXJuZXQgZHJpdmVyLiBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgY2FsbCBoaWVyYXJjaHkuIEl0IGNvdWxkIGJlIGRpcmVjdGx5IGluY2x1ZGVkIGluIGEgc291cmNlIGZpbGUsIG9yIHBvdGVudGlhbGx5IGJyb3VnaHQgaW4gdGhyb3VnaCBhIGNoYWluIG9mIGluY2x1ZGVzLCBwZXJoYXBzIHdpdGhpbiBhIGNvbmZpZ3VyYXRpb24gbWFjcm8gb3IgY29uZGl0aW9uYWwgY29tcGlsZSBzdGF0ZW1lbnQuIFNvLCBsZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlYmFzZSB0byBwaW5wb2ludCB0aGUgZXhhY3QgbG9jYXRpb25zIHdoZXJlIHRoaXMgaGVhZGVyIGZpbGUgaXMgYmVpbmcgcmVmZXJlbmNlZC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBzdGVwIGZvciBlZmZpY2llbnQgcmV2ZXJzZSBlbmdpbmVlcmluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2luY2x1ZGUuKmNvbW1vblxcLmgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0yMS0jaW5jbHVkZSBcJiMzNDtydnUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6MjI6I2luY2x1ZGUgXCYjMzQ7bG1hY19jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oLTE1LSNpbmNsdWRlIFwmIzM0O3J2dV9zdHJ1Y3QuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMTctI2luY2x1ZGUgXCYjMzQ7Y24yMGsvc3RydWN0LmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMTQtI2luY2x1ZGUgXCYjMzQ7bWNzX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MTU6I2luY2x1ZGUgXCYjMzQ7bG1hY19jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3JwbS5jLTgtI2luY2x1ZGUgXCYjMzQ7Y2d4LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3JwbS5jOjk6I2luY2x1ZGUgXCYjMzQ7bG1hY19jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnBtLmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMTYtI2luY2x1ZGUgXCYjMzQ7cnZ1X2RldmxpbmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTE4LSNpbmNsdWRlIFwmIzM0O21ib3guaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMy0jaW5jbHVkZSBcJiMzNDtjZ3guaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjE0OiNpbmNsdWRlIFwmIzM0O2xtYWNfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xNS0jaW5jbHVkZSBcJiMzNDtydnVfcmVnLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTE4LSNpbmNsdWRlIFwmIzM0O2NneC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjE5OiNpbmNsdWRlIFwmIzM0O2xtYWNfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjAtI2luY2x1ZGUgXCYjMzQ7bnBjLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTYtI2luY2x1ZGUgXCYjMzQ7Y2d4LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNzojaW5jbHVkZSBcJiMzNDtsbWFjX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTgtI2luY2x1ZGUgXCYjMzQ7cnZ1X25wY19oYXNoLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBjLmMtMjEtI2luY2x1ZGUgXCYjMzQ7Y24yMGsvcmVnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGMuYzoyMjojaW5jbHVkZSBcJiMzNDtsbWFjX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBjLmMtMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3JlZy5jLTExLSNpbmNsdWRlIFwmIzM0O3J2dV9zdHJ1Y3QuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3JlZy5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfcmVnLmMtMTMtI2luY2x1ZGUgXCYjMzQ7bWJveC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrLmgtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaDoxMTojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaC0xMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy0xMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jOjEzOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jLTE0LSNpbmNsdWRlIFwmIzM0O290eDJfc3RydWN0LmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfbWFjc2VjLmMtOS0jaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRmaWVsZC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfbWFjc2VjLmM6MTA6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX21hY3NlYy5jLTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYzo4OiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTktI2luY2x1ZGUgXCYjMzQ7b3R4Ml9yZWcuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5oLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmg6MTE6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmgtMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTYtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9yZWcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTc6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTgtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9zdHJ1Y3QuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RjYm5sLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RjYm5sLmM6ODojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kY2JubC5jLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kZXZsaW5rLmM6NzojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kZXZsaW5rLmMtOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kbWFjX2ZsdC5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kbWFjX2ZsdC5jOjg6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZG1hY19mbHQuYy05LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2V0aHRvb2wuYy0xNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2V0aHRvb2wuYzoxNjojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9ldGh0b29sLmMtMTctI2luY2x1ZGUgXCYjMzQ7b3R4Ml9wdHAuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2Zsb3dzLmMtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9mbG93cy5jOjExOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2Zsb3dzLmMtMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0yMS0jaW5jbHVkZSBcJiMzNDtvdHgyX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jOjIyOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMjMtI2luY2x1ZGUgXCYjMzQ7b3R4Ml90eHJ4LmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wdHAuYy05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcHRwLmM6MTA6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcHRwLmMtMTEtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9wdHAuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtMjAtI2luY2x1ZGUgXCYjMzQ7Y24xMGsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzoyMTojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTIyLSNpbmNsdWRlIFwmIzM0O3Fvcy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdHhyeC5jLTE3LSNpbmNsdWRlIFwmIzM0O290eDJfcmVnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3R4cnguYzoxODojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90eHJ4LmMtMTktI2luY2x1ZGUgXCYjMzQ7b3R4Ml9zdHJ1Y3QuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjEzOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMTQtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9yZWcuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jLTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfeHNrLmM6MTM6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfeHNrLmMtMTQtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9zdHJ1Y3QuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYzoxMjojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmMtMTMtI2luY2x1ZGUgXCYjMzQ7Y24xMGsuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3Nfc3EuYy0xMi0jaW5jbHVkZSBcJiMzNDtvdHgyX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zX3NxLmM6MTM6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvc19zcS5jLTE0LSNpbmNsdWRlIFwmIzM0O290eDJfdHhyeC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jOjE0OiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuYy0xNS0jaW5jbHVkZSBcJiMzNDtjbjEway5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5oLTE0LSNpbmNsdWRlIFwmIzM0O290eDJfdHhyeC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmg6MTU6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5oLTE2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwMzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTg5NgoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNoZWNraW5nIE15IERlcGVuZGVuY2llcyoqCgpPa2F5LCBiZWZvcmUgSSBwcm9jZWVkIGZ1cnRoZXIsIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnl0aGluZyBvYnZpb3VzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgZ2xhbmNlIGF0IGBvdHgyX2NvbW1vbi5oYCBhcyB3ZWxsLiBJdCYjMzk7cyBjcnVjaWFsLCBhbmQgZnJhbmtseSwgYSBmcmVxdWVudCBzb3VyY2Ugb2YgJiMzNDtnb3RjaGFzJiMzNDsgaW4gdGhpcyBwcm9qZWN0LiBOb3csIHRoZSBjb3JlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYG90eDJfY29tbW9uLmhgIHB1bGxzIGluIGFueSBvZiB0aGUgYmFzZSB1dGlsaXRpZXMuIFNwZWNpZmljYWxseSwgaXMgYGFmL2NvbW1vbi5oYCBiZWluZyBpbmNsdWRlZCB0aGVyZT8gQSBtaXNzaW5nIGluY2x1ZGUgaGVyZSBjb3VsZCBleHBsYWluIHRoZSB1bnVzdWFsIGJlaGF2aW9yIEkmIzM5O20gY2hhc2luZyBkb3duLCBvciBhdCBsZWFzdCBoZWxwIHJ1bGUgb3V0IHNvbWUgcG9zc2liaWxpdGllcy4gTGV0JiMzOTtzIHNlZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwMzozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbW1vblxcLmgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMTI4CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRob3VnaHRzOgoKKipQZWVyaW5nIGludG8gdGhlIENvbW1vbiBIZWFydCBvZiBPVFgyKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGZvdW5kYXRpb24gb2YgdGhpcyBPVFgyIHByb2plY3QuIFRpbWUgdG8gZGlnIGludG8gdGhlIGRldGFpbHMuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgZXhhbWluaW5nIHdoYXQgYG90eDJfY29tbW9uLmhgIGlzIHB1bGxpbmcgaW4uIFVuZGVyc3RhbmRpbmcgdGhlIGRlcGVuZGVuY2llcyBhdCB0aGUgdmVyeSBiYXNlIGxldmVsIHdpbGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIG92ZXJ2aWV3IG9mIHRoaXMgYXJjaGl0ZWN0dXJlLiBJdCYjMzk7cyB0aGUgc3RhbmRhcmQgb3BlcmF0aW5nIHByb2NlZHVyZTsgeW91IG5ldmVyIHdhbnQgdG8gZ28gZm9yd2FyZCB3aXRob3V0IGdyYXNwaW5nIHRoZSBidWlsZGluZyBibG9ja3MuIEtub3dpbmcgd2hpY2ggaGVhZGVycyBpdCYjMzk7cyBpbmNsdWRpbmcgd2lsbCBpbnN0YW50bHkgdGVsbCBtZSB3aGVyZSB0byBsb29rIGZvciBkYXRhIHN0cnVjdHVyZXMsIGZ1bmRhbWVudGFsIGRlZmluaXRpb25zLCB1dGlsaXR5IGZ1bmN0aW9ucywgYW5kIHBvc3NpYmx5IGV2ZW4gZXh0ZXJuYWwgbGlicmFyeSBpbnRlcmZhY2VzIHRoYXQgZXZlcnl0aGluZyBlbHNlIGRlcGVuZHMgb24uIEl04oCZcyB0aGUgc2tlbGV0b24ga2V5LCBzbyB0byBzcGVhay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4gICAyOlx0LyogTWFydmVsbCBSVlUgRXRoZXJuZXQgZHJpdmVyXG4gICAzOlx0ICpcbiAgIDQ6XHQgKiBDb3B5cmlnaHQgKEMpIDIwMjAgTWFydmVsbC5cbiAgIDU6XHQgKlxuICAgNjpcdCAqL1xuICAgNzpcdFxuICAgODpcdCNpZm5kZWYgT1RYMl9DT01NT05fSFxuICAgOTpcdCNkZWZpbmUgT1RYMl9DT01NT05fSFxuICAxMDpcdFxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2V0aHRvb2wuaFx1MDAzZVxuICAxMjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS5oXHUwMDNlXG4gIDEzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvaW9tbXUuaFx1MDAzZVxuICAxNDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L25ldF90c3RhbXAuaFx1MDAzZVxuICAxNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3B0cF9jbG9ja19rZXJuZWwuaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVjb3VudGVyLmhcdTAwM2VcbiAgMTc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9zb2MvbWFydmVsbC9zaWxpY29ucy5oXHUwMDNlXG4gIDE4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvc29jL21hcnZlbGwvb2N0ZW9udHgyL2FzbS5oXHUwMDNlXG4gIDE5Olx0I2luY2x1ZGUgXHUwMDNjbmV0L21hY3NlYy5oXHUwMDNlXG4gIDIwOlx0I2luY2x1ZGUgXHUwMDNjbmV0L3BrdF9jbHMuaFx1MDAzZVxuICAyMTpcdCNpbmNsdWRlIFx1MDAzY25ldC9kZXZsaW5rLmhcdTAwM2VcbiAgMjI6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC90aW1lNjQuaFx1MDAzZVxuICAyMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2RpbS5oXHUwMDNlXG4gIDI0Olx0I2luY2x1ZGUgXHUwMDNjdWFwaS9saW51eC9pZl9tYWNzZWMuaFx1MDAzZVxuICAyNTpcdCNpbmNsdWRlIFx1MDAzY25ldC9wYWdlX3Bvb2wvaGVscGVycy5oXHUwMDNlXG4gIDI2Olx0XG4gIDI3Olx0I2luY2x1ZGUgXHUwMDNjbWJveC5oXHUwMDNlXG4gIDI4Olx0I2luY2x1ZGUgXHUwMDNjbnBjLmhcdTAwM2VcbiAgMjk6XHQjaW5jbHVkZSBcJiMzNDtvdHgyX3JlZy5oXCYjMzQ7XG4gIDMwOlx0I2luY2x1ZGUgXCYjMzQ7b3R4Ml90eHJ4LmhcJiMzNDtcbiAgMzE6XHQjaW5jbHVkZSBcJiMzNDtvdHgyX2RldmxpbmsuaFwmIzM0O1xuICAzMjpcdCNpbmNsdWRlIFx1MDAzY3J2dS5oXHUwMDNlXG4gIDMzOlx0I2luY2x1ZGUgXHUwMDNjcnZ1X3RyYWNlLmhcdTAwM2VcbiAgMzQ6XHQjaW5jbHVkZSBcJiMzNDtxb3MuaFwmIzM0O1xuICAzNTpcdCNpbmNsdWRlIFwmIzM0O3JlcC5oXCYjMzQ7XG4gIDM2Olx0I2luY2x1ZGUgXCYjMzQ7Y24xMGtfaXBzZWMuaFwmIzM0O1xuICAzNzpcdCNpbmNsdWRlIFwmIzM0O2NuMjBrLmhcJiMzNDtcbiAgMzg6XHRcbiAgMzk6XHQvKiBJUHY0IGZsYWcgbW9yZSBmcmFnbWVudCBiaXQgKi9cbiAgNDA6XHQjZGVmaW5lIElQVjRfRkxBR19NT1JFXHRcdFx0XHQweDIwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTYzCgkJCQkJCQlvdXRwdXQ6IDEyNQoJCQkJCQkJdGhvdWdodHM6IDM5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIEZ1enppbmcgQXBwbGljYWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSB0cmFjZWQgdGhlIGluY2x1ZGUgcGF0aDogYCZsdDttYm94LmgmZ3Q7YCByZXNvbHZlcyB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oYCwgd2hpY2ggcHVsbHMgaW4gYGNvbW1vbi5oYC4gVGhpcyBtZWFucyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhgIGlzICpvbmx5KiB1c2VkIHdpdGhpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgQUYgYW5kIE5JQyBkcml2ZXJzLiBUaGF0JiMzOTtzIHRoZSBrZXkuCgpOb3csIHRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgY29kZSAqYWN0dWFsbHkqIGJlIGV4ZWN1dGVkIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFPyBGcm9tIHRoZSBpbnN0cnVjdGlvbnMsIEkgcmVtZW1iZXIgdGhhdCBTZWN0aW9uIDIgc3BlY2lmaWNhbGx5IGNhbGxzIG91dCAmIzM0O3N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSwmIzM0OyBhbmQgbGlzdHMgZXhhbXBsZXMgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcyBhbmQgU21hcnROSUNzLiBCaW5nbyEgVGhlIE1hcnZlbGwgT2N0ZW9uVFgyIGlzIGV4YWN0bHkgdGhhdCDigJMgYSBTbWFydE5JQy9uZXR3b3JrIFNvQyAoQ2F2aXVtL01hcnZlbGwgT0NURU9OIFRYMiBSVlUgQUYvUEYvVkYpIHRoYXQgKmRlbWFuZHMqIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSBvciBQQ0llIGRldmljZXMuIEl0JiMzOTtzIG5vdCBlbXVsYXRlZCwgYW5kIGl0JiMzOTtzIG5vdCBhY2Nlc3NpYmxlIHRocm91Z2ggdmlydHVhbCBidXNlcyBvciBhbnkgc2ltdWxhdGVkIGRldmljZXMgaW4gc3RhbmRhcmQgc2V0dXBzLgoKVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGNvZGUgdGhhdCYjMzk7cyBmdW5kYW1lbnRhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nIHB1cnBvc2VzLiBXZSBuZWVkIHRvIG1hcmsgaXQgYXMgbm90IHdvcnRoIGZ1enppbmcuCgpMZXQmIzM5O3MgdmVyaWZ5IHRoaXMsIGRvdHRpbmcgb3VyIGkmIzM5O3MgYW5kIGNyb3NzaW5nIG91ciB0JiMzOTtzLiBXZSBuZWVkIHRvIHNldCB0aGUgZm9sbG93aW5nOgoKMS4gIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgLiBEZWZpbml0ZWx5IGZhbHNlLgoyLiAgYEZvY3VzU3ltYm9sc2A6IEFuIGVtcHR5IGxpc3QgKG9yIG51bGwpLCBzaW5jZSBmdXp6aW5nIGlzbiYjMzk7dCBhcHBsaWNhYmxlLgozLiAgYEVuYWJsZUNvbmZpZ3NgOiBBbm90aGVyIGVtcHR5IGxpc3QgKG9yIG51bGwpIGJlY2F1c2Ugd2UmIzM5O3JlIG5vdCBlbmFibGluZyBhbnl0aGluZyBmb3IgZnV6emluZy4KNC4gIGBSZWFzb25pbmdgOiBDb25jaXNlIGV4cGxhbmF0aW9uLCB3aGljaCBJJiMzOTt2ZSBnb3Q6IFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZS9BU0lDLCBhbmQgdGhhdCBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gUUVNVS9HQ0UuCgpBbHJpZ2h0LCB3aXRoIHRoYXQgY29uZmlybWVkLCBJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBETUEgYWxsb2NhdGlvbiBhbmQgbWVtb3J5IG1hbmFnZW1lbnQgaGVscGVycyAocW1lbV9hbGxvYywgb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQsIGV0Yy4pIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgKFJlc291cmNlIFZpcnR1YWxpemF0aW9uIFVuaXQpIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgc3BlY2lmaWMgdG8gTWFydmVsbCBPY3Rlb25UWDIgU21hcnROSUMgLyBTb0MgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhbmQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOToxMi44MDkyMzgwMDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjgzMzIxNDY0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIERNQSBhbGxvY2F0aW9uIGFuZCBtZW1vcnkgbWFuYWdlbWVudCBoZWxwZXJzIChxbWVtX2FsbG9jLCBvdHgyX2RtYV9hbGxvY19jb2hlcmVudCwgZXRjLikgaW4gdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSAoUmVzb3VyY2UgVmlydHVhbGl6YXRpb24gVW5pdCkgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyBzcGVjaWZpYyB0byBNYXJ2ZWxsIE9jdGVvblRYMiBTbWFydE5JQyAvIFNvQyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgUUVNVSBvciBHQ0UgZnV6emluZyBlbnZpcm9ubWVudHMsIG1ha2luZyB0aGUgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOToxMi44MDkyNDUxMjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Mjc5OTI1NzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhMGI5MzkzZWNkNjg1ODg0YzJhMWNkNDdlNDNlNjRiM2EwYmE5NGY4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgU2VwIDExIDAzOjM5OjEwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhcXG5pbmRleCA3Nzk0MTNhMzgzYjc0Li43OGU0MjU0OWQ5OTA4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhcXG5AQCAtNyw2ICs3LDEwIEBAXFxuICNpZm5kZWYgQ09NTU9OX0hcXG4gI2RlZmluZSBDT01NT05fSFxcbiBcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1tYXBwaW5nLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9nZnAuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tLmhcXHUwMDNlXFxuK1xcbiAjaW5jbHVkZSBcXFwicnZ1X3N0cnVjdC5oXFxcIlxcbiBcXG4gI2RlZmluZSBPVFgyX0FMSUdOXFx0XFx0XFx0MTI4ICAvKiBBbGlnbiB0byBjYWNoZWxpbmUgKi9cXG5AQCAtNDQsNiArNDgsMzMgQEAgc3RydWN0IHFtZW0ge1xcbiBcXHR1MzJcXHRcXHRxc2l6ZTtcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCAqb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpXFxuK3tcXG4rXFx0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcXG4rXFx0dm9pZCAqdmFkZHI7XFxuK1xcbitcXHR2YWRkciA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7XFxuK1xcdGlmICghdmFkZHIpXFxuK1xcdFxcdHJldHVybiBOVUxMO1xcbitcXG4rXFx0ZG1hX2FkZHIgPSBkbWFfbWFwX3NpbmdsZShkZXYsIHZhZGRyLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7XFxuK1xcdGlmIChkbWFfbWFwcGluZ19lcnJvcihkZXYsIGRtYV9hZGRyKSkge1xcbitcXHRcXHRrZnJlZSh2YWRkcik7XFxuK1xcdFxcdHJldHVybiBOVUxMO1xcbitcXHR9XFxuK1xcbitcXHQqZG1hX2hhbmRsZSA9IGRtYV9hZGRyO1xcbitcXHRyZXR1cm4gdmFkZHI7XFxuK31cXG4rXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBvdHgyX2RtYV9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsXFxuK1xcdFxcdFxcdFxcdFxcdCAgdm9pZCAqdmFkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSlcXG4re1xcbitcXHRkbWFfdW5tYXBfc2luZ2xlKGRldiwgZG1hX2hhbmRsZSwgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpO1xcbitcXHRrZnJlZSh2YWRkcik7XFxuK31cXG4rXFxuIHN0YXRpYyBpbmxpbmUgaW50IHFtZW1fYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcW1lbSAqKnEsXFxuIFxcdFxcdFxcdCAgICAgaW50IHFzaXplLCBpbnQgZW50cnlfc3opXFxuIHtcXG5AQCAtNjAsOCArOTEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcXG4gXFxuIFxcdHFtZW0tXFx1MDAzZWVudHJ5X3N6ID0gZW50cnlfc3o7XFxuIFxcdHFtZW0tXFx1MDAzZWFsbG9jX3N6ID0gKHFzaXplICogZW50cnlfc3opICsgT1RYMl9BTElHTjtcXG4tXFx0cW1lbS1cXHUwMDNlYmFzZSA9IGRtYV9hbGxvY19hdHRycyhkZXYsIHFtZW0tXFx1MDAzZWFsbG9jX3N6LCBcXHUwMDI2cW1lbS1cXHUwMDNlaW92YSxcXG4tXFx0XFx0XFx0XFx0ICAgICBHRlBfS0VSTkVMLCBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTKTtcXG4rXFxuK1xcdGlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLVxcdTAwM2VhbGxvY19zeikpIFxcdTAwM2UgTUFYX1BBR0VfT1JERVIpXFxuK1xcdFxcdHJldHVybiAtRU5PTUVNO1xcbitcXG4rXFx0cW1lbS1cXHUwMDNlYmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS1cXHUwMDNlYWxsb2Nfc3osIFxcdTAwMjZxbWVtLVxcdTAwM2Vpb3ZhKTtcXG4gXFx0aWYgKCFxbWVtLVxcdTAwM2ViYXNlKVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuQEAgLTgwLDEwICsxMTQsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcW1lbV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKnFtZW0pXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuIFxcdGlmIChxbWVtLVxcdTAwM2ViYXNlKVxcbi1cXHRcXHRkbWFfZnJlZV9hdHRycyhkZXYsIHFtZW0tXFx1MDAzZWFsbG9jX3N6LFxcbi1cXHRcXHRcXHQgICAgICAgcW1lbS1cXHUwMDNlYmFzZSAtIHFtZW0tXFx1MDAzZWFsaWduLFxcbi1cXHRcXHRcXHQgICAgICAgcW1lbS1cXHUwMDNlaW92YSAtIHFtZW0tXFx1MDAzZWFsaWduLFxcbi1cXHRcXHRcXHQgICAgICAgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7XFxuK1xcdFxcdG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBxbWVtLVxcdTAwM2VhbGxvY19zeixcXG4rXFx0XFx0XFx0XFx0ICAgICAgIHFtZW0tXFx1MDAzZWJhc2UgLSBxbWVtLVxcdTAwM2VhbGlnbixcXG4rXFx0XFx0XFx0XFx0ICAgICAgIHFtZW0tXFx1MDAzZWlvdmEgLSBxbWVtLVxcdTAwM2VhbGlnbik7XFxuIFxcdGRldm1fa2ZyZWUoZGV2LCBxbWVtKTtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6MTQuMzM4MjA4MjUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo0NTMwNDIyNDUyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTBiOTM5M2VjZDY4NTg4NGMyYTFjZDQ3ZTQzZTY0YjNhMGJhOTRmOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDAzOjM5OjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuaW5kZXggNzc5NDEzYTM4M2I3NC4uNzhlNDI1NDlkOTkwOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuQEAgLTcsNiArNywxMCBAQFxuICNpZm5kZWYgQ09NTU9OX0hcbiAjZGVmaW5lIENPTU1PTl9IXG4gXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZG1hLW1hcHBpbmcuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2dmcC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbW0uaFx1MDAzZVxuK1xuICNpbmNsdWRlIFwicnZ1X3N0cnVjdC5oXCJcbiBcbiAjZGVmaW5lIE9UWDJfQUxJR05cdFx0XHQxMjggIC8qIEFsaWduIHRvIGNhY2hlbGluZSAqL1xuQEAgLTQ0LDYgKzQ4LDMzIEBAIHN0cnVjdCBxbWVtIHtcbiBcdHUzMlx0XHRxc2l6ZTtcbiB9O1xuIFxuK3N0YXRpYyBpbmxpbmUgdm9pZCAqb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcbitcdFx0XHRcdFx0ICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpXG4re1xuK1x0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbitcdHZvaWQgKnZhZGRyO1xuK1xuK1x0dmFkZHIgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xuK1x0aWYgKCF2YWRkcilcbitcdFx0cmV0dXJuIE5VTEw7XG4rXG4rXHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKGRldiwgdmFkZHIsIHNpemUsIERNQV9CSURJUkVDVElPTkFMKTtcbitcdGlmIChkbWFfbWFwcGluZ19lcnJvcihkZXYsIGRtYV9hZGRyKSkge1xuK1x0XHRrZnJlZSh2YWRkcik7XG4rXHRcdHJldHVybiBOVUxMO1xuK1x0fVxuK1xuK1x0KmRtYV9oYW5kbGUgPSBkbWFfYWRkcjtcbitcdHJldHVybiB2YWRkcjtcbit9XG4rXG4rc3RhdGljIGlubGluZSB2b2lkIG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcbitcdFx0XHRcdFx0ICB2b2lkICp2YWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlKVxuK3tcbitcdGRtYV91bm1hcF9zaW5nbGUoZGV2LCBkbWFfaGFuZGxlLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7XG4rXHRrZnJlZSh2YWRkcik7XG4rfVxuK1xuIHN0YXRpYyBpbmxpbmUgaW50IHFtZW1fYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcW1lbSAqKnEsXG4gXHRcdFx0ICAgICBpbnQgcXNpemUsIGludCBlbnRyeV9zeilcbiB7XG5AQCAtNjAsOCArOTEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbiBcbiBcdHFtZW0tXHUwMDNlZW50cnlfc3ogPSBlbnRyeV9zejtcbiBcdHFtZW0tXHUwMDNlYWxsb2Nfc3ogPSAocXNpemUgKiBlbnRyeV9zeikgKyBPVFgyX0FMSUdOO1xuLVx0cW1lbS1cdTAwM2ViYXNlID0gZG1hX2FsbG9jX2F0dHJzKGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeiwgXHUwMDI2cW1lbS1cdTAwM2Vpb3ZhLFxuLVx0XHRcdFx0ICAgICBHRlBfS0VSTkVMLCBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTKTtcbitcbitcdGlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLVx1MDAzZWFsbG9jX3N6KSkgXHUwMDNlIE1BWF9QQUdFX09SREVSKVxuK1x0XHRyZXR1cm4gLUVOT01FTTtcbitcbitcdHFtZW0tXHUwMDNlYmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeiwgXHUwMDI2cW1lbS1cdTAwM2Vpb3ZhKTtcbiBcdGlmICghcW1lbS1cdTAwM2ViYXNlKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbkBAIC04MCwxMCArMTE0LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHFtZW1fZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICpxbWVtKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRpZiAocW1lbS1cdTAwM2ViYXNlKVxuLVx0XHRkbWFfZnJlZV9hdHRycyhkZXYsIHFtZW0tXHUwMDNlYWxsb2Nfc3osXG4tXHRcdFx0ICAgICAgIHFtZW0tXHUwMDNlYmFzZSAtIHFtZW0tXHUwMDNlYWxpZ24sXG4tXHRcdFx0ICAgICAgIHFtZW0tXHUwMDNlaW92YSAtIHFtZW0tXHUwMDNlYWxpZ24sXG4tXHRcdFx0ICAgICAgIERNQV9BVFRSX0ZPUkNFX0NPTlRJR1VPVVMpO1xuK1x0XHRvdHgyX2RtYV9mcmVlX2NvaGVyZW50KGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeixcbitcdFx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWJhc2UgLSBxbWVtLVx1MDAzZWFsaWduLFxuK1x0XHRcdFx0ICAgICAgIHFtZW0tXHUwMDNlaW92YSAtIHFtZW0tXHUwMDNlYWxpZ24pO1xuIFx0ZGV2bV9rZnJlZShkZXYsIHFtZW0pO1xuIH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjE0LjMzODIyNTAyM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwMTU5NDE4MjM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgQXNzZXNzbWVudCBvZiBQYXRjaCBhbmQgSGFyZHdhcmUgQ29udGV4dCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoYXQgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBBRiBldGhlcm5ldCBkcml2ZXIuIEhtbSwgSSB3b25kZXIgaWYgdGhpcyBwYXJ0aWN1bGFyIGhhcmR3YXJlIGlzIGV2ZW4gKmFjY2Vzc2libGUqIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAgb3IgZXZlbiBvbiBHQ0U/IEl0J3MgYSBiaXQgbmljaGUuIEknbGwgbmVlZCB0byBkaWcgaW50byB0aGUgZHJpdmVyIGNvZGUgaXRzZWxmLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYEtjb25maWdgIGZpbGVzLlxuXG5UaGlzJ2xsIGludm9sdmUgc29tZSBncmVwcGluZyBhbmQgZ2VuZXJhbCBpbnZlc3RpZ2F0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBjaGFuZ2VzIGFuZCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvZGUgaXMgcmVsZXZhbnQgdG8gbXkgY3VycmVudCBjb25jZXJucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY0NSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6MjQuNDk3NjQ1NTVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMDgxOTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk9DVEVPTlRYMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzoxMTpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTEyLVxcdHNlbGVjdCBORVRfREVWTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTIzLVxcdGJvb2wgXFxcIkRpc2FibGUgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgaW4gTkRDXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTI1LVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MzM6XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zNC1cXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NTpjb25maWcgT0NURU9OVFgyX1ZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgTklDIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDc6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01Mi1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjUzOlxcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01NC1cXHRkZWZhdWx0IG1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IGFmL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9BRikgKz0gYWYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSArPSBuaWMvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSArPSBydnVfbWJveC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSArPSBydnVfYWYub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYz02Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy02OC1cXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTUtIC8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYXFx0XFx0MHhBMDU5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE1NjojZGVmaW5lIF9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTU3LXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIF9fbmFtZSAjIyBfZm9wcyA9IHtcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNjU6I2RlZmluZSBERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShfX25hbWUsIF9fc2l6ZSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE3MTpfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50IG5wY19tY2FtX2RzdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyNDM6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fZHN0YXRzLCBUT1RBTF9TWik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODQtLyogXFxcIiV1XFxcXHQlZFxcXFx0JXVcXFxcblxcXCIgbmVlZHMgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgdG8gcHJpbnQuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI4NTpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9taXNtYXRjaCwgVE9UQUxfU1opO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXFx0XFx0XFx0MHhBMDBDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjItI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQXFx0XFx0MHhCMTAwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yNy0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE9fUFRQXFx0MHhCNjAwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Mjg6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JTVFxcdFxcdFxcdDB4QTA4NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI5LSNkZWZpbmUgUENJX0RFVklEX0NOMTBLX1BUUFxcdFxcdFxcdDB4QTA5RVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTA6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkxLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTItXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5NC1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5NjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5OC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTk6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAwLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDEtXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE5fUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDMtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDU6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBydnVfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTQ2LVxcdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz05Mjc9c3RhdGljIHZvaWQgcnZ1X2dldF9sYmtfYnVmc2l6ZShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzMtXFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcXHRcXHRcXHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtOTM1LVxcdGlmICghcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NDc9aW50IHJ2dV9nZXRfbnVtX2xia19jaGFucyh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDUzOlxcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9MQkssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1NC1cXHRcXHRcXHQgICAgICBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcXHQweEEwRjhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0OTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ5NTpcXHRpZiAocnZ1LVxcdTAwM2V2Zl9kZXZpZCA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5Ni1cXHRcXHRjaGFucyA9IHJ2dV9nZXRfbnVtX2xia19jaGFucygpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjMtLyogUENJIGRldmljZSBJRHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNDojZGVmaW5lXFx0UENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZcXHRcXHQweEEwNjVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNTojZGVmaW5lXFx0UENJX0RFVklEX09DVEVPTlRYMl9MQktcXHRcXHRcXHQweEEwNjFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jPTM5Mj1zdGF0aWMgdm9pZCBydnVfbGJrX3NldF9jaGFubmVscyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTUtXFx0XFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jOjQxNjpcXHRcXHRcXHRcXHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtNDE3LVxcdFxcdGlmICghcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM9MjgwNj1zdGF0aWMgdm9pZCBydnVfZGJnX25wYV9pbml0KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgyNS0vKiBQZXItbG1hYyBDR1ggZGVidWdmcyBmaWxlcyBuZWVkIGJvdGggUlZVIGFuZCBDR1ggaGFuZGxlOyBpbm9kZS1cXHUwMDNlaV9wcml2YXRlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzoyODI2OiAqIHBvaW50cyBoZXJlIHNvIHNlcV9maWxlIG9wcyBhdm9pZCBwY2lfZ2V0X2RldmljZShQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRikuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy0yODI3LSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9QRikgKz0gcnZ1X25pY3BmLm8gb3R4Ml9wdHAub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfVkYpICs9IHJ2dV9uaWN2Zi5vIG90eDJfcHRwLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtOC1vYmotJChDT05GSUdfUlZVX0VTV0lUQ0gpICs9IHJ2dV9yZXAub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDItLyogUENJIGRldmljZSBJRHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0MzojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGICAgICAgICAgICAgICAweEEwNjNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0NDojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGXFx0XFx0MHhBMDY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDU6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGXFx0XFx0MHhBMEY4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo1MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUFxcdFxcdDB4QTBGN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg9NTk3PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19vdHgyX2xia3ZmKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTU5OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTk5OlxcdHJldHVybiAocGRldi1cXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjAwLVxcdFxcdChwZGV2LVxcdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX1JWVV9SRVApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg9NjE1PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19vdHgyX3NkcF9yZXAoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo2MTc6XFx0cmV0dXJuIHBkZXYtXFx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfcGZfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jOjM3OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zOC1cXHR7IDAsIH0gIC8qIGVuZCBvZiB0YWJsZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz0yMj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml92Zl9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjM6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjQ6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRikgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjI1OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMjYtXFx0eyB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjI0LjYwMDczMTU0M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE5NzgyMTI1MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhgLiBUaGlzIGlzIG9idmlvdXNseSBhIGtleSBoZWFkZXIgZmlsZSBmb3IgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGZpbGUgaXMgdXNlZCBhbmQgd2hhdCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIHJlbHkgb24gaXQuIExldCdzIHNlZSB3aG8ncyBpbmNsdWRpbmcgYGNvbW1vbi5oYC4gTWF5YmUgSSBzaG91bGQgYWxzbyBsb29rIGZvciBjYWxscyB0byBmdW5jdGlvbnMgbGlrZSBgcW1lbV9hbGxvY2Agb3Igb3RoZXIga2V5IGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIGl0J3MgZnVuY3Rpb25hbGl0eS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgb3ZlcmFsbCBkcml2ZXIncyBhcmNoaXRlY3R1cmUgYW5kIGhvdyB0aGlzIGBjb21tb24uaGAgZml0cyBpbnRvIHRoZSBwaWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDAwNCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjI2LjU3ODk0NzEyNVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTM1NTMyNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicW1lbV9hbGxvY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYz0yNjg9c3RhdGljIGludCBydnVfYWxsb2NfbWJveF9tZW1vcnkoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jLTI4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzoyODg6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNm1ib3hfYWRkciwgbmRldnMsIG1ib3hfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtMjg5LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYz00MDg9aW50IHJ2dV9hbGxvY19jaW50X3FpbnRfbWVtKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHJ2dV9wZnZmICpwZnZmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDI3LVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKChjdHhfY2ZnIFxcdTAwM2VcXHUwMDNlIDI0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmM6NDI4OlxcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVxcdTAwM2VkZXYsIFxcdTAwMjZwZnZmLVxcdTAwM2VjcV9pbnRzX2N0eCwgcWludHMsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jLTQyOS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDM4LVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKChjdHhfY2ZnIFxcdTAwM2VcXHUwMDNlIDIwKSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmM6NDM5OlxcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVxcdTAwM2VkZXYsIFxcdTAwMjZwZnZmLVxcdTAwM2VuaXhfcWludHNfY3R4LCBxaW50cywgaHdjdHhfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDQwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaD03MT1zdGF0aWMgaW5saW5lIHZvaWQgb3R4Ml9kbWFfZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmgtNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmg6Nzg6c3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaC03OS1cXHRcXHRcXHQgICAgIGludCBxc2l6ZSwgaW50IGVudHJ5X3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTIzNj1pbnQgcnZ1X2FxX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGFkbWluX3F1ZXVlICoqYWRfcXVldWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjQ3LVxcdC8qIEFsbG9jIG1lbW9yeSBmb3IgaW5zdHJ1Y3Rpb25zIGkuZSBBUSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjEyNDg6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNmFxLVxcdTAwM2VpbnN0LCBxc2l6ZSwgaW5zdF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjQ5LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNTQtXFx0LyogQWxsb2MgbWVtb3J5IGZvciByZXN1bHRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTI1NTpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2YXEtXFx1MDAzZXJlcywgcXNpemUsIHJlc19zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjU2LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz05NDQ9c3RhdGljIGludCBuaXhsZl9yc3NfY3R4X2luaXQoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy05NTctXFx0LyogQWxsb2MgTklYIFJTUyBIVyBjb250ZXh0IG1lbW9yeSBhbmQgY29uZmlnIHRoZSBiYXNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjk1ODpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlcnNzX2N0eCwgbnVtX2luZGljZXMsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy05NTktXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz0xNTEyPWludCBydnVfbWJveF9oYW5kbGVyX25peF9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTU4Ni1cXHRod2N0eF9zaXplID0gMVVMIFxcdTAwM2NcXHUwMDNjICgoY3R4X2NmZyBcXHUwMDNlXFx1MDAzZSA0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE1ODc6XFx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlcnFfY3R4LCByZXEtXFx1MDAzZXJxX2NudCwgaHdjdHhfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE1ODgtXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MDUtXFx0aHdjdHhfc2l6ZSA9IDFVTCBcXHUwMDNjXFx1MDAzYyAoY3R4X2NmZyBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2MDY6XFx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlc3FfY3R4LCByZXEtXFx1MDAzZXNxX2NudCwgaHdjdHhfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MDctXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MjMtXFx0aHdjdHhfc2l6ZSA9IDFVTCBcXHUwMDNjXFx1MDAzYyAoKGN0eF9jZmcgXFx1MDAzZVxcdTAwM2UgOCkgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNjI0OlxcdHJjID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZWNxX2N0eCwgcmVxLVxcdTAwM2VjcV9jbnQsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjI1LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjUxLVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKChjdHhfY2ZnIFxcdTAwM2VcXHUwMDNlIDI0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2NTI6XFx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlY3FfaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTY1My1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTY2NS1cXHRod2N0eF9zaXplID0gMVVMIFxcdTAwM2NcXHUwMDNjICgoY3R4X2NmZyBcXHUwMDNlXFx1MDAzZSAyMCkgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNjY2OlxcdHJjID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZW5peF9xaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTY2Ny1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM9MzcyMj1zdGF0aWMgaW50IG5peF9zZXR1cF9tY2FzdChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfaHcgKm5peF9odywgaW50IGJsa2FkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc0NS1cXHQvKiBBbGxvYyBtZW1vcnkgZm9yIG11bHRpY2FzdC9taXJyb3IgcmVwbGljYXRpb24gZW50cmllcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzozNzQ2OlxcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVxcdTAwM2VkZXYsIFxcdTAwMjZtY2FzdC1cXHUwMDNlbWNlX2N0eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc0Ny1cXHRcXHRcXHQgbWNhc3QtXFx1MDAzZW1jZV9jb3VudGVyW05JWF9NQ0FTVF9JTkdSRVNTXS5tYXgsIHNpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTM3NjItXFx0c2l6ZSA9IHJ2dV9yZWFkNjQocnZ1LCBibGthZGRyLCBOSVhfQUZfTUNfTUlSUk9SX0NPTlNUKSBcXHUwMDI2IDB4RkZGRjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6Mzc2MzpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2bWNhc3QtXFx1MDAzZW1jYXN0X2J1ZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc2NC1cXHRcXHRcXHQgKDhVTCBcXHUwMDNjXFx1MDAzYyBNQ19CVUZfQ05UKSwgc2l6ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmM9MzI3PWludCBydnVfbWJveF9oYW5kbGVyX25wYV9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzY2LVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKGN0eF9jZmcgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozNjc6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZWF1cmFfY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYy0zNjgtXFx0XFx0XFx0IE5QQV9BVVJBX0NPVU5UKHJlcS1cXHUwMDNlYXVyYV9zeiksIGh3Y3R4X3NpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jLTM3OC1cXHRod2N0eF9zaXplID0gMVVMIFxcdTAwM2NcXHUwMDNjICgoY3R4X2NmZyBcXHUwMDNlXFx1MDAzZSA0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jOjM3OTpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlcG9vbF9jdHgsIHJlcS1cXHUwMDNlbnJfcG9vbHMsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYy0zODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYy0zOTMtXFx0aHdjdHhfc2l6ZSA9IDFVTCBcXHUwMDNjXFx1MDAzYyAoKGN0eF9jZmcgXFx1MDAzZVxcdTAwM2UgOCkgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozOTQ6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZW5wYV9xaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzk1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYz00Mz1pbnQgY24xMGtfbG10c3RfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYy02NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYzo2NjpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZWR5bmNfbG10LCBwZnZmLVxcdTAwM2V0b3RfbG10X2xpbmVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEway5jLTY3LVxcdFxcdFxcdCBMTVRfTElORV9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jPTY2Nj1zdGF0aWMgaW50IGNuMTBrX2lwc2VjX291dGJfYWRkX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX2lwc2VjLmM6NjgxOlxcdGVyciA9IHFtZW1fYWxsb2MocGYtXFx1MDAzZWRldiwgXFx1MDAyNnNhX2luZm8sIHBmLVxcdTAwM2VpcHNlYy5zYV9zaXplLCBPVFgyX0FMSUdOKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jPTUyMD1zdGF0aWMgaW50IGNuMjBrX2F1cmFfYXFfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIGludCBhdXJhX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmMtNTMzLVxcdGlmICghcG9vbC1cXHUwMDNlZmNfYWRkcikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jOjUzNDpcXHRcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBvb2wtXFx1MDAzZWZjX2FkZHIsIDEsIE9UWDJfQUxJR04pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTUzNS1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM9NTk3PXN0YXRpYyBpbnQgY24yMGtfcG9vbF9hcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHBvb2xfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYy02MDctXFx0LyogQWxsb2MgbWVtb3J5IGZvciBzdGFjayB3aGljaCBpcyB1c2VkIHRvIHN0b3JlIGJ1ZmZlciBwb2ludGVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jOjYwODpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBvb2wtXFx1MDAzZXN0YWNrLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTYwOS1cXHRcXHRcXHQgc3RhY2tfcGFnZXMsIHBmdmYtXFx1MDAzZWh3LnN0YWNrX3BnX2J5dGVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTk2MT1pbnQgb3R4Ml9zcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHFpZHgsIHUxNiBzcWJfYXVyYSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzo5NzQ6XFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVxcdTAwM2VkZXYsIFxcdTAwMjZzcS1cXHUwMDNlc3FlLCAxLCBzcS1cXHUwMDNlc3FlX3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk3NS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTkxLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjk5MjpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnNxLVxcdTAwM2VzcWVfcmluZywgcXNldC1cXHUwMDNlc3FlX2NudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy05OTMtXFx0XFx0XFx0IHNxLVxcdTAwM2VzcWVfc2l6ZSAqIDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjk5NzpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnNxLVxcdTAwM2VjcHRfcmVzcCwgcXNldC1cXHUwMDNlc3FlX2NudCwgNjQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk5OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAwMS1cXHRpZiAocWlkeCBcXHUwMDNjIHBmdmYtXFx1MDAzZWh3LnR4X3F1ZXVlcykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjEwMDI6XFx0XFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVxcdTAwM2VkZXYsIFxcdTAwMjZzcS1cXHUwMDNldHNvX2hkcnMsIHFzZXQtXFx1MDAzZXNxZV9jbnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAwMy1cXHRcXHRcXHRcXHQgVFNPX0hFQURFUl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEwMTMtXFx0aWYgKHBmdmYtXFx1MDAzZXB0cCBcXHUwMDI2XFx1MDAyNiBxaWR4IFxcdTAwM2MgcGZ2Zi1cXHUwMDNlaHcudHhfcXVldWVzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTAxNDpcXHRcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnNxLVxcdTAwM2V0aW1lc3RhbXBzLCBxc2V0LVxcdTAwM2VzcWVfY250LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEwMTUtXFx0XFx0XFx0XFx0IHNpemVvZigqc3EtXFx1MDAzZXRpbWVzdGFtcHMpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTEwNTE9aW50IG90eDJfY3FfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIHUxNiBxaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTA5OS1cXHQvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIENRRXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxMTAwOlxcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cXHUwMDNlZGV2LCBcXHUwMDI2Y3EtXFx1MDAzZWNxZSwgY3EtXFx1MDAzZWNxZV9jbnQsIGNxLVxcdTAwM2VjcWVfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTEwMS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM9MTM3Nj1pbnQgb3R4Ml9hdXJhX2FxX2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmLCBpbnQgYXVyYV9pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzODgtXFx0aWYgKCFwb29sLVxcdTAwM2VmY19hZGRyKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTM4OTpcXHRcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBvb2wtXFx1MDAzZWZjX2FkZHIsIDEsIE9UWDJfQUxJR04pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzOTAtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTE0NjA9aW50IG90eDJfcG9vbF9hcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHBvb2xfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNDcwLVxcdC8qIEFsbG9jIG1lbW9yeSBmb3Igc3RhY2sgd2hpY2ggaXMgdXNlZCB0byBzdG9yZSBidWZmZXIgcG9pbnRlcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxNDcxOlxcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cXHUwMDNlZGV2LCBcXHUwMDI2cG9vbC1cXHUwMDNlc3RhY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTQ3Mi1cXHRcXHRcXHQgc3RhY2tfcGFnZXMsIHBmdmYtXFx1MDAzZWh3LnN0YWNrX3BnX2J5dGVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9NTc5PXN0YXRpYyB2b2lkICpjbjIwa19wZnZmX21ib3hfYWxsb2Moc3RydWN0IG90eDJfbmljICpwZiwgaW50IG51bXZmcylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6NTg0OlxcdGVyciA9IHFtZW1fYWxsb2MoXFx1MDAyNnBmLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsIFxcdTAwMjZtYm94X2FkZHIsIG51bXZmcywgTUJPWF9TSVpFKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTU4NS1cXHRpZiAoZXJyKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjI2LjY5MjUwNDc1N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjcyMTI1NjUwNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBNYXJ2ZWxsIE9jdGVvblRYMiBhbmQgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSBpZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgY29kZSBpcyBpbmhlcmVudGx5IGhhcmR3YXJlLXNwZWNpZmljLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCBmYWxscyB1bmRlciB0aGUgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjYXRlZ29yeSwgc3BlY2lmaWNhbGx5IHRoZSBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZVwiIGNsYXVzZS4gVGhpcyBtZWFucyBJIG5lZWQgdG8gYXNzZXNzIGlmIHRoaXMgY29kZSBpbnRlcmFjdHMgd2l0aCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyB0aGF0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZSDigJMgc3R1ZmYgbm90IHR5cGljYWxseSBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuXG5cbk15IGxpbmUgb2YgcmVhc29uaW5nIGlzIGNsZWFyOiBJcyB0aGUgT2N0ZW9uVFgyIGEgU21hcnROSUMgb3IgRXRoZXJuZXQgQVNJQyBkcml2ZXIgdGhhdCdzIGRlcGVuZGVudCBvbiBzcGVjaWZpYyBoYXJkd2FyZSwgZXNwZWNpYWxseSBhIFBDSWUgZGV2aWNlLCBhbmQgY3J1Y2lhbGx5LCAqbm90KiBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VP1xuXG5TbywgZmlyc3QgSSdsbCB6ZXJvIGluIG9uIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYCBkaXJlY3RvcnkuIEJhc2VkIG9uIG15IGV4aXN0aW5nIGtub3dsZWRnZSwgTWFydmVsbCdzIE9jdGVvblRYMiBSVlUgYXJjaGl0ZWN0dXJlIGlzIGEga2V5IGNvbXBvbmVudCwgdXNlZCBpbiB0aGVpciBPY3Rlb24gVFgyIG5ldHdvcmsgcHJvY2Vzc29ycywgd2hpY2ggYXJlIHR5cGljYWxseSBmb3VuZCBpbiBTbWFydE5JQ3MgYW5kIFNvQ3MgKENOOVhYWCwgQ04xMEssIGV0Yy4pLiBCaW5nbywgdGhhdCdzIGEgUENJZSBkZXZpY2UhIFRoZXkgaGF2ZSBzcGVjaWZpYyBQQ0kgSURzLCB2ZW5kb3IgMHgxNzdkIChDQVZJVU0pLCBhbmQgdmFyaW91cyBkZXZpY2UgSURzIHN1Y2ggYXMgMHhBMDY1LCAweEEwNjMsIDB4QTA2NCwgYW5kIG90aGVycy5cblxuQW5kIHRoZSBjb25jbHVzaW9uIEkndmUgY29tZSB0bzogVGhlc2UgZGV2aWNlcyBhcmVuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgb3IgYXQgbGVhc3QgR0NFIGVudmlyb25tZW50cy5cblxuVG8gYmUgdGhvcm91Z2gsIEkgd2lsbCBhbHNvIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBtb2NrIGRldmljZXMuIEFsc28sIEknbGwgbmVlZCB0byBjaGVjayBpZiB0aGlzIGNvZGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgb3V0c2lkZSBvZiB0aGF0IGRyaXZlciwgd2hpY2ggY291bGQgaW5kaWNhdGUgYSBsZXZlbCBvZiBhYnN0cmFjdGlvbiBvciBoYXJkd2FyZS1pbmRlcGVuZGVudCBwYXJ0cy4gU3BlY2lmaWNhbGx5LCBJJ2xsIGxvb2sgaW50byB0aGUgaW5jbHVzaW9uIG9mIGBjb21tb24uaGAgdG8gc2VlIGhvdyBpdCBtaWdodCBiZSB1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTY0OSwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOTozMy45MDUwNzE2NzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4ODI2NzExMCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2luY2x1ZGUuKmFmL2NvbW1vblxcXFwuaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6MzYuMzkzMzQ3NTk4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NjUwMjA4Nzg1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqT2theSwgTGV0J3MgR2V0IHRvIFdvcmsqKlxuXG5SaWdodCwgdGltZSB0byBkaWcgaW4uIFRoZSBmaXJzdCB0aGluZyBJIG5lZWQgdG8gZG8gaXMgbG9jYXRlIHRoYXQgY3J1Y2lhbCBoZWFkZXIgZmlsZSwgYCNpbmNsdWRlIFwiY29tbW9uLmhcImAuIFRoYXQncyBsaWtlbHkgdGhlIGp1bXBpbmctb2ZmIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoaXMgY29kZSBiYXNlLiBJdCdzIHByb2JhYmx5IHdoZXJlIGEgbG90IG9mIHRoZSBjb3JlIGRlZmluaXRpb25zIGFuZCBzdHJ1Y3R1cmVzIGFyZSBsb2NhdGVkLiBPbmNlIEkgZmluZCBpdCwgSSBjYW4gc3RhcnQgdHJhY2luZyBkZXBlbmRlbmNpZXMgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLiBMZXQncyBzZWUgaWYgSSBjYW4gdXNlIGEgc2ltcGxlIHNlYXJjaCB0byBsb2NhdGUgdGhhdCBmaWxlIHF1aWNrbHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2NDg1LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NDIuODk1NDM3MjczWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjE1NzY3MDY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIiNpbmNsdWRlIFxcXCJjb21tb25cXFxcLmhcXFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjc2OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jLTE4LVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jb21tb24uYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jLTIwLSNpbmNsdWRlIFxcXCJjcHV0eXBlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvY3B1dHlwZS5oLTE2LVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmg6MTc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmgtMTgtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4NTAuYy0yMi1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4NTAuYzoyMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhODUwLmMtMjQtI2luY2x1ZGUgXFxcImNwdXR5cGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kYTh4eC1kdC5jLTktXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhOHh4LWR0LmM6MTA6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kYTh4eC1kdC5jLTExLSNpbmNsdWRlIFxcXCJkYTh4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RldmljZXMtZGE4eHguYy0yMC1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGV2aWNlcy1kYTh4eC5jOjIxOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGV2aWNlcy1kYTh4eC5jLTIyLSNpbmNsdWRlIFxcXCJjcHV0eXBlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvbXV4LmMtMjMtI2luY2x1ZGUgXFxcIm11eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9tdXguYzoyNDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL211eC5jLTI1LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BkYXRhLXF1aXJrcy5jLTEyLVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9wZGF0YS1xdWlya3MuYzoxMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BkYXRhLXF1aXJrcy5jLTE0LSNpbmNsdWRlIFxcXCJkYTh4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmMtMTgtXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmM6MTk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9wbS5jLTIwLSNpbmNsdWRlIFxcXCJkYTh4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3NyYW0uYy0xMS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jOjEyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jLTEzLSNpbmNsdWRlIFxcXCJzcmFtLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRvdmUvY20tYTUxMC5jLTIyLSNpbmNsdWRlIFxcXCJkb3ZlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL2NtLWE1MTAuYzoyMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL2NtLWE1MTAuYy0yNC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNC0jaW5jbHVkZSBcXFwicG0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRvdmUvY29tbW9uLmM6MjU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNi1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZG92ZS9pcnEuYy0xNi0jaW5jbHVkZSBcXFwiYnJpZGdlLXJlZ3MuaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRvdmUvaXJxLmM6MTc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZG92ZS9pcnEuYy0xOC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZG92ZS9wY2llLmMtMTktI2luY2x1ZGUgXFxcImJyaWRnZS1yZWdzLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL3BjaWUuYzoyMDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL3BjaWUuYy0yMS1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jLTIxLVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jOjIyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9leHlub3MuYy0yMy1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2Zpcm13YXJlLmMtMTgtXFxuYXJjaC9hcm0vbWFjaC1leHlub3MvZmlybXdhcmUuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1leHlub3MvZmlybXdhcmUuYy0yMC0jaW5jbHVkZSBcXFwic21jLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9tY3BtLWV4eW5vcy5jLTE4LVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmM6MTk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmMtMjAtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbGF0c21wLmMtMjQtXFxuYXJjaC9hcm0vbWFjaC1leHlub3MvcGxhdHNtcC5jOjI1OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbGF0c21wLmMtMjYtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbS5jLTI0LVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmM6MjU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmMtMjYtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9zdXNwZW5kLmMtMzItXFxuYXJjaC9hcm0vbWFjaC1leHlub3Mvc3VzcGVuZC5jOjMzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9zdXNwZW5kLmMtMzQtI2luY2x1ZGUgXFxcInNtYy5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1vbi5jLTI4LVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYzoyOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1vbi5jLTMwLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2RjMjEyODUtdGltZXIuYy0yMC1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZGMyMTI4NS10aW1lci5jOjIxOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZGMyMTI4NS10aW1lci5jLTIyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUuYy0xNy1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS5jOjE4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS5jLTE5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1pcnEuYy0yNy1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLWlycS5jOjI4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLWlycS5jLTI5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1ydGMuYy0yNC1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXJ0Yy5jOjI1OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXJ0Yy5jLTI2LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS10aW1lci5jLTE4LVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EtdGltZXIuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS10aW1lci5jLTIwLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS5jLTEyLVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EuYzoxMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS5jLTE0LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL25ldHdpbmRlci1ody5jLTI1LVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9uZXR3aW5kZXItaHcuYzoyNjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL25ldHdpbmRlci1ody5jLTI3LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvYW5hdG9wLmMtMTItI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlZ21hcC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L2FuYXRvcC5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9hbmF0b3AuYy0xNC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2F2aWMuYy0xNi1cXG5hcmNoL2FybS9tYWNoLWlteC9hdmljLmM6MTc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L2F2aWMuYy0xOC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXgzMS5jLTExLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXgzMS5jOjEyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9jcHUtaW14MzEuYy0xMy0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXg1LmMtMTYtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYzoxNzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYy0xOC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS5jLTgtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LmMtMTAtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZxLmMtMTItXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2cS5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZxLmMtMTQtI2luY2x1ZGUgXFxcImNwdWlkbGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnNsLmMtMTAtXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2c2wuYzoxMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2c2wuYy0xMi0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2c3guYy0xMi1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jLTE0LSNpbmNsdWRlIFxcXCJjcHVpZGxlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDd1bHAuYy0xMS1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDd1bHAuYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg3dWxwLmMtMTMtI2luY2x1ZGUgXFxcImNwdWlkbGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jLTEzLVxcbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jOjE0OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9ncGMuYy0xNS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2hvdHBsdWcuYy0xMi1cXG5hcmNoL2FybS9tYWNoLWlteC9ob3RwbHVnLmM6MTM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L2hvdHBsdWcuYy0xNC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MS5jLTctXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgxLmM6ODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgxLmMtOS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy02LSNpbmNsdWRlIFxcdTAwM2Nhc20vbWFjaC9hcmNoLmhcXHUwMDNlXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNS5jOjc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy04LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNy5jLTktXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNy5jOjEwOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDI3LmMtMTEtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtNi0jaW5jbHVkZSBcXHUwMDNjYXNtL21hY2gvYXJjaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzEuYzo3OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtOC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzUuYy04LSNpbmNsdWRlIFxcdTAwM2Nhc20vbWFjaC9hcmNoLmhcXHUwMDNlXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgzNS5jOjk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzUuYy0xMC0jaW5jbHVkZSBcXFwibXgzNS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MC5jLTktXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MC5jOjEwOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUwLmMtMTEtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUxLmMtMTEtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MS5jOjEyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUxLmMtMTMtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUzLmMtOC1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUzLmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1My5jLTEwLSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jLTE4LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnEuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jLTIwLSNpbmNsdWRlIFxcXCJjcHVpZGxlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDZzbC5jLTEzLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmM6MTQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmMtMTUtI2luY2x1ZGUgXFxcImNwdWlkbGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnN4LmMtMTEtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c3guYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c3guYy0xMy0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYy04LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnVsLmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYy0xMC0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3ZC5jLTE0LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N2QuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3ZC5jLTE2LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3dWxwLmMtMTMtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3dWxwLmM6MTQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N3VscC5jLTE1LSNpbmNsdWRlIFxcXCJjcHVpZGxlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWxzMTAyMWEuYy03LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtbHMxMDIxYS5jOjg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtbHMxMDIxYS5jLTktXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLXZmNjEwLmMtMTMtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC12ZjYxMC5jOjE0OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLXZmNjEwLmMtMTUtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmMtMTktXFxuYXJjaC9hcm0vbWFjaC1pbXgvbW0taW14My5jOjIwOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmMtMjEtI2luY2x1ZGUgXFxcImNybXJlZ3MtaW14My5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbW1kYy5jLTIwLVxcbmFyY2gvYXJtL21hY2gtaW14L21tZGMuYzoyMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbW1kYy5jLTIyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcGxhdHNtcC5jLTE2LVxcbmFyY2gvYXJtL21hY2gtaW14L3BsYXRzbXAuYzoxNzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcGxhdHNtcC5jLTE4LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjUuYy04LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9pby5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDI1LmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjUuYy0xMC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDI3LmMtMTQtXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjcuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjcuYy0xNi0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDUuYy0yMS1cXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg1LmM6MjI6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDUuYy0yMy0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14Ni5jLTI3LVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDYuYzoyODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14Ni5jLTI5LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jLTExLVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDd1bHAuYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jLTEzLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvc3JjLmMtMTUtI2luY2x1ZGUgXFx1MDAzY2FzbS9zbXBfcGxhdC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L3NyYy5jOjE2OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9zcmMuYy0xNy0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3N5c3RlbS5jLTIyLVxcbmFyY2gvYXJtL21hY2gtaW14L3N5c3RlbS5jOjIzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9zeXN0ZW0uYy0yNC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYy0xNy1cXG5hcmNoL2FybS9tYWNoLWlteC90emljLmM6MTg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYy0xOS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9jb21tb24uYy0xNi0jaW5jbHVkZSBcXFwibHBjMzJ4eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9jb21tb24uYzoxNzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L2NvbW1vbi5jLTE4LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3BoeTMyNTAuYy0xMS0jaW5jbHVkZSBcXHUwMDNjYXNtL21hY2gvYXJjaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9waHkzMjUwLmM6MTI6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9waHkzMjUwLmMtMTMtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03MS0jaW5jbHVkZSBcXFwibHBjMzJ4eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9wbS5jOjcyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03My1cXG4tLVxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9zZXJpYWwuYy0yMC0jaW5jbHVkZSBcXFwibHBjMzJ4eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9zZXJpYWwuYzoyMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3NlcmlhbC5jLTIyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvY29tbW9uLmMtMTctXFxuYXJjaC9hcm0vbWFjaC1tbXAvY29tbW9uLmM6MTg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbW1wL2NvbW1vbi5jLTE5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wLWR0LmMtMTMtXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wLWR0LmM6MTQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbW1wL21tcC1kdC5jLTE1LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMi1kdC5jLTEzLVxcbmFyY2gvYXJtL21hY2gtbW1wL21tcDItZHQuYzoxNDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMi1kdC5jLTE1LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMy5jLTEwLVxcbmFyY2gvYXJtL21hY2gtbW1wL21tcDMuYzoxMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMy5jLTEyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2J1ZmZhbG8td3hsLXNldHVwLmMtMjItI2luY2x1ZGUgXFxcIm12Nzh4eDAuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvYnVmZmFsby13eGwtc2V0dXAuYzoyMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2J1ZmZhbG8td3hsLXNldHVwLmMtMjQtI2luY2x1ZGUgXFxcIm1wcC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5jLTI1LSNpbmNsdWRlIFxcXCJicmlkZ2UtcmVncy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYzoyNjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5jLTI3LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jLTE0LSNpbmNsdWRlIFxcXCJicmlkZ2UtcmVncy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9pcnEuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jLTE2LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jLTEyLSNpbmNsdWRlIFxcXCJtdjc4eHgwLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvbXBwLmMtMTQtI2luY2x1ZGUgXFxcIm1wcC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYy0xNS0jaW5jbHVkZSBcXFwibXY3OHh4MC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmM6MTY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMtMTctXFxuLS1cXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmMtMjgtI2luY2x1ZGUgXFxcImFybWFkYS0zNzAteHAuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmM6Mjk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvYm9hcmQtdjcuYy0zMC0jaW5jbHVkZSBcXFwiY29oZXJlbmN5LmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2NwdS1yZXNldC5jLTE1LVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvY3B1LXJlc2V0LmM6MTY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvY3B1LXJlc2V0LmMtMTctXFxuLS1cXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2RvdmUuYy0xMy0jaW5jbHVkZSBcXHUwMDNjYXNtL21hY2gvYXJjaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvZG92ZS5jOjE0OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2RvdmUuYy0xNS1cXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNC0jaW5jbHVkZSBcXFwia2lya3dvb2QtcG0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2tpcmt3b29kLmM6MjU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNi1cXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvbXZlYnUtc29jLWlkLmMtMjQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N5c19zb2MuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L212ZWJ1LXNvYy1pZC5jOjI1OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L212ZWJ1LXNvYy1pZC5jLTI2LSNpbmNsdWRlIFxcXCJtdmVidS1zb2MtaWQuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC1hOS5jLTE4LSNpbmNsdWRlIFxcdTAwM2Nhc20vc21wX3BsYXQuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAtYTkuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLWE5LmMtMjAtI2luY2x1ZGUgXFxcInBtc3UuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC5jLTI0LSNpbmNsdWRlIFxcdTAwM2Nhc20vc21wX3BsYXQuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAuYzoyNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLmMtMjYtI2luY2x1ZGUgXFxcImFybWFkYS0zNzAteHAuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0tYm9hcmQuYy0xNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvc2xhYi5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0tYm9hcmQuYzoxODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbS1ib2FyZC5jLTE5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbS5jLTIyLSNpbmNsdWRlIFxcXCJjb2hlcmVuY3kuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLmM6MjM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0uYy0yNC0jaW5jbHVkZSBcXFwicG1zdS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbXN1LmMtMzctI2luY2x1ZGUgXFx1MDAzY2FzbS90bGJmbHVzaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG1zdS5jOjM4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3Btc3UuYy0zOS0jaW5jbHVkZSBcXFwicG1zdS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9zeXN0ZW0tY29udHJvbGxlci5jLTI2LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZWJvb3QuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3N5c3RlbS1jb250cm9sbGVyLmM6Mjc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvc3lzdGVtLWNvbnRyb2xsZXIuYy0yOC0jaW5jbHVkZSBcXFwibXZlYnUtc29jLWlkLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLWFtcy1kZWx0YS5jLTQ0LSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1zLWRlbHRhLmM6NDU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1zLWRlbHRhLmMtNDYtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMtMzQtI2luY2x1ZGUgXFxcInVzYi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYzozNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1ub2tpYTc3MC5jLTM2LSNpbmNsdWRlIFxcXCJjbG9jay5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYy01Ni0jaW5jbHVkZSBcXFwidXNiLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYzo1NzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYy01OC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDItI2luY2x1ZGUgXFxcIm1tYy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmM6NDM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDQtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXN4MS5jLTQxLSNpbmNsdWRlIFxcXCJ1c2IuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXN4MS5jOjQyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXN4MS5jLTQzLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9kZXZpY2VzLmMtMjMtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9kZXZpY2VzLmM6MjQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvZGV2aWNlcy5jLTI1LSNpbmNsdWRlIFxcXCJjbG9jay5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pZC5jLTE5LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvaWQuYzoyMDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pZC5jLTIxLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pby5jLTE4LSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvaW8uYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pby5jLTIwLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pcnEuYy01MS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jOjUyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jLTUzLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9vY3BpLmMtMjUtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9vY3BpLmM6MjY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvb2NwaS5jLTI3LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9yZXNldC5jLTEwLSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvcmVzZXQuYzoxMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9yZXNldC5jLTEyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9zZXJpYWwuYy0yMi1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL3NlcmlhbC5jOjIzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL3NlcmlhbC5jLTI0LSNpbmNsdWRlIFxcXCJzZXJpYWwuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZS5jLTU1LSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZS5jOjU2OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWUuYy01Ny0jaW5jbHVkZSBcXFwiY2xvY2suaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01NC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWVyMzJrLmM6NTU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01Ni1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvdXNiLmMtMjEtI2luY2x1ZGUgXFxcInVzYi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdXNiLmM6MjI6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdXNiLmMtMjMtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2FtMzN4eC1yZXN0YXJ0LmMtOS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2FtMzN4eC1yZXN0YXJ0LmM6MTA6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvYW0zM3h4LXJlc3RhcnQuYy0xMS0jaW5jbHVkZSBcXFwiY29udHJvbC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmMtMTktXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmM6MjA6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5jLTIxLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMtMjgtXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmM6Mjk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtbjh4MC5jLTMwLSNpbmNsdWRlIFxcXCJtbWMuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYy0zNi0jaW5jbHVkZSBcXFwiY20tcmVnYml0cy0zNHh4LmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jOjM3OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMtMzgtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5jLTE0LVxcbmFyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLmM6MTU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLmMtMTYtI2luY2x1ZGUgXFxcIm9tYXAtc2VjdXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYy0yMC0jaW5jbHVkZSBcXFwiaW9tYXAuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYzoyMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMtMjItI2luY2x1ZGUgXFxcImNtLXJlZ2JpdHMtMzR4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlMzR4eC5jLTMyLSNpbmNsdWRlIFxcXCJjb250cm9sLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlMzR4eC5jOjMzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NwdWlkbGUzNHh4LmMtMzQtI2luY2x1ZGUgXFxcInNvYy5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlNDR4eC5jLTE3LVxcbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTQ0eHguYzoxODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlNDR4eC5jLTE5LSNpbmNsdWRlIFxcXCJwbS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kZXZpY2VzLmMtMjctI2luY2x1ZGUgXFxcInNvYy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvZGV2aWNlcy5jOjI4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2RldmljZXMuYy0yOS0jaW5jbHVkZSBcXFwiY29udHJvbC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmMtMjYtI2luY2x1ZGUgXFxcIm9tYXBfZGV2aWNlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmM6Mjc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvZGlzcGxheS5jLTI4LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kbWEuYy0zMi0jaW5jbHVkZSBcXFwic29jLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kbWEuYzozMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kbWEuYy0zNC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvaGRxMXcuYy0yMi0jaW5jbHVkZSBcXFwicHJtLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9oZHExdy5jOjIzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2hkcTF3LmMtMjQtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jLTEyLSNpbmNsdWRlIFxcXCJwcm0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jLTE0LSNpbmNsdWRlIFxcXCJpMmMuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYy0yNy1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2lkLmM6Mjg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYy0yOS1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zMi0jaW5jbHVkZSBcXFwiY2xvY2tkb21haW4uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2lvLmM6MzM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zNC0jaW5jbHVkZSBcXFwiY2xvY2suaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvbXNkaS5jLTE0LSNpbmNsdWRlIFxcXCJwcm0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL21zZGkuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9tc2RpLmMtMTYtI2luY2x1ZGUgXFxcImNvbnRyb2wuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1ob3RwbHVnLmMtMTktI2luY2x1ZGUgXFxcIm9tYXAtd2FrZXVwZ2VuLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLWhvdHBsdWcuYzoyMDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLWhvdHBsdWcuYy0yMS0jaW5jbHVkZSBcXFwicG93ZXJkb21haW4uaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jLTE1LSNpbmNsdWRlIFxcXCJwb3dlcmRvbWFpbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jOjE2OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtaW9tbXUuYy0xNy1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1tcHVzcy1sb3dwb3dlci5jLTUwLSNpbmNsdWRlIFxcXCJzb2MuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtbXB1c3MtbG93cG93ZXIuYzo1MTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLW1wdXNzLWxvd3Bvd2VyLmMtNTItI2luY2x1ZGUgXFxcIm9tYXA0NHh4LmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmMtMjEtXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNlY3VyZS5jOjIyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmMtMjMtI2luY2x1ZGUgXFxcIm9tYXAtc2VjdXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc21wLmMtMzAtI2luY2x1ZGUgXFxcImlvbWFwLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNtcC5jOjMxOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc21wLmMtMzItI2luY2x1ZGUgXFxcImNsb2NrZG9tYWluLmhcXFwiXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NDUuNTExMjExMTMyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQyMTYyMzkwMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIE9jdGVvblRYMiBBRiBJbmNsdWRlIFBhdGgqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYXJvdW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaGAuIFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIGJhY2sgYW5kIGRldGVybWluZSBwcmVjaXNlbHkgd2hlcmUgdGhpcyBoZWFkZXIgZmlsZSBpcyBiZWluZyBwdWxsZWQgaW4uIFRoaXMgaXMgbGlrZWx5IHBhcnQgb2YgYSBkZWJ1Z2dpbmcgZWZmb3J0IG9yIG1heWJlIEknbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgYSBwYXJ0aWN1bGFyIGZlYXR1cmUgaXMgZW5hYmxlZC9kaXNhYmxlZCBvciBob3cgdGhlIEFGIChBcHBsaWNhdGlvbiBGb3J3YXJkaW5nKSBjb21wb25lbnQgaXMgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIE9jdGVvblRYMidzIEV0aGVybmV0IGRyaXZlci4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGNhbGwgaGllcmFyY2h5LiBJdCBjb3VsZCBiZSBkaXJlY3RseSBpbmNsdWRlZCBpbiBhIHNvdXJjZSBmaWxlLCBvciBwb3RlbnRpYWxseSBicm91Z2h0IGluIHRocm91Z2ggYSBjaGFpbiBvZiBpbmNsdWRlcywgcGVyaGFwcyB3aXRoaW4gYSBjb25maWd1cmF0aW9uIG1hY3JvIG9yIGNvbmRpdGlvbmFsIGNvbXBpbGUgc3RhdGVtZW50LiBTbywgbGV0J3Mgc3RhcnQgd2l0aCBhIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlYmFzZSB0byBwaW5wb2ludCB0aGUgZXhhY3QgbG9jYXRpb25zIHdoZXJlIHRoaXMgaGVhZGVyIGZpbGUgaXMgYmVpbmcgcmVmZXJlbmNlZC4gSXQncyBhIGZ1bmRhbWVudGFsIHN0ZXAgZm9yIGVmZmljaWVudCByZXZlcnNlIGVuZ2luZWVyaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjE4OCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjQ5LjcyNzQ1MjkyNFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUxNzQ4OTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2luY2x1ZGUuKmNvbW1vblxcXFwuaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0yMS0jaW5jbHVkZSBcXFwicnZ1LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6MjI6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMTUtI2luY2x1ZGUgXFxcInJ2dV9zdHJ1Y3QuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94Lmg6MTY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaC0xNy0jaW5jbHVkZSBcXFwiY24yMGsvc3RydWN0LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMTQtI2luY2x1ZGUgXFxcIm1jc19yZWcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MTU6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTE2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnBtLmMtOC0jaW5jbHVkZSBcXFwiY2d4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnBtLmM6OTojaW5jbHVkZSBcXFwibG1hY19jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ycG0uYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTE2LSNpbmNsdWRlIFxcXCJydnVfZGV2bGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjE3OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0xOC0jaW5jbHVkZSBcXFwibWJveC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEzLSNpbmNsdWRlIFxcXCJjZ3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTQ6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTE1LSNpbmNsdWRlIFxcXCJydnVfcmVnLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTE4LSNpbmNsdWRlIFxcXCJjZ3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjE5OiNpbmNsdWRlIFxcXCJsbWFjX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjAtI2luY2x1ZGUgXFxcIm5wYy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2LSNpbmNsdWRlIFxcXCJjZ3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6MTc6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE4LSNpbmNsdWRlIFxcXCJydnVfbnBjX2hhc2guaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGMuYy0yMS0jaW5jbHVkZSBcXFwiY24yMGsvcmVnLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYy5jOjIyOiNpbmNsdWRlIFxcXCJsbWFjX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGMuYy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9yZWcuYy0xMS0jaW5jbHVkZSBcXFwicnZ1X3N0cnVjdC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9yZWcuYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3JlZy5jLTEzLSNpbmNsdWRlIFxcXCJtYm94LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaC0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaDoxMTojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaC0xMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jOjEzOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jLTE0LSNpbmNsdWRlIFxcXCJvdHgyX3N0cnVjdC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX21hY3NlYy5jLTktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX21hY3NlYy5jOjEwOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19tYWNzZWMuYy0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM6ODojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYy05LSNpbmNsdWRlIFxcXCJvdHgyX3JlZy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmgtMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmg6MTE6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmgtMTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNi0jaW5jbHVkZSBcXFwib3R4Ml9yZWcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxNzojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xOC0jaW5jbHVkZSBcXFwib3R4Ml9zdHJ1Y3QuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RjYm5sLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kY2JubC5jOjg6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGNibmwuYy05LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jOjc6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jLTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kbWFjX2ZsdC5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZG1hY19mbHQuYzo4OiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RtYWNfZmx0LmMtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2V0aHRvb2wuYy0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9ldGh0b29sLmM6MTY6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZXRodG9vbC5jLTE3LSNpbmNsdWRlIFxcXCJvdHgyX3B0cC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZmxvd3MuYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9mbG93cy5jOjExOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2Zsb3dzLmMtMTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTIxLSNpbmNsdWRlIFxcXCJvdHgyX3JlZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6MjI6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0yMy0jaW5jbHVkZSBcXFwib3R4Ml90eHJ4LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wdHAuYy05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3B0cC5jOjEwOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3B0cC5jLTExLSNpbmNsdWRlIFxcXCJvdHgyX3B0cC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy0yMC0jaW5jbHVkZSBcXFwiY24xMGsuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jOjIxOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtMjItI2luY2x1ZGUgXFxcInFvcy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdHhyeC5jLTE3LSNpbmNsdWRlIFxcXCJvdHgyX3JlZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3R4cnguYzoxODojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90eHJ4LmMtMTktI2luY2x1ZGUgXFxcIm90eDJfc3RydWN0LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MTM6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0xNC0jaW5jbHVkZSBcXFwib3R4Ml9yZWcuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jOjEzOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jLTE0LSNpbmNsdWRlIFxcXCJvdHgyX3N0cnVjdC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvcy5jLTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYzoxMjojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmMtMTMtI2luY2x1ZGUgXFxcImNuMTBrLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zX3NxLmMtMTItI2luY2x1ZGUgXFxcIm90eDJfcmVnLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvc19zcS5jOjEzOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3Nfc3EuYy0xNC0jaW5jbHVkZSBcXFwib3R4Ml90eHJ4LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jOjE0OiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuYy0xNS0jaW5jbHVkZSBcXFwiY24xMGsuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuaC0xNC0jaW5jbHVkZSBcXFwib3R4Ml90eHJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5oOjE1OiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuaC0xNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NDkuODAyNjMyNDkyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMwMDY3NzI1ODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ2hlY2tpbmcgTXkgRGVwZW5kZW5jaWVzKipcblxuT2theSwgYmVmb3JlIEkgcHJvY2VlZCBmdXJ0aGVyLCBJIG5lZWQgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnl0aGluZyBvYnZpb3VzLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBnbGFuY2UgYXQgYG90eDJfY29tbW9uLmhgIGFzIHdlbGwuIEl0J3MgY3J1Y2lhbCwgYW5kIGZyYW5rbHksIGEgZnJlcXVlbnQgc291cmNlIG9mIFwiZ290Y2hhc1wiIGluIHRoaXMgcHJvamVjdC4gTm93LCB0aGUgY29yZSBxdWVzdGlvbiBpcyB3aGV0aGVyIGBvdHgyX2NvbW1vbi5oYCBwdWxscyBpbiBhbnkgb2YgdGhlIGJhc2UgdXRpbGl0aWVzLiBTcGVjaWZpY2FsbHksIGlzIGBhZi9jb21tb24uaGAgYmVpbmcgaW5jbHVkZWQgdGhlcmU/IEEgbWlzc2luZyBpbmNsdWRlIGhlcmUgY291bGQgZXhwbGFpbiB0aGUgdW51c3VhbCBiZWhhdmlvciBJJ20gY2hhc2luZyBkb3duLCBvciBhdCBsZWFzdCBoZWxwIHJ1bGUgb3V0IHNvbWUgcG9zc2liaWxpdGllcy4gTGV0J3Mgc2VlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5ODk2LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NTIuODA5NDA3OTA5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NzAxMTgyNiwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29tbW9uXFxcXC5oXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOTo1Mi44OTY0MjcxNTVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjMxNTIwNjIxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czpcblxuKipQZWVyaW5nIGludG8gdGhlIENvbW1vbiBIZWFydCBvZiBPVFgyKipcblxuT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgZm91bmRhdGlvbiBvZiB0aGlzIE9UWDIgcHJvamVjdC4gVGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGV4YW1pbmluZyB3aGF0IGBvdHgyX2NvbW1vbi5oYCBpcyBwdWxsaW5nIGluLiBVbmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgYXQgdGhlIHZlcnkgYmFzZSBsZXZlbCB3aWxsIGdpdmUgbWUgYSBjcml0aWNhbCBvdmVydmlldyBvZiB0aGlzIGFyY2hpdGVjdHVyZS4gSXQncyB0aGUgc3RhbmRhcmQgb3BlcmF0aW5nIHByb2NlZHVyZTsgeW91IG5ldmVyIHdhbnQgdG8gZ28gZm9yd2FyZCB3aXRob3V0IGdyYXNwaW5nIHRoZSBidWlsZGluZyBibG9ja3MuIEtub3dpbmcgd2hpY2ggaGVhZGVycyBpdCdzIGluY2x1ZGluZyB3aWxsIGluc3RhbnRseSB0ZWxsIG1lIHdoZXJlIHRvIGxvb2sgZm9yIGRhdGEgc3RydWN0dXJlcywgZnVuZGFtZW50YWwgZGVmaW5pdGlvbnMsIHV0aWxpdHkgZnVuY3Rpb25zLCBhbmQgcG9zc2libHkgZXZlbiBleHRlcm5hbCBsaWJyYXJ5IGludGVyZmFjZXMgdGhhdCBldmVyeXRoaW5nIGVsc2UgZGVwZW5kcyBvbi4gSXTigJlzIHRoZSBza2VsZXRvbiBrZXksIHNvIHRvIHNwZWFrLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDEyOCwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjU1LjIxMTYzNTgyM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NzQzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaFwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXFxuICAgMjpcXHQvKiBNYXJ2ZWxsIFJWVSBFdGhlcm5ldCBkcml2ZXJcXG4gICAzOlxcdCAqXFxuICAgNDpcXHQgKiBDb3B5cmlnaHQgKEMpIDIwMjAgTWFydmVsbC5cXG4gICA1OlxcdCAqXFxuICAgNjpcXHQgKi9cXG4gICA3OlxcdFxcbiAgIDg6XFx0I2lmbmRlZiBPVFgyX0NPTU1PTl9IXFxuICAgOTpcXHQjZGVmaW5lIE9UWDJfQ09NTU9OX0hcXG4gIDEwOlxcdFxcbiAgMTE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aHRvb2wuaFxcdTAwM2VcXG4gIDEyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2kuaFxcdTAwM2VcXG4gIDEzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pb21tdS5oXFx1MDAzZVxcbiAgMTQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldF90c3RhbXAuaFxcdTAwM2VcXG4gIDE1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9wdHBfY2xvY2tfa2VybmVsLmhcXHUwMDNlXFxuICAxNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZWNvdW50ZXIuaFxcdTAwM2VcXG4gIDE3OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb2MvbWFydmVsbC9zaWxpY29ucy5oXFx1MDAzZVxcbiAgMTg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NvYy9tYXJ2ZWxsL29jdGVvbnR4Mi9hc20uaFxcdTAwM2VcXG4gIDE5OlxcdCNpbmNsdWRlIFxcdTAwM2NuZXQvbWFjc2VjLmhcXHUwMDNlXFxuICAyMDpcXHQjaW5jbHVkZSBcXHUwMDNjbmV0L3BrdF9jbHMuaFxcdTAwM2VcXG4gIDIxOlxcdCNpbmNsdWRlIFxcdTAwM2NuZXQvZGV2bGluay5oXFx1MDAzZVxcbiAgMjI6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3RpbWU2NC5oXFx1MDAzZVxcbiAgMjM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RpbS5oXFx1MDAzZVxcbiAgMjQ6XFx0I2luY2x1ZGUgXFx1MDAzY3VhcGkvbGludXgvaWZfbWFjc2VjLmhcXHUwMDNlXFxuICAyNTpcXHQjaW5jbHVkZSBcXHUwMDNjbmV0L3BhZ2VfcG9vbC9oZWxwZXJzLmhcXHUwMDNlXFxuICAyNjpcXHRcXG4gIDI3OlxcdCNpbmNsdWRlIFxcdTAwM2NtYm94LmhcXHUwMDNlXFxuICAyODpcXHQjaW5jbHVkZSBcXHUwMDNjbnBjLmhcXHUwMDNlXFxuICAyOTpcXHQjaW5jbHVkZSBcXFwib3R4Ml9yZWcuaFxcXCJcXG4gIDMwOlxcdCNpbmNsdWRlIFxcXCJvdHgyX3R4cnguaFxcXCJcXG4gIDMxOlxcdCNpbmNsdWRlIFxcXCJvdHgyX2RldmxpbmsuaFxcXCJcXG4gIDMyOlxcdCNpbmNsdWRlIFxcdTAwM2NydnUuaFxcdTAwM2VcXG4gIDMzOlxcdCNpbmNsdWRlIFxcdTAwM2NydnVfdHJhY2UuaFxcdTAwM2VcXG4gIDM0OlxcdCNpbmNsdWRlIFxcXCJxb3MuaFxcXCJcXG4gIDM1OlxcdCNpbmNsdWRlIFxcXCJyZXAuaFxcXCJcXG4gIDM2OlxcdCNpbmNsdWRlIFxcXCJjbjEwa19pcHNlYy5oXFxcIlxcbiAgMzc6XFx0I2luY2x1ZGUgXFxcImNuMjBrLmhcXFwiXFxuICAzODpcXHRcXG4gIDM5OlxcdC8qIElQdjQgZmxhZyBtb3JlIGZyYWdtZW50IGJpdCAqL1xcbiAgNDA6XFx0I2RlZmluZSBJUFY0X0ZMQUdfTU9SRVxcdFxcdFxcdFxcdDB4MjBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NTUuMjExNzI1NzkzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ0MzA2NzE5NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBGdXp6aW5nIEFwcGxpY2FiaWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHRyYWNlZCB0aGUgaW5jbHVkZSBwYXRoOiBgXHUwMDNjbWJveC5oXHUwMDNlYCByZXNvbHZlcyB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oYCwgd2hpY2ggcHVsbHMgaW4gYGNvbW1vbi5oYC4gVGhpcyBtZWFucyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhgIGlzICpvbmx5KiB1c2VkIHdpdGhpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgQUYgYW5kIE5JQyBkcml2ZXJzLiBUaGF0J3MgdGhlIGtleS5cblxuTm93LCB0aGUgcXVlc3Rpb24gaXMsIGNhbiB0aGlzIGNvZGUgKmFjdHVhbGx5KiBiZSBleGVjdXRlZCBpbiBhIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdDRT8gRnJvbSB0aGUgaW5zdHJ1Y3Rpb25zLCBJIHJlbWVtYmVyIHRoYXQgU2VjdGlvbiAyIHNwZWNpZmljYWxseSBjYWxscyBvdXQgXCJzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUsXCIgYW5kIGxpc3RzIGV4YW1wbGVzIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMgYW5kIFNtYXJ0TklDcy4gQmluZ28hIFRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBpcyBleGFjdGx5IHRoYXQg4oCTIGEgU21hcnROSUMvbmV0d29yayBTb0MgKENhdml1bS9NYXJ2ZWxsIE9DVEVPTiBUWDIgUlZVIEFGL1BGL1ZGKSB0aGF0ICpkZW1hbmRzKiBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgb3IgUENJZSBkZXZpY2VzLiBJdCdzIG5vdCBlbXVsYXRlZCwgYW5kIGl0J3Mgbm90IGFjY2Vzc2libGUgdGhyb3VnaCB2aXJ0dWFsIGJ1c2VzIG9yIGFueSBzaW11bGF0ZWQgZGV2aWNlcyBpbiBzdGFuZGFyZCBzZXR1cHMuXG5cblRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBjb2RlIHRoYXQncyBmdW5kYW1lbnRhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nIHB1cnBvc2VzLiBXZSBuZWVkIHRvIG1hcmsgaXQgYXMgbm90IHdvcnRoIGZ1enppbmcuXG5cbkxldCdzIHZlcmlmeSB0aGlzLCBkb3R0aW5nIG91ciBpJ3MgYW5kIGNyb3NzaW5nIG91ciB0J3MuIFdlIG5lZWQgdG8gc2V0IHRoZSBmb2xsb3dpbmc6XG5cbjEuICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYC4gRGVmaW5pdGVseSBmYWxzZS5cbjIuICBgRm9jdXNTeW1ib2xzYDogQW4gZW1wdHkgbGlzdCAob3IgbnVsbCksIHNpbmNlIGZ1enppbmcgaXNuJ3QgYXBwbGljYWJsZS5cbjMuICBgRW5hYmxlQ29uZmlnc2A6IEFub3RoZXIgZW1wdHkgbGlzdCAob3IgbnVsbCkgYmVjYXVzZSB3ZSdyZSBub3QgZW5hYmxpbmcgYW55dGhpbmcgZm9yIGZ1enppbmcuXG40LiAgYFJlYXNvbmluZ2A6IENvbmNpc2UgZXhwbGFuYXRpb24sIHdoaWNoIEkndmUgZ290OiBUaGUgY2hhbmdlcyBhcmUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGJlY2F1c2UgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUvQVNJQywgYW5kIHRoYXQgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIFFFTVUvR0NFLlxuXG5BbHJpZ2h0LCB3aXRoIHRoYXQgY29uZmlybWVkLCBJJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDk2MywiT3V0cHV0VG9rZW5zIjoxMjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOTo1OS42NDI0MDAwNzFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBETUEgYWxsb2NhdGlvbiBhbmQgbWVtb3J5IG1hbmFnZW1lbnQgaGVscGVycyAocW1lbV9hbGxvYywgb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQsIGV0Yy4pIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgKFJlc291cmNlIFZpcnR1YWxpemF0aW9uIFVuaXQpIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgc3BlY2lmaWMgdG8gTWFydmVsbCBPY3Rlb25UWDIgU21hcnROSUMgLyBTb0MgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhbmQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjU5LjY0MjQzNzQzMVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowvkhq6[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-11 02:42:26 +0000 UTC FinishedAt: 2026-09-11 03:40: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+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhMGI5MzkzZWNkNjg1ODg0YzJhMWNkNDdlNDNlNjRiM2EwYmE5NGY4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBTZXAgMTEgMDM6Mzk6MTAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuaW5kZXggNzc5NDEzYTM4M2I3NC4uNzhlNDI1NDlkOTkwOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuQEAgLTcsNiAmIzQzOzcsMTAgQEBcbiAjaWZuZGVmIENPTU1PTl9IXG4gI2RlZmluZSBDT01NT05fSFxuIFxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9kbWEtbWFwcGluZy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2dmcC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L21tLmhcdTAwM2VcbiYjNDM7XG4gI2luY2x1ZGUgXCYjMzQ7cnZ1X3N0cnVjdC5oXCYjMzQ7XG4gXG4gI2RlZmluZSBPVFgyX0FMSUdOXHRcdFx0MTI4ICAvKiBBbGlnbiB0byBjYWNoZWxpbmUgKi9cbkBAIC00NCw2ICYjNDM7NDgsMzMgQEAgc3RydWN0IHFtZW0ge1xuIFx0dTMyXHRcdHFzaXplO1xuIH07XG4gXG4mIzQzO3N0YXRpYyBpbmxpbmUgdm9pZCAqb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcbiYjNDM7XHRcdFx0XHRcdCAgICBkbWFfYWRkcl90ICpkbWFfaGFuZGxlKVxuJiM0Mzt7XG4mIzQzO1x0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbiYjNDM7XHR2b2lkICp2YWRkcjtcbiYjNDM7XG4mIzQzO1x0dmFkZHIgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xuJiM0MztcdGlmICghdmFkZHIpXG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XG4mIzQzO1x0ZG1hX2FkZHIgPSBkbWFfbWFwX3NpbmdsZShkZXYsIHZhZGRyLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7XG4mIzQzO1x0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKGRldiwgZG1hX2FkZHIpKSB7XG4mIzQzO1x0XHRrZnJlZSh2YWRkcik7XG4mIzQzO1x0XHRyZXR1cm4gTlVMTDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdCpkbWFfaGFuZGxlID0gZG1hX2FkZHI7XG4mIzQzO1x0cmV0dXJuIHZhZGRyO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgaW5saW5lIHZvaWQgb3R4Ml9kbWFfZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLFxuJiM0MztcdFx0XHRcdFx0ICB2b2lkICp2YWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlKVxuJiM0Mzt7XG4mIzQzO1x0ZG1hX3VubWFwX3NpbmdsZShkZXYsIGRtYV9oYW5kbGUsIHNpemUsIERNQV9CSURJUkVDVElPTkFMKTtcbiYjNDM7XHRrZnJlZSh2YWRkcik7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbiBcdFx0XHQgICAgIGludCBxc2l6ZSwgaW50IGVudHJ5X3N6KVxuIHtcbkBAIC02MCw4ICYjNDM7OTEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbiBcbiBcdHFtZW0tXHUwMDNlZW50cnlfc3ogPSBlbnRyeV9zejtcbiBcdHFtZW0tXHUwMDNlYWxsb2Nfc3ogPSAocXNpemUgKiBlbnRyeV9zeikgJiM0MzsgT1RYMl9BTElHTjtcbi1cdHFtZW0tXHUwMDNlYmFzZSA9IGRtYV9hbGxvY19hdHRycyhkZXYsIHFtZW0tXHUwMDNlYWxsb2Nfc3osIFx1MDAyNnFtZW0tXHUwMDNlaW92YSxcbi1cdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCwgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7XG4mIzQzO1xuJiM0MztcdGlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLVx1MDAzZWFsbG9jX3N6KSkgXHUwMDNlIE1BWF9QQUdFX09SREVSKVxuJiM0MztcdFx0cmV0dXJuIC1FTk9NRU07XG4mIzQzO1xuJiM0MztcdHFtZW0tXHUwMDNlYmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeiwgXHUwMDI2cW1lbS1cdTAwM2Vpb3ZhKTtcbiBcdGlmICghcW1lbS1cdTAwM2ViYXNlKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbkBAIC04MCwxMCAmIzQzOzExNCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxbWVtX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcW1lbSAqcW1lbSlcbiBcdFx0cmV0dXJuO1xuIFxuIFx0aWYgKHFtZW0tXHUwMDNlYmFzZSlcbi1cdFx0ZG1hX2ZyZWVfYXR0cnMoZGV2LCBxbWVtLVx1MDAzZWFsbG9jX3N6LFxuLVx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWJhc2UgLSBxbWVtLVx1MDAzZWFsaWduLFxuLVx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWlvdmEgLSBxbWVtLVx1MDAzZWFsaWduLFxuLVx0XHRcdCAgICAgICBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTKTtcbiYjNDM7XHRcdG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBxbWVtLVx1MDAzZWFsbG9jX3N6LFxuJiM0MztcdFx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWJhc2UgLSBxbWVtLVx1MDAzZWFsaWduLFxuJiM0MztcdFx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWlvdmEgLSBxbWVtLVx1MDAzZWFsaWduKTtcbiBcdGRldm1fa2ZyZWUoZGV2LCBxbWVtKTtcbiB9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhMGI5MzkzZWNkNjg1ODg0YzJhMWNkNDdlNDNlNjRiM2EwYmE5NGY4CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBTZXAgMTEgMDM6Mzk6MTAgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oCmluZGV4IDc3OTQxM2EzODNiNzQuLjc4ZTQyNTQ5ZDk5MDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oCkBAIC03LDYgJiM0Mzs3LDEwIEBACiAjaWZuZGVmIENPTU1PTl9ICiAjZGVmaW5lIENPTU1PTl9ICiAKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvZG1hLW1hcHBpbmcuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvZ2ZwLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L21tLmgmZ3Q7CiYjNDM7CiAjaW5jbHVkZSAmIzM0O3J2dV9zdHJ1Y3QuaCYjMzQ7CiAKICNkZWZpbmUgT1RYMl9BTElHTgkJCTEyOCAgLyogQWxpZ24gdG8gY2FjaGVsaW5lICovCkBAIC00NCw2ICYjNDM7NDgsMzMgQEAgc3RydWN0IHFtZW0gewogCXUzMgkJcXNpemU7CiB9OwogCiYjNDM7c3RhdGljIGlubGluZSB2b2lkICpvdHgyX2RtYV9hbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAomIzQzOwkJCQkJICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpCiYjNDM7ewomIzQzOwlkbWFfYWRkcl90IGRtYV9hZGRyOwomIzQzOwl2b2lkICp2YWRkcjsKJiM0MzsKJiM0MzsJdmFkZHIgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwomIzQzOwlpZiAoIXZhZGRyKQomIzQzOwkJcmV0dXJuIE5VTEw7CiYjNDM7CiYjNDM7CWRtYV9hZGRyID0gZG1hX21hcF9zaW5nbGUoZGV2LCB2YWRkciwgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpOwomIzQzOwlpZiAoZG1hX21hcHBpbmdfZXJyb3IoZGV2LCBkbWFfYWRkcikpIHsKJiM0MzsJCWtmcmVlKHZhZGRyKTsKJiM0MzsJCXJldHVybiBOVUxMOwomIzQzOwl9CiYjNDM7CiYjNDM7CSpkbWFfaGFuZGxlID0gZG1hX2FkZHI7CiYjNDM7CXJldHVybiB2YWRkcjsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIGlubGluZSB2b2lkIG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKJiM0MzsJCQkJCSAgdm9pZCAqdmFkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSkKJiM0Mzt7CiYjNDM7CWRtYV91bm1hcF9zaW5nbGUoZGV2LCBkbWFfaGFuZGxlLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7CiYjNDM7CWtmcmVlKHZhZGRyKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW5saW5lIGludCBxbWVtX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKipxLAogCQkJICAgICBpbnQgcXNpemUsIGludCBlbnRyeV9zeikKIHsKQEAgLTYwLDggJiM0Mzs5MSwxMSBAQCBzdGF0aWMgaW5saW5lIGludCBxbWVtX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKipxLAogCiAJcW1lbS0mZ3Q7ZW50cnlfc3ogPSBlbnRyeV9zejsKIAlxbWVtLSZndDthbGxvY19zeiA9IChxc2l6ZSAqIGVudHJ5X3N6KSAmIzQzOyBPVFgyX0FMSUdOOwotCXFtZW0tJmd0O2Jhc2UgPSBkbWFfYWxsb2NfYXR0cnMoZGV2LCBxbWVtLSZndDthbGxvY19zeiwgJmFtcDtxbWVtLSZndDtpb3ZhLAotCQkJCSAgICAgR0ZQX0tFUk5FTCwgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7CiYjNDM7CiYjNDM7CWlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLSZndDthbGxvY19zeikpICZndDsgTUFYX1BBR0VfT1JERVIpCiYjNDM7CQlyZXR1cm4gLUVOT01FTTsKJiM0MzsKJiM0MzsJcW1lbS0mZ3Q7YmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS0mZ3Q7YWxsb2Nfc3osICZhbXA7cW1lbS0mZ3Q7aW92YSk7CiAJaWYgKCFxbWVtLSZndDtiYXNlKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtODAsMTAgJiM0MzsxMTQsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcW1lbV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKnFtZW0pCiAJCXJldHVybjsKIAogCWlmIChxbWVtLSZndDtiYXNlKQotCQlkbWFfZnJlZV9hdHRycyhkZXYsIHFtZW0tJmd0O2FsbG9jX3N6LAotCQkJICAgICAgIHFtZW0tJmd0O2Jhc2UgLSBxbWVtLSZndDthbGlnbiwKLQkJCSAgICAgICBxbWVtLSZndDtpb3ZhIC0gcW1lbS0mZ3Q7YWxpZ24sCi0JCQkgICAgICAgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7CiYjNDM7CQlvdHgyX2RtYV9mcmVlX2NvaGVyZW50KGRldiwgcW1lbS0mZ3Q7YWxsb2Nfc3osCiYjNDM7CQkJCSAgICAgICBxbWVtLSZndDtiYXNlIC0gcW1lbS0mZ3Q7YWxpZ24sCiYjNDM7CQkJCSAgICAgICBxbWVtLSZndDtpb3ZhIC0gcW1lbS0mZ3Q7YWxpZ24pOwogCWRldm1fa2ZyZWUoZGV2LCBxbWVtKTsKIH0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwMzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjQ1CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogOTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW5pdGlhbCBBc3Nlc3NtZW50IG9mIFBhdGNoIGFuZCBIYXJkd2FyZSBDb250ZXh0KioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoYXQgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgTWFydmVsbCBPY3Rlb25UWDIgQUYgZXRoZXJuZXQgZHJpdmVyLiBIbW0sIEkgd29uZGVyIGlmIHRoaXMgcGFydGljdWxhciBoYXJkd2FyZSBpcyBldmVuICphY2Nlc3NpYmxlKiB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwIG9yIGV2ZW4gb24gR0NFPyBJdCYjMzk7cyBhIGJpdCBuaWNoZS4gSSYjMzk7bGwgbmVlZCB0byBkaWcgaW50byB0aGUgZHJpdmVyIGNvZGUgaXRzZWxmLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYEtjb25maWdgIGZpbGVzLgoKVGhpcyYjMzk7bGwgaW52b2x2ZSBzb21lIGdyZXBwaW5nIGFuZCBnZW5lcmFsIGludmVzdGlnYXRpb24gdG8gdW5kZXJzdGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIHRoZXNlIGNoYW5nZXMgYW5kIHdoZXRoZXIgb3Igbm90IHRoaXMgY29kZSBpcyByZWxldmFudCB0byBteSBjdXJyZW50IGNvbmNlcm5zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O09DVEVPTlRYMiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6Njpjb25maWcgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0xMC1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MTE6XHRzZWxlY3QgT0NURU9OVFgyX01CT1hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTItXHRzZWxlY3QgTkVUX0RFVkxJTktcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnPTIyPWNvbmZpZyBORENfRElTX0RZTkFNSUNfQ0FDSElOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yMy1cdGJvb2wgXCYjMzQ7RGlzYWJsZSBjYWNoaW5nIG9mIGR5bmFtaWMgZW50cmllcyBpbiBORENcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XHRkZXBlbmRzIG9uIE9DVEVPTlRYMl9BRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0yNS1cdGRlZmF1bHQgblxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMzItXHR0cmlzdGF0ZSBcJiMzNDtNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMzOlx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTM0LVx0c2VsZWN0IE5FVF9ERVZMSU5LXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDU6Y29uZmlnIE9DVEVPTlRYMl9WRlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cdHRyaXN0YXRlIFwmIzM0O01hcnZlbGwgT2N0ZW9uVFgyIE5JQyBWaXJ0dWFsIEZ1bmN0aW9uIGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUyLVx0dHJpc3RhdGUgXCYjMzQ7TWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo1MzpcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTU0LVx0ZGVmYXVsdCBtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gYWYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfQUYpICYjNDM7PSBhZi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjg6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9QRikgJiM0Mzs9IG5pYy9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSAmIzQzOz0gcnZ1X21ib3gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSAmIzQzOz0gcnZ1X2FmLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM9NjY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGNneF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtNjgtXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NneC5oLTE1LSAvKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9DR1hcdFx0MHhBMDU5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guaC0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNTY6I2RlZmluZSBfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE1Ny1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBfX25hbWUgIyMgX2ZvcHMgPSB7XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE2NTojZGVmaW5lIERFRklORV9PQ1RFT05UWDJfREVCVUdGU19BVFRSSUJVVEVfV0lUSF9TSVpFKF9fbmFtZSwgX19zaXplKVx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cdFx0XHRcdFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM6MTcxOl9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE3Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTgxPXN0YXRpYyBpbnQgbnBjX21jYW1fZHN0YXRzX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI0MzpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9kc3RhdHMsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMjg0LS8qIFwmIzM0OyV1XFx0JWRcXHQldVxcblwmIzM0OyBuZWVkcyBsZXNzIHRoYW4gNjQgY2hhcmFjdGVycyB0byBwcmludC4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyODU6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fbWlzbWF0Y2gsIFRPVEFMX1NaKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXHRcdFx0MHhBMDBDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMi0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFBcdFx0MHhCMTAwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjctI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhPX1BUUFx0MHhCNjAwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyODojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlNUXHRcdFx0MHhBMDg1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yOS0jZGVmaW5lIFBDSV9ERVZJRF9DTjEwS19QVFBcdFx0XHQweEEwOUVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYz01ODk9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHB0cF9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkwOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTEtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkyLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTQtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk2Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk4LVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhfUFRQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTk5Olx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDAtXHRcdFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAxLVx0XHRcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk1WFhOX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAzLVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cdFx0XHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwNTpcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVx0XHRcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcnZ1X2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUYpIH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy00Ni1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9OTI3PXN0YXRpYyB2b2lkIHJ2dV9nZXRfbGJrX2J1ZnNpemUoc3RydWN0IHJ2dSAqcnZ1KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTkzMy1cdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcdFx0XHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzUtXHRpZiAoIXBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MzQ0Nz1pbnQgcnZ1X2dldF9udW1fbGJrX2NoYW5zKHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjM0NTM6XHRwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1NC1cdFx0XHQgICAgICBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcdDB4QTBGOFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDk0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ5NTpcdGlmIChydnUtXHUwMDNldmZfZGV2aWQgPT0gUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5Ni1cdFx0Y2hhbnMgPSBydnVfZ2V0X251bV9sYmtfY2hhbnMoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yMy0vKiBQQ0kgZGV2aWNlIElEcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MjQ6I2RlZmluZVx0UENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZcdFx0MHhBMDY1XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNTojZGVmaW5lXHRQQ0lfREVWSURfT0NURU9OVFgyX0xCS1x0XHRcdDB4QTA2MVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmM9MzkyPXN0YXRpYyB2b2lkIHJ2dV9sYmtfc2V0X2NoYW5uZWxzKHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTUtXHRcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jOjQxNjpcdFx0XHRcdCAgICAgIFBDSV9ERVZJRF9PQ1RFT05UWDJfTEJLLCBwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jLTQxNy1cdFx0aWYgKCFwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM9MjgwNj1zdGF0aWMgdm9pZCBydnVfZGJnX25wYV9pbml0KHN0cnVjdCBydnUgKnJ2dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI4MjUtLyogUGVyLWxtYWMgQ0dYIGRlYnVnZnMgZmlsZXMgbmVlZCBib3RoIFJWVSBhbmQgQ0dYIGhhbmRsZTsgaW5vZGUtXHUwMDNlaV9wcml2YXRlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4MjY6ICogcG9pbnRzIGhlcmUgc28gc2VxX2ZpbGUgb3BzIGF2b2lkIHBjaV9nZXRfZGV2aWNlKFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgyNy0gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19PQ1RFT05UWDJfUEYpICYjNDM7PSBydnVfbmljcGYubyBvdHgyX3B0cC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU6NzpvYmotJChDT05GSUdfT0NURU9OVFgyX1ZGKSAmIzQzOz0gcnZ1X25pY3ZmLm8gb3R4Ml9wdHAub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTgtb2JqLSQoQ09ORklHX1JWVV9FU1dJVENIKSAmIzQzOz0gcnZ1X3JlcC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDItLyogUENJIGRldmljZSBJRHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQzOiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYgICAgICAgICAgICAgIDB4QTA2M1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDQ6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRlx0XHQweEEwNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjQ1OiNkZWZpbmUgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRlx0XHQweEEwRjhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTE6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVBcdFx0MHhBMEY3XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaD01OTc9c3RhdGljIGlubGluZSBib29sIGlzX290eDJfbGJrdmYoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01OTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTk5Olx0cmV0dXJuIChwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjAwLVx0XHQocGRldi1cdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX1JWVV9SRVApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oPTYxNT1zdGF0aWMgaW5saW5lIGJvb2wgaXNfb3R4Ml9zZHBfcmVwKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjYxNzpcdHJldHVybiBwZGV2LVx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC02MTgtfVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfcGZfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6Mzc6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zOC1cdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz0yMj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml92Zl9pZF90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyMzpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZWRikgfSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjQ6XHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYzoyNTpcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQKSB9LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0yNi1cdHsgfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMDA0CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaGAuIFRoaXMgaXMgb2J2aW91c2x5IGEga2V5IGhlYWRlciBmaWxlIGZvciB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIEFkbWluIEZ1bmN0aW9uIGRyaXZlci4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gdW5kZXJzdGFuZCBpdHMgc2NvcGUgYW5kIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoaXMgZmlsZSBpcyB1c2VkIGFuZCB3aGF0IG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0gcmVseSBvbiBpdC4gTGV0JiMzOTtzIHNlZSB3aG8mIzM5O3MgaW5jbHVkaW5nIGBjb21tb24uaGAuIE1heWJlIEkgc2hvdWxkIGFsc28gbG9vayBmb3IgY2FsbHMgdG8gZnVuY3Rpb25zIGxpa2UgYHFtZW1fYWxsb2NgIG9yIG90aGVyIGtleSBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCBpdCYjMzk7cyBmdW5jdGlvbmFsaXR5LiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBvdmVyYWxsIGRyaXZlciYjMzk7cyBhcmNoaXRlY3R1cmUgYW5kIGhvdyB0aGlzIGBjb21tb24uaGAgZml0cyBpbnRvIHRoZSBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3FtZW1fYWxsb2MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYz0yNjg9c3RhdGljIGludCBydnVfYWxsb2NfbWJveF9tZW1vcnkoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYy0yODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzoyODg6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNm1ib3hfYWRkciwgbmRldnMsIG1ib3hfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYy0yODktXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jPTQwOD1pbnQgcnZ1X2FsbG9jX2NpbnRfcWludF9tZW0oc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcnZ1X3BmdmYgKnBmdmYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDI3LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSAyNCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzo0Mjg6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlY3FfaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jLTQyOS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDM4LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSAyMCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzo0Mzk6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlbml4X3FpbnRzX2N0eCwgcWludHMsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDQwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaD03MT1zdGF0aWMgaW5saW5lIHZvaWQgb3R4Ml9kbWFfZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oLTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmg6Nzg6c3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oLTc5LVx0XHRcdCAgICAgaW50IHFzaXplLCBpbnQgZW50cnlfc3opXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTIzNj1pbnQgcnZ1X2FxX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGFkbWluX3F1ZXVlICoqYWRfcXVldWUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMTI0Ny1cdC8qIEFsbG9jIG1lbW9yeSBmb3IgaW5zdHJ1Y3Rpb25zIGkuZSBBUSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTI0ODpcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2YXEtXHUwMDNlaW5zdCwgcXNpemUsIGluc3Rfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjQ5LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNTQtXHQvKiBBbGxvYyBtZW1vcnkgZm9yIHJlc3VsdHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjEyNTU6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNmFxLVx1MDAzZXJlcywgcXNpemUsIHJlc19zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNTYtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTk0ND1zdGF0aWMgaW50IG5peGxmX3Jzc19jdHhfaW5pdChzdHJ1Y3QgcnZ1ICpydnUsIGludCBibGthZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy05NTctXHQvKiBBbGxvYyBOSVggUlNTIEhXIGNvbnRleHQgbWVtb3J5IGFuZCBjb25maWcgdGhlIGJhc2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzo5NTg6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlcnNzX2N0eCwgbnVtX2luZGljZXMsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTk1OS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jPTE1MTI9aW50IHJ2dV9tYm94X2hhbmRsZXJfbml4X2xmX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTU4Ni1cdGh3Y3R4X3NpemUgPSAxVUwgXHUwMDNjXHUwMDNjICgoY3R4X2NmZyBcdTAwM2VcdTAwM2UgNCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6MTU4NzpcdHJjID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZXJxX2N0eCwgcmVxLVx1MDAzZXJxX2NudCwgaHdjdHhfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTU4OC1cdGlmIChyYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTYwNS1cdGh3Y3R4X3NpemUgPSAxVUwgXHUwMDNjXHUwMDNjIChjdHhfY2ZnIFx1MDAyNiAweEYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2MDY6XHRyYyA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2cGZ2Zi1cdTAwM2VzcV9jdHgsIHJlcS1cdTAwM2VzcV9jbnQsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MDctXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MjMtXHRod2N0eF9zaXplID0gMVVMIFx1MDAzY1x1MDAzYyAoKGN0eF9jZmcgXHUwMDNlXHUwMDNlIDgpIFx1MDAyNiAweEYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2MjQ6XHRyYyA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2cGZ2Zi1cdTAwM2VjcV9jdHgsIHJlcS1cdTAwM2VjcV9jbnQsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MjUtXHRpZiAocmMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2NTEtXHRod2N0eF9zaXplID0gMVVMIFx1MDAzY1x1MDAzYyAoKGN0eF9jZmcgXHUwMDNlXHUwMDNlIDI0KSBcdTAwMjYgMHhGKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNjUyOlx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlY3FfaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjUzLVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjY1LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSAyMCkgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6MTY2NjpcdHJjID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZW5peF9xaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjY3LVx0aWYgKHJjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz0zNzIyPXN0YXRpYyBpbnQgbml4X3NldHVwX21jYXN0KHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IG5peF9odyAqbml4X2h3LCBpbnQgYmxrYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc0NS1cdC8qIEFsbG9jIG1lbW9yeSBmb3IgbXVsdGljYXN0L21pcnJvciByZXBsaWNhdGlvbiBlbnRyaWVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6Mzc0NjpcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVx1MDAzZWRldiwgXHUwMDI2bWNhc3QtXHUwMDNlbWNlX2N0eCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0zNzQ3LVx0XHRcdCBtY2FzdC1cdTAwM2VtY2VfY291bnRlcltOSVhfTUNBU1RfSU5HUkVTU10ubWF4LCBzaXplKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc2Mi1cdHNpemUgPSBydnVfcmVhZDY0KHJ2dSwgYmxrYWRkciwgTklYX0FGX01DX01JUlJPUl9DT05TVCkgXHUwMDI2IDB4RkZGRjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzozNzYzOlx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZtY2FzdC1cdTAwM2VtY2FzdF9idWYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc2NC1cdFx0XHQgKDhVTCBcdTAwM2NcdTAwM2MgTUNfQlVGX0NOVCksIHNpemUpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYz0zMjc9aW50IHJ2dV9tYm94X2hhbmRsZXJfbnBhX2xmX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzY2LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKGN0eF9jZmcgXHUwMDI2IDB4Rik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmM6MzY3Olx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZWF1cmFfY3R4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jLTM2OC1cdFx0XHQgTlBBX0FVUkFfQ09VTlQocmVxLVx1MDAzZWF1cmFfc3opLCBod2N0eF9zaXplKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzc4LVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSA0KSBcdTAwMjYgMHhGKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozNzk6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlcG9vbF9jdHgsIHJlcS1cdTAwM2Vucl9wb29scywgaHdjdHhfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzgwLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzkzLVx0aHdjdHhfc2l6ZSA9IDFVTCBcdTAwM2NcdTAwM2MgKChjdHhfY2ZnIFx1MDAzZVx1MDAzZSA4KSBcdTAwMjYgMHhGKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozOTQ6XHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cdTAwM2VkZXYsIFx1MDAyNnBmdmYtXHUwMDNlbnBhX3FpbnRzX2N0eCwgcWludHMsIGh3Y3R4X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jLTM5NS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrLmM9NDM9aW50IGNuMTBrX2xtdHN0X2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEway5jLTY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrLmM6NjY6XHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXHUwMDNlZGV2LCBcdTAwMjZwZnZmLVx1MDAzZWR5bmNfbG10LCBwZnZmLVx1MDAzZXRvdF9sbXRfbGluZXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYy02Ny1cdFx0XHQgTE1UX0xJTkVfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX2lwc2VjLmM9NjY2PXN0YXRpYyBpbnQgY24xMGtfaXBzZWNfb3V0Yl9hZGRfc3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYzo2ODE6XHRlcnIgPSBxbWVtX2FsbG9jKHBmLVx1MDAzZWRldiwgXHUwMDI2c2FfaW5mbywgcGYtXHUwMDNlaXBzZWMuc2Ffc2l6ZSwgT1RYMl9BTElHTik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jPTUyMD1zdGF0aWMgaW50IGNuMjBrX2F1cmFfYXFfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIGludCBhdXJhX2lkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTUzMy1cdGlmICghcG9vbC1cdTAwM2VmY19hZGRyKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYzo1MzQ6XHRcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cdTAwM2VkZXYsIFx1MDAyNnBvb2wtXHUwMDNlZmNfYWRkciwgMSwgT1RYMl9BTElHTik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYy01MzUtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM9NTk3PXN0YXRpYyBpbnQgY24yMGtfcG9vbF9hcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHBvb2xfaWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmMtNjA3LVx0LyogQWxsb2MgbWVtb3J5IGZvciBzdGFjayB3aGljaCBpcyB1c2VkIHRvIHN0b3JlIGJ1ZmZlciBwb2ludGVycyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM6NjA4Olx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2cG9vbC1cdTAwM2VzdGFjayxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTYwOS1cdFx0XHQgc3RhY2tfcGFnZXMsIHBmdmYtXHUwMDNlaHcuc3RhY2tfcGdfYnl0ZXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTk2MT1pbnQgb3R4Ml9zcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHFpZHgsIHUxNiBzcWJfYXVyYSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy05NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzo5NzQ6XHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXHUwMDNlZGV2LCBcdTAwMjZzcS1cdTAwM2VzcWUsIDEsIHNxLVx1MDAzZXNxZV9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk3NS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTkxLVx0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzo5OTI6XHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXHUwMDNlZGV2LCBcdTAwMjZzcS1cdTAwM2VzcWVfcmluZywgcXNldC1cdTAwM2VzcWVfY250LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTkzLVx0XHRcdCBzcS1cdTAwM2VzcWVfc2l6ZSAqIDIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjk5NzpcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cdTAwM2VkZXYsIFx1MDAyNnNxLVx1MDAzZWNwdF9yZXNwLCBxc2V0LVx1MDAzZXNxZV9jbnQsIDY0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk5OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAwMS1cdGlmIChxaWR4IFx1MDAzYyBwZnZmLVx1MDAzZWh3LnR4X3F1ZXVlcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTAwMjpcdFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2c3EtXHUwMDNldHNvX2hkcnMsIHFzZXQtXHUwMDNlc3FlX2NudCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEwMDMtXHRcdFx0XHQgVFNPX0hFQURFUl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xMDEzLVx0aWYgKHBmdmYtXHUwMDNlcHRwIFx1MDAyNlx1MDAyNiBxaWR4IFx1MDAzYyBwZnZmLVx1MDAzZWh3LnR4X3F1ZXVlcykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTAxNDpcdFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2c3EtXHUwMDNldGltZXN0YW1wcywgcXNldC1cdTAwM2VzcWVfY250LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAxNS1cdFx0XHRcdCBzaXplb2YoKnNxLVx1MDAzZXRpbWVzdGFtcHMpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYz0xMDUxPWludCBvdHgyX2NxX2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmLCB1MTYgcWlkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xMDk5LVx0LyogQWxsb2NhdGUgbWVtb3J5IGZvciBDUUVzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxMTAwOlx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2Y3EtXHUwMDNlY3FlLCBjcS1cdTAwM2VjcWVfY250LCBjcS1cdTAwM2VjcWVfc2l6ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xMTAxLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYz0xMzc2PWludCBvdHgyX2F1cmFfYXFfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIGludCBhdXJhX2lkLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzODgtXHRpZiAoIXBvb2wtXHUwMDNlZmNfYWRkcikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTM4OTpcdFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVx1MDAzZWRldiwgXHUwMDI2cG9vbC1cdTAwM2VmY19hZGRyLCAxLCBPVFgyX0FMSUdOKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzOTAtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM9MTQ2MD1pbnQgb3R4Ml9wb29sX2FxX2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmLCB1MTYgcG9vbF9pZCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNDcwLVx0LyogQWxsb2MgbWVtb3J5IGZvciBzdGFjayB3aGljaCBpcyB1c2VkIHRvIHN0b3JlIGJ1ZmZlciBwb2ludGVycyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTQ3MTpcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cdTAwM2VkZXYsIFx1MDAyNnBvb2wtXHUwMDNlc3RhY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNDcyLVx0XHRcdCBzdGFja19wYWdlcywgcGZ2Zi1cdTAwM2Vody5zdGFja19wZ19ieXRlcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYz01Nzk9c3RhdGljIHZvaWQgKmNuMjBrX3BmdmZfbWJveF9hbGxvYyhzdHJ1Y3Qgb3R4Ml9uaWMgKnBmLCBpbnQgbnVtdmZzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYzo1ODQ6XHRlcnIgPSBxbWVtX2FsbG9jKFx1MDAyNnBmLVx1MDAzZXBkZXYtXHUwMDNlZGV2LCBcdTAwMjZtYm94X2FkZHIsIG51bXZmcywgTUJPWF9TSVpFKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNTg1LVx0aWYgKGVycikge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1NjQ5CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMzc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgTWFydmVsbCBPY3Rlb25UWDIgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSBpZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgY29kZSBpcyBpbmhlcmVudGx5IGhhcmR3YXJlLXNwZWNpZmljLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCBmYWxscyB1bmRlciB0aGUgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBjYXRlZ29yeSwgc3BlY2lmaWNhbGx5IHRoZSAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IGNsYXVzZS4gVGhpcyBtZWFucyBJIG5lZWQgdG8gYXNzZXNzIGlmIHRoaXMgY29kZSBpbnRlcmFjdHMgd2l0aCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyB0aGF0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZSDigJMgc3R1ZmYgbm90IHR5cGljYWxseSBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuCgpNeSBsaW5lIG9mIHJlYXNvbmluZyBpcyBjbGVhcjogSXMgdGhlIE9jdGVvblRYMiBhIFNtYXJ0TklDIG9yIEV0aGVybmV0IEFTSUMgZHJpdmVyIHRoYXQmIzM5O3MgZGVwZW5kZW50IG9uIHNwZWNpZmljIGhhcmR3YXJlLCBlc3BlY2lhbGx5IGEgUENJZSBkZXZpY2UsIGFuZCBjcnVjaWFsbHksICpub3QqIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVU/CgpTbywgZmlyc3QgSSYjMzk7bGwgemVybyBpbiBvbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2AgZGlyZWN0b3J5LiBCYXNlZCBvbiBteSBleGlzdGluZyBrbm93bGVkZ2UsIE1hcnZlbGwmIzM5O3MgT2N0ZW9uVFgyIFJWVSBhcmNoaXRlY3R1cmUgaXMgYSBrZXkgY29tcG9uZW50LCB1c2VkIGluIHRoZWlyIE9jdGVvbiBUWDIgbmV0d29yayBwcm9jZXNzb3JzLCB3aGljaCBhcmUgdHlwaWNhbGx5IGZvdW5kIGluIFNtYXJ0TklDcyBhbmQgU29DcyAoQ045WFhYLCBDTjEwSywgZXRjLikuIEJpbmdvLCB0aGF0JiMzOTtzIGEgUENJZSBkZXZpY2UhIFRoZXkgaGF2ZSBzcGVjaWZpYyBQQ0kgSURzLCB2ZW5kb3IgMHgxNzdkIChDQVZJVU0pLCBhbmQgdmFyaW91cyBkZXZpY2UgSURzIHN1Y2ggYXMgMHhBMDY1LCAweEEwNjMsIDB4QTA2NCwgYW5kIG90aGVycy4KCkFuZCB0aGUgY29uY2x1c2lvbiBJJiMzOTt2ZSBjb21lIHRvOiBUaGVzZSBkZXZpY2VzIGFyZW4mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgb3IgYXQgbGVhc3QgR0NFIGVudmlyb25tZW50cy4KClRvIGJlIHRob3JvdWdoLCBJIHdpbGwgYWxzbyBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbW9jayBkZXZpY2VzLiBBbHNvLCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgY29kZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBvdXRzaWRlIG9mIHRoYXQgZHJpdmVyLCB3aGljaCBjb3VsZCBpbmRpY2F0ZSBhIGxldmVsIG9mIGFic3RyYWN0aW9uIG9yIGhhcmR3YXJlLWluZGVwZW5kZW50IHBhcnRzLiBTcGVjaWZpY2FsbHksIEkmIzM5O2xsIGxvb2sgaW50byB0aGUgaW5jbHVzaW9uIG9mIGBjb21tb24uaGAgdG8gc2VlIGhvdyBpdCBtaWdodCBiZSB1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2luY2x1ZGUuKmFmL2NvbW1vblxcLmgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2NDg1CgkJCQkJCQlvdXRwdXQ6IDIxCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czoKCioqT2theSwgTGV0JiMzOTtzIEdldCB0byBXb3JrKioKClJpZ2h0LCB0aW1lIHRvIGRpZyBpbi4gVGhlIGZpcnN0IHRoaW5nIEkgbmVlZCB0byBkbyBpcyBsb2NhdGUgdGhhdCBjcnVjaWFsIGhlYWRlciBmaWxlLCBgI2luY2x1ZGUgJiMzNDtjb21tb24uaCYjMzQ7YC4gVGhhdCYjMzk7cyBsaWtlbHkgdGhlIGp1bXBpbmctb2ZmIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoaXMgY29kZSBiYXNlLiBJdCYjMzk7cyBwcm9iYWJseSB3aGVyZSBhIGxvdCBvZiB0aGUgY29yZSBkZWZpbml0aW9ucyBhbmQgc3RydWN0dXJlcyBhcmUgbG9jYXRlZC4gT25jZSBJIGZpbmQgaXQsIEkgY2FuIHN0YXJ0IHRyYWNpbmcgZGVwZW5kZW5jaWVzIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZS4gTGV0JiMzOTtzIHNlZSBpZiBJIGNhbiB1c2UgYSBzaW1wbGUgc2VhcmNoIHRvIGxvY2F0ZSB0aGF0IGZpbGUgcXVpY2tseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2luY2x1ZGUgXCYjMzQ7Y29tbW9uXFwuaFwmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjc2OCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jLTE4LVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvY29tbW9uLmMtMjAtI2luY2x1ZGUgXCYjMzQ7Y3B1dHlwZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NwdXR5cGUuaC0xNi1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmg6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmgtMTgtXG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhODUwLmMtMjItXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4NTAuYzoyMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhODUwLmMtMjQtI2luY2x1ZGUgXCYjMzQ7Y3B1dHlwZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhOHh4LWR0LmMtOS1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kYTh4eC1kdC5jOjEwOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4eHgtZHQuYy0xMS0jaW5jbHVkZSBcJiMzNDtkYTh4eC5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RldmljZXMtZGE4eHguYy0yMC1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kZXZpY2VzLWRhOHh4LmM6MjE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kZXZpY2VzLWRhOHh4LmMtMjItI2luY2x1ZGUgXCYjMzQ7Y3B1dHlwZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL211eC5jLTIzLSNpbmNsdWRlIFwmIzM0O211eC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvbXV4LmM6MjQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9tdXguYy0yNS1cbi0tXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvcGRhdGEtcXVpcmtzLmMtMTItXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvcGRhdGEtcXVpcmtzLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9wZGF0YS1xdWlya3MuYy0xNC0jaW5jbHVkZSBcJiMzNDtkYTh4eC5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmMtMTgtXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvcG0uYzoxOTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmMtMjAtI2luY2x1ZGUgXCYjMzQ7ZGE4eHguaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9zcmFtLmMtMTEtXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jLTEzLSNpbmNsdWRlIFwmIzM0O3NyYW0uaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtZG92ZS9jbS1hNTEwLmMtMjItI2luY2x1ZGUgXCYjMzQ7ZG92ZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvY20tYTUxMC5jOjIzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvY20tYTUxMC5jLTI0LVxuLS1cbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNC0jaW5jbHVkZSBcJiMzNDtwbS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvY29tbW9uLmM6MjU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNi1cbi0tXG5hcmNoL2FybS9tYWNoLWRvdmUvaXJxLmMtMTYtI2luY2x1ZGUgXCYjMzQ7YnJpZGdlLXJlZ3MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1kb3ZlL2lycS5jOjE3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvaXJxLmMtMTgtXG4tLVxuYXJjaC9hcm0vbWFjaC1kb3ZlL3BjaWUuYy0xOS0jaW5jbHVkZSBcJiMzNDticmlkZ2UtcmVncy5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvcGNpZS5jOjIwOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWRvdmUvcGNpZS5jLTIxLVxuLS1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jLTIxLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvZXh5bm9zLmM6MjI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jLTIzLVxuLS1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL2Zpcm13YXJlLmMtMTgtXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9maXJtd2FyZS5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWV4eW5vcy9maXJtd2FyZS5jLTIwLSNpbmNsdWRlIFwmIzM0O3NtYy5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvbWNwbS1leHlub3MuYy0xOC1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmM6MTk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmMtMjAtXG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvcGxhdHNtcC5jLTI0LVxuYXJjaC9hcm0vbWFjaC1leHlub3MvcGxhdHNtcC5jOjI1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbGF0c21wLmMtMjYtXG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3MvcG0uYy0yNC1cbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmM6MjU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmMtMjYtXG4tLVxuYXJjaC9hcm0vbWFjaC1leHlub3Mvc3VzcGVuZC5jLTMyLVxuYXJjaC9hcm0vbWFjaC1leHlub3Mvc3VzcGVuZC5jOjMzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWV4eW5vcy9zdXNwZW5kLmMtMzQtI2luY2x1ZGUgXCYjMzQ7c21jLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmMtMjgtXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmM6Mjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYy0zMC1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZGMyMTI4NS10aW1lci5jLTIwLVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2RjMjEyODUtdGltZXIuYzoyMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2RjMjEyODUtdGltZXIuYy0yMi1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS5jLTE3LVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUuYzoxODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUuYy0xOS1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLWlycS5jLTI3LVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1pcnEuYzoyODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1pcnEuYy0yOS1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXJ0Yy5jLTI0LVxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1ydGMuYzoyNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1ydGMuYy0yNi1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXRpbWVyLmMtMTgtXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXRpbWVyLmM6MTk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EtdGltZXIuYy0yMC1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLmMtMTItXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EuYy0xNC1cbi0tXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvbmV0d2luZGVyLWh3LmMtMjUtXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvbmV0d2luZGVyLWh3LmM6MjY6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9uZXR3aW5kZXItaHcuYy0yNy1cbi0tXG5hcmNoL2FybS9tYWNoLWlteC9hbmF0b3AuYy0xMi0jaW5jbHVkZSBcdTAwM2NsaW51eC9yZWdtYXAuaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1pbXgvYW5hdG9wLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2FuYXRvcC5jLTE0LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9hdmljLmMtMTYtXG5hcmNoL2FybS9tYWNoLWlteC9hdmljLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2F2aWMuYy0xOC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDMxLmMtMTEtXG5hcmNoL2FybS9tYWNoLWlteC9jcHUtaW14MzEuYzoxMjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDMxLmMtMTMtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXg1LmMtMTYtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYzoxNzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYy0xOC1cbi0tXG5hcmNoL2FybS9tYWNoLWlteC9jcHUuYy04LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2NwdS5jOjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2NwdS5jLTEwLVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnEuYy0xMi1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnEuYzoxMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2cS5jLTE0LSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnNsLmMtMTAtXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzbC5jOjExOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzbC5jLTEyLSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnN4LmMtMTItXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jOjEzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jLTE0LSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14N3VscC5jLTExLVxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg3dWxwLmM6MTI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14N3VscC5jLTEzLSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jLTEzLVxuYXJjaC9hcm0vbWFjaC1pbXgvZ3BjLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jLTE1LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9ob3RwbHVnLmMtMTItXG5hcmNoL2FybS9tYWNoLWlteC9ob3RwbHVnLmM6MTM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L2hvdHBsdWcuYy0xNC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgxLmMtNy1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MS5jOjg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MS5jLTktI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy02LSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNoL2FyY2guaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNS5jOjc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy04LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDI3LmMtOS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjcuYzoxMDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNy5jLTExLSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtNi0jaW5jbHVkZSBcdTAwM2Nhc20vbWFjaC9hcmNoLmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzEuYzo3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtOC1cbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDM1LmMtOC0jaW5jbHVkZSBcdTAwM2Nhc20vbWFjaC9hcmNoLmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzUuYzo5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDM1LmMtMTAtI2luY2x1ZGUgXCYjMzQ7bXgzNS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MC5jLTktXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUwLmM6MTA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NTAuYy0xMS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MS5jLTExLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MS5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUxLmMtMTMtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NTMuYy04LVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1My5jOjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NTMuYy0xMC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jLTE4LVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDZxLmMtMjAtI2luY2x1ZGUgXCYjMzQ7Y3B1aWRsZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c2wuYy0xMy1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmMtMTUtI2luY2x1ZGUgXCYjMzQ7Y3B1aWRsZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c3guYy0xMS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnN4LmM6MTI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnN4LmMtMTMtI2luY2x1ZGUgXCYjMzQ7Y3B1aWRsZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYy04LVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYzo5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDZ1bC5jLTEwLSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N2QuYy0xNC1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N2QuYzoxNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3ZC5jLTE2LVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N3VscC5jLTEzLVxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3dWxwLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N3VscC5jLTE1LSNpbmNsdWRlIFwmIzM0O2NwdWlkbGUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtbHMxMDIxYS5jLTctXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWxzMTAyMWEuYzo4OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWxzMTAyMWEuYy05LVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtdmY2MTAuYy0xMy1cbmFyY2gvYXJtL21hY2gtaW14L21hY2gtdmY2MTAuYzoxNDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC12ZjYxMC5jLTE1LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmMtMTktXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L21tLWlteDMuYy0yMS0jaW5jbHVkZSBcJiMzNDtjcm1yZWdzLWlteDMuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L21tZGMuYy0yMC1cbmFyY2gvYXJtL21hY2gtaW14L21tZGMuYzoyMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvbW1kYy5jLTIyLVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L3BsYXRzbXAuYy0xNi1cbmFyY2gvYXJtL21hY2gtaW14L3BsYXRzbXAuYzoxNzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvcGxhdHNtcC5jLTE4LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNS5jLTgtI2luY2x1ZGUgXHUwMDNjbGludXgvaW8uaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjUuYzo5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNS5jLTEwLVxuLS1cbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDI3LmMtMTQtXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNy5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXgyNy5jLTE2LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg1LmMtMjEtXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg1LmM6MjI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDUuYy0yMy0jaW5jbHVkZSBcJiMzNDtjcHVpZGxlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg2LmMtMjctXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg2LmM6Mjg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDYuYy0yOS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jLTExLVxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg3dWxwLmMtMTMtXG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvc3JjLmMtMTUtI2luY2x1ZGUgXHUwMDNjYXNtL3NtcF9wbGF0LmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtaW14L3NyYy5jOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWlteC9zcmMuYy0xNy0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1pbXgvc3lzdGVtLmMtMjItXG5hcmNoL2FybS9tYWNoLWlteC9zeXN0ZW0uYzoyMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvc3lzdGVtLmMtMjQtI2luY2x1ZGUgXCYjMzQ7aGFyZHdhcmUuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYy0xNy1cbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYzoxODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1pbXgvdHppYy5jLTE5LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvY29tbW9uLmMtMTYtI2luY2x1ZGUgXCYjMzQ7bHBjMzJ4eC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvY29tbW9uLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9jb21tb24uYy0xOC1cbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcGh5MzI1MC5jLTExLSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNoL2FyY2guaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3BoeTMyNTAuYzoxMjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3BoeTMyNTAuYy0xMy1cbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03MS0jaW5jbHVkZSBcJiMzNDtscGMzMnh4LmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9wbS5jOjcyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03My1cbi0tXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvc2VyaWFsLmMtMjAtI2luY2x1ZGUgXCYjMzQ7bHBjMzJ4eC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvc2VyaWFsLmM6MjE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9zZXJpYWwuYy0yMi1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9jb21tb24uYy0xNy1cbmFyY2gvYXJtL21hY2gtbW1wL2NvbW1vbi5jOjE4OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW1tcC9jb21tb24uYy0xOS1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAtZHQuYy0xMy1cbmFyY2gvYXJtL21hY2gtbW1wL21tcC1kdC5jOjE0OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW1tcC9tbXAtZHQuYy0xNS1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAyLWR0LmMtMTMtXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAyLWR0LmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbW1wL21tcDItZHQuYy0xNS1cbi0tXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAzLmMtMTAtXG5hcmNoL2FybS9tYWNoLW1tcC9tbXAzLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbW1wL21tcDMuYy0xMi1cbi0tXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvYnVmZmFsby13eGwtc2V0dXAuYy0yMi0jaW5jbHVkZSBcJiMzNDttdjc4eHgwLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9idWZmYWxvLXd4bC1zZXR1cC5jOjIzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvYnVmZmFsby13eGwtc2V0dXAuYy0yNC0jaW5jbHVkZSBcJiMzNDttcHAuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYy0yNS0jaW5jbHVkZSBcJiMzNDticmlkZ2UtcmVncy5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmM6MjY6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYy0yNy1cbi0tXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMtMTQtI2luY2x1ZGUgXCYjMzQ7YnJpZGdlLXJlZ3MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMtMTYtXG4tLVxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jLTEyLSNpbmNsdWRlIFwmIzM0O212Nzh4eDAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jOjEzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvbXBwLmMtMTQtI2luY2x1ZGUgXCYjMzQ7bXBwLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvcGNpZS5jLTE1LSNpbmNsdWRlIFwmIzM0O212Nzh4eDAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYzoxNjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYy0xNy1cbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmMtMjgtI2luY2x1ZGUgXCYjMzQ7YXJtYWRhLTM3MC14cC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmM6Mjk6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvYm9hcmQtdjcuYy0zMC0jaW5jbHVkZSBcJiMzNDtjb2hlcmVuY3kuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvY3B1LXJlc2V0LmMtMTUtXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2NwdS1yZXNldC5jOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L2NwdS1yZXNldC5jLTE3LVxuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvZG92ZS5jLTEzLSNpbmNsdWRlIFx1MDAzY2FzbS9tYWNoL2FyY2guaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1tdmVidS9kb3ZlLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvZG92ZS5jLTE1LVxuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNC0jaW5jbHVkZSBcJiMzNDtraXJrd29vZC1wbS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L2tpcmt3b29kLmM6MjU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNi1cbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L212ZWJ1LXNvYy1pZC5jLTI0LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3N5c19zb2MuaFx1MDAzZVxuYXJjaC9hcm0vbWFjaC1tdmVidS9tdmVidS1zb2MtaWQuYzoyNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9tdmVidS1zb2MtaWQuYy0yNi0jaW5jbHVkZSBcJiMzNDttdmVidS1zb2MtaWQuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC1hOS5jLTE4LSNpbmNsdWRlIFx1MDAzY2FzbS9zbXBfcGxhdC5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAtYTkuYzoxOTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLWE5LmMtMjAtI2luY2x1ZGUgXCYjMzQ7cG1zdS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLmMtMjQtI2luY2x1ZGUgXHUwMDNjYXNtL3NtcF9wbGF0LmhcdTAwM2VcbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC5jOjI1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAuYy0yNi0jaW5jbHVkZSBcJiMzNDthcm1hZGEtMzcwLXhwLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLWJvYXJkLmMtMTctI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLWJvYXJkLmM6MTg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0tYm9hcmQuYy0xOS1cbi0tXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLmMtMjItI2luY2x1ZGUgXCYjMzQ7Y29oZXJlbmN5LmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0uYzoyMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9wbS5jLTI0LSNpbmNsdWRlIFwmIzM0O3Btc3UuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtbXZlYnUvcG1zdS5jLTM3LSNpbmNsdWRlIFx1MDAzY2FzbS90bGJmbHVzaC5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3Btc3UuYzozODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1tdmVidS9wbXN1LmMtMzktI2luY2x1ZGUgXCYjMzQ7cG1zdS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1tdmVidS9zeXN0ZW0tY29udHJvbGxlci5jLTI2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlYm9vdC5oXHUwMDNlXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3N5c3RlbS1jb250cm9sbGVyLmM6Mjc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtbXZlYnUvc3lzdGVtLWNvbnRyb2xsZXIuYy0yOC0jaW5jbHVkZSBcJiMzNDttdmVidS1zb2MtaWQuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1zLWRlbHRhLmMtNDQtI2luY2x1ZGUgXCYjMzQ7aW9tYXAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1hbXMtZGVsdGEuYzo0NTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1hbXMtZGVsdGEuYy00Ni1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMtMzQtI2luY2x1ZGUgXCYjMzQ7dXNiLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYzozNTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1ub2tpYTc3MC5jLTM2LSNpbmNsdWRlIFwmIzM0O2Nsb2NrLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jLTU2LSNpbmNsdWRlIFwmIzM0O3VzYi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jOjU3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jLTU4LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDItI2luY2x1ZGUgXCYjMzQ7bW1jLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmM6NDM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDQtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1zeDEuYy00MS0jaW5jbHVkZSBcJiMzNDt1c2IuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1zeDEuYzo0MjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1zeDEuYy00My1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2RldmljZXMuYy0yMy0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2RldmljZXMuYzoyNDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9kZXZpY2VzLmMtMjUtI2luY2x1ZGUgXCYjMzQ7Y2xvY2suaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvaWQuYy0xOS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lkLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvaWQuYy0yMS1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL2lvLmMtMTgtI2luY2x1ZGUgXCYjMzQ7aW9tYXAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9pby5jOjE5OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lvLmMtMjAtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pcnEuYy01MS0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jOjUyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jLTUzLVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvb2NwaS5jLTI1LSNpbmNsdWRlIFwmIzM0O2hhcmR3YXJlLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvb2NwaS5jOjI2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL29jcGkuYy0yNy1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL3Jlc2V0LmMtMTAtI2luY2x1ZGUgXCYjMzQ7aW9tYXAuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS9yZXNldC5jOjExOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3Jlc2V0LmMtMTItXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMS9zZXJpYWwuYy0yMi1cbmFyY2gvYXJtL21hY2gtb21hcDEvc2VyaWFsLmM6MjM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvc2VyaWFsLmMtMjQtI2luY2x1ZGUgXCYjMzQ7c2VyaWFsLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWUuYy01NS0jaW5jbHVkZSBcJiMzNDtpb21hcC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWUuYzo1NjojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMS90aW1lLmMtNTctI2luY2x1ZGUgXCYjMzQ7Y2xvY2suaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01NC0jaW5jbHVkZSBcJiMzNDtoYXJkd2FyZS5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWVyMzJrLmM6NTU6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01Ni1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAxL3VzYi5jLTIxLSNpbmNsdWRlIFwmIzM0O3VzYi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3VzYi5jOjIyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAxL3VzYi5jLTIzLVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvYW0zM3h4LXJlc3RhcnQuYy05LVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9hbTMzeHgtcmVzdGFydC5jOjEwOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2FtMzN4eC1yZXN0YXJ0LmMtMTEtI2luY2x1ZGUgXCYjMzQ7Y29udHJvbC5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmMtMTktXG5hcmNoL2FybS9tYWNoLW9tYXAyL2JvYXJkLWdlbmVyaWMuYzoyMDojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmMtMjEtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMtMjgtXG5hcmNoL2FybS9tYWNoLW9tYXAyL2JvYXJkLW44eDAuYzoyOTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMtMzAtI2luY2x1ZGUgXCYjMzQ7bW1jLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMtMzYtI2luY2x1ZGUgXCYjMzQ7Y20tcmVnYml0cy0zNHh4LmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYzozNzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jLTM4LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLmMtMTQtXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5jLTE2LSNpbmNsdWRlIFwmIzM0O29tYXAtc2VjdXJlLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYy0yMC0jaW5jbHVkZSBcJiMzNDtpb21hcC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYzoyMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMtMjItI2luY2x1ZGUgXCYjMzQ7Y20tcmVnYml0cy0zNHh4LmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NwdWlkbGUzNHh4LmMtMzItI2luY2x1ZGUgXCYjMzQ7Y29udHJvbC5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2NwdWlkbGUzNHh4LmM6MzM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTM0eHguYy0zNC0jaW5jbHVkZSBcJiMzNDtzb2MuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTQ0eHguYy0xNy1cbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTQ0eHguYzoxODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlNDR4eC5jLTE5LSNpbmNsdWRlIFwmIzM0O3BtLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2RldmljZXMuYy0yNy0jaW5jbHVkZSBcJiMzNDtzb2MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9kZXZpY2VzLmM6Mjg6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvZGV2aWNlcy5jLTI5LSNpbmNsdWRlIFwmIzM0O2NvbnRyb2wuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvZGlzcGxheS5jLTI2LSNpbmNsdWRlIFwmIzM0O29tYXBfZGV2aWNlLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvZGlzcGxheS5jOjI3OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2Rpc3BsYXkuYy0yOC1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jLTMyLSNpbmNsdWRlIFwmIzM0O3NvYy5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jOjMzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2RtYS5jLTM0LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvaGRxMXcuYy0yMi0jaW5jbHVkZSBcJiMzNDtwcm0uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9oZHExdy5jOjIzOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2hkcTF3LmMtMjQtXG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9pMmMuYy0xMi0jaW5jbHVkZSBcJiMzNDtwcm0uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9pMmMuYzoxMzojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9pMmMuYy0xNC0jaW5jbHVkZSBcJiMzNDtpMmMuaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYy0yNy1cbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYzoyODojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9pZC5jLTI5LVxuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zMi0jaW5jbHVkZSBcJiMzNDtjbG9ja2RvbWFpbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL2lvLmM6MzM6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zNC0jaW5jbHVkZSBcJiMzNDtjbG9jay5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9tc2RpLmMtMTQtI2luY2x1ZGUgXCYjMzQ7cHJtLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvbXNkaS5jOjE1OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL21zZGkuYy0xNi0jaW5jbHVkZSBcJiMzNDtjb250cm9sLmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtaG90cGx1Zy5jLTE5LSNpbmNsdWRlIFwmIzM0O29tYXAtd2FrZXVwZ2VuLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1ob3RwbHVnLmM6MjA6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1ob3RwbHVnLmMtMjEtI2luY2x1ZGUgXCYjMzQ7cG93ZXJkb21haW4uaFwmIzM0O1xuLS1cbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jLTE1LSNpbmNsdWRlIFwmIzM0O3Bvd2VyZG9tYWluLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtaW9tbXUuYy0xNy1cbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtbXB1c3MtbG93cG93ZXIuYy01MC0jaW5jbHVkZSBcJiMzNDtzb2MuaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLW1wdXNzLWxvd3Bvd2VyLmM6NTE6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1tcHVzcy1sb3dwb3dlci5jLTUyLSNpbmNsdWRlIFwmIzM0O29tYXA0NHh4LmhcJiMzNDtcbi0tXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmMtMjEtXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmM6MjI6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1zZWN1cmUuYy0yMy0jaW5jbHVkZSBcJiMzNDtvbWFwLXNlY3VyZS5oXCYjMzQ7XG4tLVxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNtcC5jLTMwLSNpbmNsdWRlIFwmIzM0O2lvbWFwLmhcJiMzNDtcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1zbXAuYzozMTojaW5jbHVkZSBcJiMzNDtjb21tb24uaFwmIzM0O1xuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNtcC5jLTMyLSNpbmNsdWRlIFwmIzM0O2Nsb2NrZG9tYWluLmhcJiMzNDtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYxODgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9uVFgyIEFGIEluY2x1ZGUgUGF0aCoqCgpBbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYXJvdW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaGAuIFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIGJhY2sgYW5kIGRldGVybWluZSBwcmVjaXNlbHkgd2hlcmUgdGhpcyBoZWFkZXIgZmlsZSBpcyBiZWluZyBwdWxsZWQgaW4uIFRoaXMgaXMgbGlrZWx5IHBhcnQgb2YgYSBkZWJ1Z2dpbmcgZWZmb3J0IG9yIG1heWJlIEkmIzM5O20gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaG93IGEgcGFydGljdWxhciBmZWF0dXJlIGlzIGVuYWJsZWQvZGlzYWJsZWQgb3IgaG93IHRoZSBBRiAoQXBwbGljYXRpb24gRm9yd2FyZGluZykgY29tcG9uZW50IGlzIGludGVncmF0ZWQgd2l0aGluIHRoZSBPY3Rlb25UWDImIzM5O3MgRXRoZXJuZXQgZHJpdmVyLiBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgY2FsbCBoaWVyYXJjaHkuIEl0IGNvdWxkIGJlIGRpcmVjdGx5IGluY2x1ZGVkIGluIGEgc291cmNlIGZpbGUsIG9yIHBvdGVudGlhbGx5IGJyb3VnaHQgaW4gdGhyb3VnaCBhIGNoYWluIG9mIGluY2x1ZGVzLCBwZXJoYXBzIHdpdGhpbiBhIGNvbmZpZ3VyYXRpb24gbWFjcm8gb3IgY29uZGl0aW9uYWwgY29tcGlsZSBzdGF0ZW1lbnQuIFNvLCBsZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlYmFzZSB0byBwaW5wb2ludCB0aGUgZXhhY3QgbG9jYXRpb25zIHdoZXJlIHRoaXMgaGVhZGVyIGZpbGUgaXMgYmVpbmcgcmVmZXJlbmNlZC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBzdGVwIGZvciBlZmZpY2llbnQgcmV2ZXJzZSBlbmdpbmVlcmluZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7I2luY2x1ZGUuKmNvbW1vblxcLmgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0yMS0jaW5jbHVkZSBcJiMzNDtydnUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6MjI6I2luY2x1ZGUgXCYjMzQ7bG1hY19jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oLTE1LSNpbmNsdWRlIFwmIzM0O3J2dV9zdHJ1Y3QuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oOjE2OiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMTctI2luY2x1ZGUgXCYjMzQ7Y24yMGsvc3RydWN0LmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMTQtI2luY2x1ZGUgXCYjMzQ7bWNzX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MTU6I2luY2x1ZGUgXCYjMzQ7bG1hY19jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3JwbS5jLTgtI2luY2x1ZGUgXCYjMzQ7Y2d4LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3JwbS5jOjk6I2luY2x1ZGUgXCYjMzQ7bG1hY19jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnBtLmMtMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMTYtI2luY2x1ZGUgXCYjMzQ7cnZ1X2RldmxpbmsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1Lmg6MTc6I2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTE4LSNpbmNsdWRlIFwmIzM0O21ib3guaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xMy0jaW5jbHVkZSBcJiMzNDtjZ3guaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jOjE0OiNpbmNsdWRlIFwmIzM0O2xtYWNfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jZ3guYy0xNS0jaW5jbHVkZSBcJiMzNDtydnVfcmVnLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTE4LSNpbmNsdWRlIFwmIzM0O2NneC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjE5OiNpbmNsdWRlIFwmIzM0O2xtYWNfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjAtI2luY2x1ZGUgXCYjMzQ7bnBjLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTYtI2luY2x1ZGUgXCYjMzQ7Y2d4LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNzojaW5jbHVkZSBcJiMzNDtsbWFjX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTgtI2luY2x1ZGUgXCYjMzQ7cnZ1X25wY19oYXNoLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBjLmMtMjEtI2luY2x1ZGUgXCYjMzQ7Y24yMGsvcmVnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGMuYzoyMjojaW5jbHVkZSBcJiMzNDtsbWFjX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBjLmMtMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3JlZy5jLTExLSNpbmNsdWRlIFwmIzM0O3J2dV9zdHJ1Y3QuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3JlZy5jOjEyOiNpbmNsdWRlIFwmIzM0O2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfcmVnLmMtMTMtI2luY2x1ZGUgXCYjMzQ7bWJveC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrLmgtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaDoxMTojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaC0xMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy0xMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jOjEzOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jLTE0LSNpbmNsdWRlIFwmIzM0O290eDJfc3RydWN0LmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfbWFjc2VjLmMtOS0jaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRmaWVsZC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfbWFjc2VjLmM6MTA6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX21hY3NlYy5jLTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYzo4OiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTktI2luY2x1ZGUgXCYjMzQ7b3R4Ml9yZWcuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5oLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmg6MTE6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmgtMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTYtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9yZWcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTc6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTgtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9zdHJ1Y3QuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RjYm5sLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RjYm5sLmM6ODojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kY2JubC5jLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kZXZsaW5rLmM6NzojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kZXZsaW5rLmMtOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kbWFjX2ZsdC5jLTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kbWFjX2ZsdC5jOjg6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZG1hY19mbHQuYy05LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2V0aHRvb2wuYy0xNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2V0aHRvb2wuYzoxNjojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9ldGh0b29sLmMtMTctI2luY2x1ZGUgXCYjMzQ7b3R4Ml9wdHAuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2Zsb3dzLmMtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9mbG93cy5jOjExOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2Zsb3dzLmMtMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0yMS0jaW5jbHVkZSBcJiMzNDtvdHgyX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jOjIyOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtMjMtI2luY2x1ZGUgXCYjMzQ7b3R4Ml90eHJ4LmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wdHAuYy05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcHRwLmM6MTA6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcHRwLmMtMTEtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9wdHAuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtMjAtI2luY2x1ZGUgXCYjMzQ7Y24xMGsuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYzoyMTojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jLTIyLSNpbmNsdWRlIFwmIzM0O3Fvcy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdHhyeC5jLTE3LSNpbmNsdWRlIFwmIzM0O290eDJfcmVnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3R4cnguYzoxODojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90eHJ4LmMtMTktI2luY2x1ZGUgXCYjMzQ7b3R4Ml9zdHJ1Y3QuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjEzOiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMTQtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9yZWcuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jLTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfeHNrLmM6MTM6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfeHNrLmMtMTQtI2luY2x1ZGUgXCYjMzQ7b3R4Ml9zdHJ1Y3QuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYzoxMjojaW5jbHVkZSBcJiMzNDtvdHgyX2NvbW1vbi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmMtMTMtI2luY2x1ZGUgXCYjMzQ7Y24xMGsuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3Nfc3EuYy0xMi0jaW5jbHVkZSBcJiMzNDtvdHgyX3JlZy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zX3NxLmM6MTM6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvc19zcS5jLTE0LSNpbmNsdWRlIFwmIzM0O290eDJfdHhyeC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jOjE0OiNpbmNsdWRlIFwmIzM0O290eDJfY29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuYy0xNS0jaW5jbHVkZSBcJiMzNDtjbjEway5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5oLTE0LSNpbmNsdWRlIFwmIzM0O290eDJfdHhyeC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmg6MTU6I2luY2x1ZGUgXCYjMzQ7b3R4Ml9jb21tb24uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5oLTE2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwMzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTg5NgoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNoZWNraW5nIE15IERlcGVuZGVuY2llcyoqCgpPa2F5LCBiZWZvcmUgSSBwcm9jZWVkIGZ1cnRoZXIsIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnl0aGluZyBvYnZpb3VzLiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgZ2xhbmNlIGF0IGBvdHgyX2NvbW1vbi5oYCBhcyB3ZWxsLiBJdCYjMzk7cyBjcnVjaWFsLCBhbmQgZnJhbmtseSwgYSBmcmVxdWVudCBzb3VyY2Ugb2YgJiMzNDtnb3RjaGFzJiMzNDsgaW4gdGhpcyBwcm9qZWN0LiBOb3csIHRoZSBjb3JlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYG90eDJfY29tbW9uLmhgIHB1bGxzIGluIGFueSBvZiB0aGUgYmFzZSB1dGlsaXRpZXMuIFNwZWNpZmljYWxseSwgaXMgYGFmL2NvbW1vbi5oYCBiZWluZyBpbmNsdWRlZCB0aGVyZT8gQSBtaXNzaW5nIGluY2x1ZGUgaGVyZSBjb3VsZCBleHBsYWluIHRoZSB1bnVzdWFsIGJlaGF2aW9yIEkmIzM5O20gY2hhc2luZyBkb3duLCBvciBhdCBsZWFzdCBoZWxwIHJ1bGUgb3V0IHNvbWUgcG9zc2liaWxpdGllcy4gTGV0JiMzOTtzIHNlZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMSAwMzozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbW1vblxcLmgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMTI4CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRob3VnaHRzOgoKKipQZWVyaW5nIGludG8gdGhlIENvbW1vbiBIZWFydCBvZiBPVFgyKioKCk9rYXksIHNvIEkgbmVlZCB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGZvdW5kYXRpb24gb2YgdGhpcyBPVFgyIHByb2plY3QuIFRpbWUgdG8gZGlnIGludG8gdGhlIGRldGFpbHMuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgZXhhbWluaW5nIHdoYXQgYG90eDJfY29tbW9uLmhgIGlzIHB1bGxpbmcgaW4uIFVuZGVyc3RhbmRpbmcgdGhlIGRlcGVuZGVuY2llcyBhdCB0aGUgdmVyeSBiYXNlIGxldmVsIHdpbGwgZ2l2ZSBtZSBhIGNyaXRpY2FsIG92ZXJ2aWV3IG9mIHRoaXMgYXJjaGl0ZWN0dXJlLiBJdCYjMzk7cyB0aGUgc3RhbmRhcmQgb3BlcmF0aW5nIHByb2NlZHVyZTsgeW91IG5ldmVyIHdhbnQgdG8gZ28gZm9yd2FyZCB3aXRob3V0IGdyYXNwaW5nIHRoZSBidWlsZGluZyBibG9ja3MuIEtub3dpbmcgd2hpY2ggaGVhZGVycyBpdCYjMzk7cyBpbmNsdWRpbmcgd2lsbCBpbnN0YW50bHkgdGVsbCBtZSB3aGVyZSB0byBsb29rIGZvciBkYXRhIHN0cnVjdHVyZXMsIGZ1bmRhbWVudGFsIGRlZmluaXRpb25zLCB1dGlsaXR5IGZ1bmN0aW9ucywgYW5kIHBvc3NpYmx5IGV2ZW4gZXh0ZXJuYWwgbGlicmFyeSBpbnRlcmZhY2VzIHRoYXQgZXZlcnl0aGluZyBlbHNlIGRlcGVuZHMgb24uIEl04oCZcyB0aGUgc2tlbGV0b24ga2V5LCBzbyB0byBzcGVhay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaCYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXG4gICAyOlx0LyogTWFydmVsbCBSVlUgRXRoZXJuZXQgZHJpdmVyXG4gICAzOlx0ICpcbiAgIDQ6XHQgKiBDb3B5cmlnaHQgKEMpIDIwMjAgTWFydmVsbC5cbiAgIDU6XHQgKlxuICAgNjpcdCAqL1xuICAgNzpcdFxuICAgODpcdCNpZm5kZWYgT1RYMl9DT01NT05fSFxuICAgOTpcdCNkZWZpbmUgT1RYMl9DT01NT05fSFxuICAxMDpcdFxuICAxMTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2V0aHRvb2wuaFx1MDAzZVxuICAxMjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS5oXHUwMDNlXG4gIDEzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvaW9tbXUuaFx1MDAzZVxuICAxNDpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L25ldF90c3RhbXAuaFx1MDAzZVxuICAxNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3B0cF9jbG9ja19rZXJuZWwuaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVjb3VudGVyLmhcdTAwM2VcbiAgMTc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9zb2MvbWFydmVsbC9zaWxpY29ucy5oXHUwMDNlXG4gIDE4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvc29jL21hcnZlbGwvb2N0ZW9udHgyL2FzbS5oXHUwMDNlXG4gIDE5Olx0I2luY2x1ZGUgXHUwMDNjbmV0L21hY3NlYy5oXHUwMDNlXG4gIDIwOlx0I2luY2x1ZGUgXHUwMDNjbmV0L3BrdF9jbHMuaFx1MDAzZVxuICAyMTpcdCNpbmNsdWRlIFx1MDAzY25ldC9kZXZsaW5rLmhcdTAwM2VcbiAgMjI6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC90aW1lNjQuaFx1MDAzZVxuICAyMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2RpbS5oXHUwMDNlXG4gIDI0Olx0I2luY2x1ZGUgXHUwMDNjdWFwaS9saW51eC9pZl9tYWNzZWMuaFx1MDAzZVxuICAyNTpcdCNpbmNsdWRlIFx1MDAzY25ldC9wYWdlX3Bvb2wvaGVscGVycy5oXHUwMDNlXG4gIDI2Olx0XG4gIDI3Olx0I2luY2x1ZGUgXHUwMDNjbWJveC5oXHUwMDNlXG4gIDI4Olx0I2luY2x1ZGUgXHUwMDNjbnBjLmhcdTAwM2VcbiAgMjk6XHQjaW5jbHVkZSBcJiMzNDtvdHgyX3JlZy5oXCYjMzQ7XG4gIDMwOlx0I2luY2x1ZGUgXCYjMzQ7b3R4Ml90eHJ4LmhcJiMzNDtcbiAgMzE6XHQjaW5jbHVkZSBcJiMzNDtvdHgyX2RldmxpbmsuaFwmIzM0O1xuICAzMjpcdCNpbmNsdWRlIFx1MDAzY3J2dS5oXHUwMDNlXG4gIDMzOlx0I2luY2x1ZGUgXHUwMDNjcnZ1X3RyYWNlLmhcdTAwM2VcbiAgMzQ6XHQjaW5jbHVkZSBcJiMzNDtxb3MuaFwmIzM0O1xuICAzNTpcdCNpbmNsdWRlIFwmIzM0O3JlcC5oXCYjMzQ7XG4gIDM2Olx0I2luY2x1ZGUgXCYjMzQ7Y24xMGtfaXBzZWMuaFwmIzM0O1xuICAzNzpcdCNpbmNsdWRlIFwmIzM0O2NuMjBrLmhcJiMzNDtcbiAgMzg6XHRcbiAgMzk6XHQvKiBJUHY0IGZsYWcgbW9yZSBmcmFnbWVudCBiaXQgKi9cbiAgNDA6XHQjZGVmaW5lIElQVjRfRkxBR19NT1JFXHRcdFx0XHQweDIwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwOTYzCgkJCQkJCQlvdXRwdXQ6IDEyNQoJCQkJCQkJdGhvdWdodHM6IDM5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIEZ1enppbmcgQXBwbGljYWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTt2ZSB0cmFjZWQgdGhlIGluY2x1ZGUgcGF0aDogYCZsdDttYm94LmgmZ3Q7YCByZXNvbHZlcyB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oYCwgd2hpY2ggcHVsbHMgaW4gYGNvbW1vbi5oYC4gVGhpcyBtZWFucyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhgIGlzICpvbmx5KiB1c2VkIHdpdGhpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgQUYgYW5kIE5JQyBkcml2ZXJzLiBUaGF0JiMzOTtzIHRoZSBrZXkuCgpOb3csIHRoZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgY29kZSAqYWN0dWFsbHkqIGJlIGV4ZWN1dGVkIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR0NFPyBGcm9tIHRoZSBpbnN0cnVjdGlvbnMsIEkgcmVtZW1iZXIgdGhhdCBTZWN0aW9uIDIgc3BlY2lmaWNhbGx5IGNhbGxzIG91dCAmIzM0O3N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSwmIzM0OyBhbmQgbGlzdHMgZXhhbXBsZXMgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcyBhbmQgU21hcnROSUNzLiBCaW5nbyEgVGhlIE1hcnZlbGwgT2N0ZW9uVFgyIGlzIGV4YWN0bHkgdGhhdCDigJMgYSBTbWFydE5JQy9uZXR3b3JrIFNvQyAoQ2F2aXVtL01hcnZlbGwgT0NURU9OIFRYMiBSVlUgQUYvUEYvVkYpIHRoYXQgKmRlbWFuZHMqIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSBvciBQQ0llIGRldmljZXMuIEl0JiMzOTtzIG5vdCBlbXVsYXRlZCwgYW5kIGl0JiMzOTtzIG5vdCBhY2Nlc3NpYmxlIHRocm91Z2ggdmlydHVhbCBidXNlcyBvciBhbnkgc2ltdWxhdGVkIGRldmljZXMgaW4gc3RhbmRhcmQgc2V0dXBzLgoKVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIHRvdWNoaW5nIGNvZGUgdGhhdCYjMzk7cyBmdW5kYW1lbnRhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nIHB1cnBvc2VzLiBXZSBuZWVkIHRvIG1hcmsgaXQgYXMgbm90IHdvcnRoIGZ1enppbmcuCgpMZXQmIzM5O3MgdmVyaWZ5IHRoaXMsIGRvdHRpbmcgb3VyIGkmIzM5O3MgYW5kIGNyb3NzaW5nIG91ciB0JiMzOTtzLiBXZSBuZWVkIHRvIHNldCB0aGUgZm9sbG93aW5nOgoKMS4gIGBXb3J0aEZ1enppbmdgOiBgZmFsc2VgLiBEZWZpbml0ZWx5IGZhbHNlLgoyLiAgYEZvY3VzU3ltYm9sc2A6IEFuIGVtcHR5IGxpc3QgKG9yIG51bGwpLCBzaW5jZSBmdXp6aW5nIGlzbiYjMzk7dCBhcHBsaWNhYmxlLgozLiAgYEVuYWJsZUNvbmZpZ3NgOiBBbm90aGVyIGVtcHR5IGxpc3QgKG9yIG51bGwpIGJlY2F1c2Ugd2UmIzM5O3JlIG5vdCBlbmFibGluZyBhbnl0aGluZyBmb3IgZnV6emluZy4KNC4gIGBSZWFzb25pbmdgOiBDb25jaXNlIGV4cGxhbmF0aW9uLCB3aGljaCBJJiMzOTt2ZSBnb3Q6IFRoZSBjaGFuZ2VzIGFyZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgYmVjYXVzZSB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBoYXJkd2FyZS9BU0lDLCBhbmQgdGhhdCBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gUUVNVS9HQ0UuCgpBbHJpZ2h0LCB3aXRoIHRoYXQgY29uZmlybWVkLCBJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTEgMDM6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBETUEgYWxsb2NhdGlvbiBhbmQgbWVtb3J5IG1hbmFnZW1lbnQgaGVscGVycyAocW1lbV9hbGxvYywgb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQsIGV0Yy4pIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgKFJlc291cmNlIFZpcnR1YWxpemF0aW9uIFVuaXQpIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgc3BlY2lmaWMgdG8gTWFydmVsbCBPY3Rlb25UWDIgU21hcnROSUMgLyBTb0MgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhbmQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzExIDAzOjM5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOToxMi44MDkyMzgwMDlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjgzMzIxNDY0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIERNQSBhbGxvY2F0aW9uIGFuZCBtZW1vcnkgbWFuYWdlbWVudCBoZWxwZXJzIChxbWVtX2FsbG9jLCBvdHgyX2RtYV9hbGxvY19jb2hlcmVudCwgZXRjLikgaW4gdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSAoUmVzb3VyY2UgVmlydHVhbGl6YXRpb24gVW5pdCkgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyBzcGVjaWZpYyB0byBNYXJ2ZWxsIE9jdGVvblRYMiBTbWFydE5JQyAvIFNvQyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGFuZCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgUUVNVSBvciBHQ0UgZnV6emluZyBlbnZpcm9ubWVudHMsIG1ha2luZyB0aGUgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOToxMi44MDkyNDUxMjlaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1Mjc5OTI1NzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhMGI5MzkzZWNkNjg1ODg0YzJhMWNkNDdlNDNlNjRiM2EwYmE5NGY4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgU2VwIDExIDAzOjM5OjEwIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhcXG5pbmRleCA3Nzk0MTNhMzgzYjc0Li43OGU0MjU0OWQ5OTA4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhcXG5AQCAtNyw2ICs3LDEwIEBAXFxuICNpZm5kZWYgQ09NTU9OX0hcXG4gI2RlZmluZSBDT01NT05fSFxcbiBcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RtYS1tYXBwaW5nLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9nZnAuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L21tLmhcXHUwMDNlXFxuK1xcbiAjaW5jbHVkZSBcXFwicnZ1X3N0cnVjdC5oXFxcIlxcbiBcXG4gI2RlZmluZSBPVFgyX0FMSUdOXFx0XFx0XFx0MTI4ICAvKiBBbGlnbiB0byBjYWNoZWxpbmUgKi9cXG5AQCAtNDQsNiArNDgsMzMgQEAgc3RydWN0IHFtZW0ge1xcbiBcXHR1MzJcXHRcXHRxc2l6ZTtcXG4gfTtcXG4gXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCAqb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpXFxuK3tcXG4rXFx0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcXG4rXFx0dm9pZCAqdmFkZHI7XFxuK1xcbitcXHR2YWRkciA9IGt6YWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7XFxuK1xcdGlmICghdmFkZHIpXFxuK1xcdFxcdHJldHVybiBOVUxMO1xcbitcXG4rXFx0ZG1hX2FkZHIgPSBkbWFfbWFwX3NpbmdsZShkZXYsIHZhZGRyLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7XFxuK1xcdGlmIChkbWFfbWFwcGluZ19lcnJvcihkZXYsIGRtYV9hZGRyKSkge1xcbitcXHRcXHRrZnJlZSh2YWRkcik7XFxuK1xcdFxcdHJldHVybiBOVUxMO1xcbitcXHR9XFxuK1xcbitcXHQqZG1hX2hhbmRsZSA9IGRtYV9hZGRyO1xcbitcXHRyZXR1cm4gdmFkZHI7XFxuK31cXG4rXFxuK3N0YXRpYyBpbmxpbmUgdm9pZCBvdHgyX2RtYV9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsXFxuK1xcdFxcdFxcdFxcdFxcdCAgdm9pZCAqdmFkZHIsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSlcXG4re1xcbitcXHRkbWFfdW5tYXBfc2luZ2xlKGRldiwgZG1hX2hhbmRsZSwgc2l6ZSwgRE1BX0JJRElSRUNUSU9OQUwpO1xcbitcXHRrZnJlZSh2YWRkcik7XFxuK31cXG4rXFxuIHN0YXRpYyBpbmxpbmUgaW50IHFtZW1fYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcW1lbSAqKnEsXFxuIFxcdFxcdFxcdCAgICAgaW50IHFzaXplLCBpbnQgZW50cnlfc3opXFxuIHtcXG5AQCAtNjAsOCArOTEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcXG4gXFxuIFxcdHFtZW0tXFx1MDAzZWVudHJ5X3N6ID0gZW50cnlfc3o7XFxuIFxcdHFtZW0tXFx1MDAzZWFsbG9jX3N6ID0gKHFzaXplICogZW50cnlfc3opICsgT1RYMl9BTElHTjtcXG4tXFx0cW1lbS1cXHUwMDNlYmFzZSA9IGRtYV9hbGxvY19hdHRycyhkZXYsIHFtZW0tXFx1MDAzZWFsbG9jX3N6LCBcXHUwMDI2cW1lbS1cXHUwMDNlaW92YSxcXG4tXFx0XFx0XFx0XFx0ICAgICBHRlBfS0VSTkVMLCBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTKTtcXG4rXFxuK1xcdGlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLVxcdTAwM2VhbGxvY19zeikpIFxcdTAwM2UgTUFYX1BBR0VfT1JERVIpXFxuK1xcdFxcdHJldHVybiAtRU5PTUVNO1xcbitcXG4rXFx0cW1lbS1cXHUwMDNlYmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS1cXHUwMDNlYWxsb2Nfc3osIFxcdTAwMjZxbWVtLVxcdTAwM2Vpb3ZhKTtcXG4gXFx0aWYgKCFxbWVtLVxcdTAwM2ViYXNlKVxcbiBcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4gXFxuQEAgLTgwLDEwICsxMTQsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcW1lbV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHFtZW0gKnFtZW0pXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuIFxcdGlmIChxbWVtLVxcdTAwM2ViYXNlKVxcbi1cXHRcXHRkbWFfZnJlZV9hdHRycyhkZXYsIHFtZW0tXFx1MDAzZWFsbG9jX3N6LFxcbi1cXHRcXHRcXHQgICAgICAgcW1lbS1cXHUwMDNlYmFzZSAtIHFtZW0tXFx1MDAzZWFsaWduLFxcbi1cXHRcXHRcXHQgICAgICAgcW1lbS1cXHUwMDNlaW92YSAtIHFtZW0tXFx1MDAzZWFsaWduLFxcbi1cXHRcXHRcXHQgICAgICAgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUyk7XFxuK1xcdFxcdG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBxbWVtLVxcdTAwM2VhbGxvY19zeixcXG4rXFx0XFx0XFx0XFx0ICAgICAgIHFtZW0tXFx1MDAzZWJhc2UgLSBxbWVtLVxcdTAwM2VhbGlnbixcXG4rXFx0XFx0XFx0XFx0ICAgICAgIHFtZW0tXFx1MDAzZWlvdmEgLSBxbWVtLVxcdTAwM2VhbGlnbik7XFxuIFxcdGRldm1fa2ZyZWUoZGV2LCBxbWVtKTtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6MTQuMzM4MjA4MjUzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjo0NTMwNDIyNDUyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTBiOTM5M2VjZDY4NTg4NGMyYTFjZDQ3ZTQzZTY0YjNhMGJhOTRmOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDExIDAzOjM5OjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuaW5kZXggNzc5NDEzYTM4M2I3NC4uNzhlNDI1NDlkOTkwOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaFxuQEAgLTcsNiArNywxMCBAQFxuICNpZm5kZWYgQ09NTU9OX0hcbiAjZGVmaW5lIENPTU1PTl9IXG4gXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvZG1hLW1hcHBpbmcuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L2dmcC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbW0uaFx1MDAzZVxuK1xuICNpbmNsdWRlIFwicnZ1X3N0cnVjdC5oXCJcbiBcbiAjZGVmaW5lIE9UWDJfQUxJR05cdFx0XHQxMjggIC8qIEFsaWduIHRvIGNhY2hlbGluZSAqL1xuQEAgLTQ0LDYgKzQ4LDMzIEBAIHN0cnVjdCBxbWVtIHtcbiBcdHUzMlx0XHRxc2l6ZTtcbiB9O1xuIFxuK3N0YXRpYyBpbmxpbmUgdm9pZCAqb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcbitcdFx0XHRcdFx0ICAgIGRtYV9hZGRyX3QgKmRtYV9oYW5kbGUpXG4re1xuK1x0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbitcdHZvaWQgKnZhZGRyO1xuK1xuK1x0dmFkZHIgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpO1xuK1x0aWYgKCF2YWRkcilcbitcdFx0cmV0dXJuIE5VTEw7XG4rXG4rXHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKGRldiwgdmFkZHIsIHNpemUsIERNQV9CSURJUkVDVElPTkFMKTtcbitcdGlmIChkbWFfbWFwcGluZ19lcnJvcihkZXYsIGRtYV9hZGRyKSkge1xuK1x0XHRrZnJlZSh2YWRkcik7XG4rXHRcdHJldHVybiBOVUxMO1xuK1x0fVxuK1xuK1x0KmRtYV9oYW5kbGUgPSBkbWFfYWRkcjtcbitcdHJldHVybiB2YWRkcjtcbit9XG4rXG4rc3RhdGljIGlubGluZSB2b2lkIG90eDJfZG1hX2ZyZWVfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSxcbitcdFx0XHRcdFx0ICB2b2lkICp2YWRkciwgZG1hX2FkZHJfdCBkbWFfaGFuZGxlKVxuK3tcbitcdGRtYV91bm1hcF9zaW5nbGUoZGV2LCBkbWFfaGFuZGxlLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7XG4rXHRrZnJlZSh2YWRkcik7XG4rfVxuK1xuIHN0YXRpYyBpbmxpbmUgaW50IHFtZW1fYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcW1lbSAqKnEsXG4gXHRcdFx0ICAgICBpbnQgcXNpemUsIGludCBlbnRyeV9zeilcbiB7XG5AQCAtNjAsOCArOTEsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcbiBcbiBcdHFtZW0tXHUwMDNlZW50cnlfc3ogPSBlbnRyeV9zejtcbiBcdHFtZW0tXHUwMDNlYWxsb2Nfc3ogPSAocXNpemUgKiBlbnRyeV9zeikgKyBPVFgyX0FMSUdOO1xuLVx0cW1lbS1cdTAwM2ViYXNlID0gZG1hX2FsbG9jX2F0dHJzKGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeiwgXHUwMDI2cW1lbS1cdTAwM2Vpb3ZhLFxuLVx0XHRcdFx0ICAgICBHRlBfS0VSTkVMLCBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTKTtcbitcbitcdGlmIChnZXRfb3JkZXIoUEFHRV9BTElHTihxbWVtLVx1MDAzZWFsbG9jX3N6KSkgXHUwMDNlIE1BWF9QQUdFX09SREVSKVxuK1x0XHRyZXR1cm4gLUVOT01FTTtcbitcbitcdHFtZW0tXHUwMDNlYmFzZSA9IG90eDJfZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeiwgXHUwMDI2cW1lbS1cdTAwM2Vpb3ZhKTtcbiBcdGlmICghcW1lbS1cdTAwM2ViYXNlKVxuIFx0XHRyZXR1cm4gLUVOT01FTTtcbiBcbkBAIC04MCwxMCArMTE0LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHFtZW1fZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICpxbWVtKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRpZiAocW1lbS1cdTAwM2ViYXNlKVxuLVx0XHRkbWFfZnJlZV9hdHRycyhkZXYsIHFtZW0tXHUwMDNlYWxsb2Nfc3osXG4tXHRcdFx0ICAgICAgIHFtZW0tXHUwMDNlYmFzZSAtIHFtZW0tXHUwMDNlYWxpZ24sXG4tXHRcdFx0ICAgICAgIHFtZW0tXHUwMDNlaW92YSAtIHFtZW0tXHUwMDNlYWxpZ24sXG4tXHRcdFx0ICAgICAgIERNQV9BVFRSX0ZPUkNFX0NPTlRJR1VPVVMpO1xuK1x0XHRvdHgyX2RtYV9mcmVlX2NvaGVyZW50KGRldiwgcW1lbS1cdTAwM2VhbGxvY19zeixcbitcdFx0XHRcdCAgICAgICBxbWVtLVx1MDAzZWJhc2UgLSBxbWVtLVx1MDAzZWFsaWduLFxuK1x0XHRcdFx0ICAgICAgIHFtZW0tXHUwMDNlaW92YSAtIHFtZW0tXHUwMDNlYWxpZ24pO1xuIFx0ZGV2bV9rZnJlZShkZXYsIHFtZW0pO1xuIH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjE0LjMzODIyNTAyM1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjEwMTU5NDE4MjM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkluaXRpYWwgQXNzZXNzbWVudCBvZiBQYXRjaCBhbmQgSGFyZHdhcmUgQ29udGV4dCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NvbW1vbi5oYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoYXQgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBBRiBldGhlcm5ldCBkcml2ZXIuIEhtbSwgSSB3b25kZXIgaWYgdGhpcyBwYXJ0aWN1bGFyIGhhcmR3YXJlIGlzIGV2ZW4gKmFjY2Vzc2libGUqIHdpdGhpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAgb3IgZXZlbiBvbiBHQ0U/IEl0J3MgYSBiaXQgbmljaGUuIEknbGwgbmVlZCB0byBkaWcgaW50byB0aGUgZHJpdmVyIGNvZGUgaXRzZWxmLCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYEtjb25maWdgIGZpbGVzLlxuXG5UaGlzJ2xsIGludm9sdmUgc29tZSBncmVwcGluZyBhbmQgZ2VuZXJhbCBpbnZlc3RpZ2F0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBjaGFuZ2VzIGFuZCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvZGUgaXMgcmVsZXZhbnQgdG8gbXkgY3VycmVudCBjb25jZXJucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY0NSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6MjQuNDk3NjQ1NTVaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMDgxOTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk9DVEVPTlRYMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo2OmNvbmZpZyBPQ1RFT05UWDJfTUJPWFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNy1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjk6Y29uZmlnIE9DVEVPTlRYMl9BRlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctMTAtXFx0dHJpc3RhdGUgXFxcIk1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzoxMTpcXHRzZWxlY3QgT0NURU9OVFgyX01CT1hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTEyLVxcdHNlbGVjdCBORVRfREVWTElOS1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZz0yMj1jb25maWcgTkRDX0RJU19EWU5BTUlDX0NBQ0hJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTIzLVxcdGJvb2wgXFxcIkRpc2FibGUgY2FjaGluZyBvZiBkeW5hbWljIGVudHJpZXMgaW4gTkRDXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MjQ6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfQUZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTI1LVxcdGRlZmF1bHQgblxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjMxOmNvbmZpZyBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTMyLVxcdHRyaXN0YXRlIFxcXCJNYXJ2ZWxsIE9jdGVvblRYMiBOSUMgUGh5c2ljYWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6MzM6XFx0c2VsZWN0IE9DVEVPTlRYMl9NQk9YXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy0zNC1cXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWctNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZzo0NTpjb25maWcgT0NURU9OVFgyX1ZGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy00Ni1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBPY3Rlb25UWDIgTklDIFZpcnR1YWwgRnVuY3Rpb24gZHJpdmVyXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc6NDc6XFx0ZGVwZW5kcyBvbiBPQ1RFT05UWDJfUEZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnLTQ4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL0tjb25maWc9NTE9Y29uZmlnIFJWVV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01Mi1cXHR0cmlzdGF0ZSBcXFwiTWFydmVsbCBSVlUgRS1Td2l0Y2ggc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9LY29uZmlnOjUzOlxcdGRlcGVuZHMgb24gT0NURU9OVFgyX1BGXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvS2NvbmZpZy01NC1cXHRkZWZhdWx0IG1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6NjpvYmotJChDT05GSUdfT0NURU9OVFgyX01CT1gpICs9IGFmL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9BRikgKz0gYWYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX1BGKSArPSBuaWMvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9NYWtlZmlsZT02PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9NQk9YKSArPSBydnVfbWJveC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvTWFrZWZpbGU6ODpvYmotJChDT05GSUdfT0NURU9OVFgyX0FGKSArPSBydnVfYWYub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL01ha2VmaWxlLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYz02Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgY2d4X2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6Njc6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX0NHWCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy02OC1cXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfQ04xMEtfUlBNLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTUtIC8qIFBDSSBkZXZpY2UgSURzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4Lmg6MTY6I2RlZmluZVxcdFBDSV9ERVZJRF9PQ1RFT05UWDJfQ0dYXFx0XFx0MHhBMDU5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmgtMTctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MTU0PURFRklORV9TSE9XX0FUVFJJQlVURShucGNfbWNhbV9sYXlvdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0xNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE1NjojZGVmaW5lIF9fT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX0ZPUFMoX19uYW1lKVxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTU3LXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIF9fbmFtZSAjIyBfZm9wcyA9IHtcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoxNjU6I2RlZmluZSBERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShfX25hbWUsIF9fc2l6ZSlcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTE2Ni1zdGF0aWMgaW50IF9fbmFtZSAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcwLX1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjE3MTpfX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9GT1BTKF9fbmFtZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmMtMTcyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jPTE4MT1zdGF0aWMgaW50IG5wY19tY2FtX2RzdGF0c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdW51c2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0Mi0jZGVmaW5lIFRPVEFMX1NaIChNQVhfTlVNX0JBTktTICogTUFYX05VTV9TVUJfQkFOS1MgKiBNQVhfU1VCQkFOS19ERVBUSCAqIDY0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYzoyNDM6REVGSU5FX09DVEVPTlRYMl9ERUJVR0ZTX0FUVFJJQlVURV9XSVRIX1NJWkUobnBjX21jYW1fZHN0YXRzLCBUT1RBTF9TWik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jLTI0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9kZWJ1Z2ZzLmM9MjQ1PXN0YXRpYyBpbnQgbnBjX21jYW1fbWlzbWF0Y2hfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnVudXNlZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODQtLyogXFxcIiV1XFxcXHQlZFxcXFx0JXVcXFxcblxcXCIgbmVlZHMgbGVzcyB0aGFuIDY0IGNoYXJhY3RlcnMgdG8gcHJpbnQuICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvZGVidWdmcy5jOjI4NTpERUZJTkVfT0NURU9OVFgyX0RFQlVHRlNfQVRUUklCVVRFX1dJVEhfU0laRShucGNfbWNhbV9taXNtYXRjaCwgVE9UQUxfU1opO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL2RlYnVnZnMuYy0yODYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzoyMTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQXFx0XFx0XFx0MHhBMDBDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtMjItI2RlZmluZSBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk4eHhfUFRQXFx0XFx0MHhCMTAwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy0yNy0jZGVmaW5lIFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE9fUFRQXFx0MHhCNjAwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6Mjg6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JTVFxcdFxcdFxcdDB4QTA4NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTI5LSNkZWZpbmUgUENJX0RFVklEX0NOMTBLX1BUUFxcdFxcdFxcdDB4QTA5RVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM9NTg5PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwdHBfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTA6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTkxLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTItXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTh4eF9QVFApIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmM6NTkzOlxcdHsgUENJX0RFVklDRV9TVUIoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUFRQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5NC1cXHRcXHRcXHQgUENJX1ZFTkRPUl9JRF9DQVZJVU0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNTk1LVxcdFxcdFxcdCBQQ0lfU1VCU1lTX0RFVklEX09DVFgyXzk2WFhfUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjU5NjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy01OTctXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTU5OC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NVhYX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo1OTk6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjAwLVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDEtXFx0XFx0XFx0IFBDSV9TVUJTWVNfREVWSURfT0NUWDJfOTVYWE5fUFRQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jOjYwMjpcXHR7IFBDSV9ERVZJQ0VfU1VCKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1BUUCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYy02MDMtXFx0XFx0XFx0IFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jLTYwNC1cXHRcXHRcXHQgUENJX1NVQlNZU19ERVZJRF9PQ1RYMl85NU1NX1BUUCkgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYzo2MDU6XFx0eyBQQ0lfREVWSUNFX1NVQihQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9QVFAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMtNjA2LVxcdFxcdFxcdCBQQ0lfVkVORE9SX0lEX0NBVklVTSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBydnVfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzo0NTpcXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9DQVZJVU0sIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTQ2LVxcdHsgMCwgfSAgLyogZW5kIG9mIHRhYmxlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYz05Mjc9c3RhdGljIHZvaWQgcnZ1X2dldF9sYmtfYnVmc2l6ZShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy05MzMtXFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjkzNDpcXHRcXHRcXHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtOTM1LVxcdGlmICghcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NDc9aW50IHJ2dV9nZXRfbnVtX2xia19jaGFucyh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYzozNDUzOlxcdHBkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9MQkssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ1NC1cXHRcXHRcXHQgICAgICBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0NzAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ3MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkZcXHQweEEwRjhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0zNDcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jPTM0NzM9c3RhdGljIGludCBydnVfZW5hYmxlX3NyaW92KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTM0OTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MzQ5NTpcXHRpZiAocnZ1LVxcdTAwM2V2Zl9kZXZpZCA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmMtMzQ5Ni1cXHRcXHRjaGFucyA9IHJ2dV9nZXRfbnVtX2xia19jaGFucygpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmgtMjMtLyogUENJIGRldmljZSBJRHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNDojZGVmaW5lXFx0UENJX0RFVklEX09DVEVPTlRYMl9SVlVfQUZcXHRcXHQweEEwNjVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaDoyNTojZGVmaW5lXFx0UENJX0RFVklEX09DVEVPTlRYMl9MQktcXHRcXHRcXHQweEEwNjFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0yNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jPTM5Mj1zdGF0aWMgdm9pZCBydnVfbGJrX3NldF9jaGFubmVscyhzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY24xMGsuYy00MTUtXFx0XFx0cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfQ0FWSVVNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9jbjEway5jOjQxNjpcXHRcXHRcXHRcXHQgICAgICBQQ0lfREVWSURfT0NURU9OVFgyX0xCSywgcGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NuMTBrLmMtNDE3LVxcdFxcdGlmICghcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM9MjgwNj1zdGF0aWMgdm9pZCBydnVfZGJnX25wYV9pbml0KHN0cnVjdCBydnUgKnJ2dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjgyNS0vKiBQZXItbG1hYyBDR1ggZGVidWdmcyBmaWxlcyBuZWVkIGJvdGggUlZVIGFuZCBDR1ggaGFuZGxlOyBpbm9kZS1cXHUwMDNlaV9wcml2YXRlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzoyODI2OiAqIHBvaW50cyBoZXJlIHNvIHNlcV9maWxlIG9wcyBhdm9pZCBwY2lfZ2V0X2RldmljZShQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRikuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy0yODI3LSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX09DVEVPTlRYMl9QRikgKz0gcnZ1X25pY3BmLm8gb3R4Ml9wdHAub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19PQ1RFT05UWDJfVkYpICs9IHJ2dV9uaWN2Zi5vIG90eDJfcHRwLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGUtOC1vYmotJChDT05GSUdfUlZVX0VTV0lUQ0gpICs9IHJ2dV9yZXAub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDItLyogUENJIGRldmljZSBJRHMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0MzojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1BGICAgICAgICAgICAgICAweEEwNjNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo0NDojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX1ZGXFx0XFx0MHhBMDY0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NDU6I2RlZmluZSBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGXFx0XFx0MHhBMEY4XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC01MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo1MTojZGVmaW5lIFBDSV9ERVZJRF9PQ1RFT05UWDJfU0RQX1JFUFxcdFxcdDB4QTBGN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTUyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg9NTk3PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19vdHgyX2xia3ZmKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTU5OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg6NTk5OlxcdHJldHVybiAocGRldi1cXHUwMDNlZGV2aWNlID09IFBDSV9ERVZJRF9PQ1RFT05UWDJfUlZVX0FGVkYpIHx8XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjAwLVxcdFxcdChwZGV2LVxcdTAwM2VkZXZpY2UgPT0gUENJX0RFVklEX1JWVV9SRVApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmg9NjE1PXN0YXRpYyBpbmxpbmUgYm9vbCBpc19vdHgyX3NkcF9yZXAoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDo2MTc6XFx0cmV0dXJuIHBkZXYtXFx1MDAzZWRldmljZSA9PSBQQ0lfREVWSURfT0NURU9OVFgyX1NEUF9SRVA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtNjE4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIG90eDJfcGZfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jOjM3OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9SVlVfUEYpIH0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0zOC1cXHR7IDAsIH0gIC8qIGVuZCBvZiB0YWJsZSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYz0yMj1zdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3R4Ml92Zl9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjM6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9BRlZGKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MjQ6XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQ0FWSVVNLCBQQ0lfREVWSURfT0NURU9OVFgyX1JWVV9WRikgfSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jOjI1OlxcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0NBVklVTSwgUENJX0RFVklEX09DVEVPTlRYMl9TRFBfUkVQKSB9LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmMtMjYtXFx0eyB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjI0LjYwMDczMTU0M1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE5NzgyMTI1MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhgLiBUaGlzIGlzIG9idmlvdXNseSBhIGtleSBoZWFkZXIgZmlsZSBmb3IgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBBZG1pbiBGdW5jdGlvbiBkcml2ZXIuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGZpbGUgaXMgdXNlZCBhbmQgd2hhdCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtIHJlbHkgb24gaXQuIExldCdzIHNlZSB3aG8ncyBpbmNsdWRpbmcgYGNvbW1vbi5oYC4gTWF5YmUgSSBzaG91bGQgYWxzbyBsb29rIGZvciBjYWxscyB0byBmdW5jdGlvbnMgbGlrZSBgcW1lbV9hbGxvY2Agb3Igb3RoZXIga2V5IGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIGl0J3MgZnVuY3Rpb25hbGl0eS4gVGhpcyB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgb3ZlcmFsbCBkcml2ZXIncyBhcmNoaXRlY3R1cmUgYW5kIGhvdyB0aGlzIGBjb21tb24uaGAgZml0cyBpbnRvIHRoZSBwaWN0dXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDAwNCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjI2LjU3ODk0NzEyNVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTM1NTMyNTEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicW1lbV9hbGxvY1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYz0yNjg9c3RhdGljIGludCBydnVfYWxsb2NfbWJveF9tZW1vcnkoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgdHlwZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jLTI4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYzoyODg6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNm1ib3hfYWRkciwgbmRldnMsIG1ib3hfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtMjg5LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jbjIway9tYm94X2luaXQuYz00MDg9aW50IHJ2dV9hbGxvY19jaW50X3FpbnRfbWVtKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHJ2dV9wZnZmICpwZnZmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDI3LVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKChjdHhfY2ZnIFxcdTAwM2VcXHUwMDNlIDI0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmM6NDI4OlxcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVxcdTAwM2VkZXYsIFxcdTAwMjZwZnZmLVxcdTAwM2VjcV9pbnRzX2N0eCwgcWludHMsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL2NuMjBrL21ib3hfaW5pdC5jLTQyOS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDM4LVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKChjdHhfY2ZnIFxcdTAwM2VcXHUwMDNlIDIwKSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmM6NDM5OlxcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVxcdTAwM2VkZXYsIFxcdTAwMjZwZnZmLVxcdTAwM2VuaXhfcWludHNfY3R4LCBxaW50cywgaHdjdHhfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY24yMGsvbWJveF9pbml0LmMtNDQwLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaD03MT1zdGF0aWMgaW5saW5lIHZvaWQgb3R4Ml9kbWFfZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmgtNzctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmg6Nzg6c3RhdGljIGlubGluZSBpbnQgcW1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBxbWVtICoqcSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaC03OS1cXHRcXHRcXHQgICAgIGludCBxc2l6ZSwgaW50IGVudHJ5X3N6KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM9MTIzNj1pbnQgcnZ1X2FxX2FsbG9jKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IGFkbWluX3F1ZXVlICoqYWRfcXVldWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjQ3LVxcdC8qIEFsbG9jIG1lbW9yeSBmb3IgaW5zdHJ1Y3Rpb25zIGkuZSBBUSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jOjEyNDg6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNmFxLVxcdTAwM2VpbnN0LCBxc2l6ZSwgaW5zdF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjQ5LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5jLTEyNTQtXFx0LyogQWxsb2MgbWVtb3J5IGZvciByZXN1bHRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1LmM6MTI1NTpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2YXEtXFx1MDAzZXJlcywgcXNpemUsIHJlc19zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuYy0xMjU2LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz05NDQ9c3RhdGljIGludCBuaXhsZl9yc3NfY3R4X2luaXQoc3RydWN0IHJ2dSAqcnZ1LCBpbnQgYmxrYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy05NTctXFx0LyogQWxsb2MgTklYIFJTUyBIVyBjb250ZXh0IG1lbW9yeSBhbmQgY29uZmlnIHRoZSBiYXNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjk1ODpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlcnNzX2N0eCwgbnVtX2luZGljZXMsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy05NTktXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYz0xNTEyPWludCBydnVfbWJveF9oYW5kbGVyX25peF9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTU4Ni1cXHRod2N0eF9zaXplID0gMVVMIFxcdTAwM2NcXHUwMDNjICgoY3R4X2NmZyBcXHUwMDNlXFx1MDAzZSA0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE1ODc6XFx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlcnFfY3R4LCByZXEtXFx1MDAzZXJxX2NudCwgaHdjdHhfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE1ODgtXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MDUtXFx0aHdjdHhfc2l6ZSA9IDFVTCBcXHUwMDNjXFx1MDAzYyAoY3R4X2NmZyBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2MDY6XFx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlc3FfY3R4LCByZXEtXFx1MDAzZXNxX2NudCwgaHdjdHhfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MDctXFx0aWYgKHJjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2MjMtXFx0aHdjdHhfc2l6ZSA9IDFVTCBcXHUwMDNjXFx1MDAzYyAoKGN0eF9jZmcgXFx1MDAzZVxcdTAwM2UgOCkgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNjI0OlxcdHJjID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZWNxX2N0eCwgcmVxLVxcdTAwM2VjcV9jbnQsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjI1LVxcdGlmIChyYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYy0xNjUxLVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKChjdHhfY2ZnIFxcdTAwM2VcXHUwMDNlIDI0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jOjE2NTI6XFx0cmMgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlY3FfaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTY1My1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTY2NS1cXHRod2N0eF9zaXplID0gMVVMIFxcdTAwM2NcXHUwMDNjICgoY3R4X2NmZyBcXHUwMDNlXFx1MDAzZSAyMCkgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzoxNjY2OlxcdHJjID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZW5peF9xaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMTY2Ny1cXHRpZiAocmMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM9MzcyMj1zdGF0aWMgaW50IG5peF9zZXR1cF9tY2FzdChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBuaXhfaHcgKm5peF9odywgaW50IGJsa2FkZHIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc0NS1cXHQvKiBBbGxvYyBtZW1vcnkgZm9yIG11bHRpY2FzdC9taXJyb3IgcmVwbGljYXRpb24gZW50cmllcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9uaXguYzozNzQ2OlxcdGVyciA9IHFtZW1fYWxsb2MocnZ1LVxcdTAwM2VkZXYsIFxcdTAwMjZtY2FzdC1cXHUwMDNlbWNlX2N0eCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc0Ny1cXHRcXHRcXHQgbWNhc3QtXFx1MDAzZW1jZV9jb3VudGVyW05JWF9NQ0FTVF9JTkdSRVNTXS5tYXgsIHNpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTM3NjItXFx0c2l6ZSA9IHJ2dV9yZWFkNjQocnZ1LCBibGthZGRyLCBOSVhfQUZfTUNfTUlSUk9SX0NPTlNUKSBcXHUwMDI2IDB4RkZGRjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6Mzc2MzpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2bWNhc3QtXFx1MDAzZW1jYXN0X2J1ZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmMtMzc2NC1cXHRcXHRcXHQgKDhVTCBcXHUwMDNjXFx1MDAzYyBNQ19CVUZfQ05UKSwgc2l6ZSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmM9MzI3PWludCBydnVfbWJveF9oYW5kbGVyX25wYV9sZl9hbGxvYyhzdHJ1Y3QgcnZ1ICpydnUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzY2LVxcdGh3Y3R4X3NpemUgPSAxVUwgXFx1MDAzY1xcdTAwM2MgKGN0eF9jZmcgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozNjc6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZWF1cmFfY3R4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYy0zNjgtXFx0XFx0XFx0IE5QQV9BVVJBX0NPVU5UKHJlcS1cXHUwMDNlYXVyYV9zeiksIGh3Y3R4X3NpemUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jLTM3OC1cXHRod2N0eF9zaXplID0gMVVMIFxcdTAwM2NcXHUwMDNjICgoY3R4X2NmZyBcXHUwMDNlXFx1MDAzZSA0KSBcXHUwMDI2IDB4Rik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYS5jOjM3OTpcXHRlcnIgPSBxbWVtX2FsbG9jKHJ2dS1cXHUwMDNlZGV2LCBcXHUwMDI2cGZ2Zi1cXHUwMDNlcG9vbF9jdHgsIHJlcS1cXHUwMDNlbnJfcG9vbHMsIGh3Y3R4X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYy0zODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYy0zOTMtXFx0aHdjdHhfc2l6ZSA9IDFVTCBcXHUwMDNjXFx1MDAzYyAoKGN0eF9jZmcgXFx1MDAzZVxcdTAwM2UgOCkgXFx1MDAyNiAweEYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGEuYzozOTQ6XFx0ZXJyID0gcW1lbV9hbGxvYyhydnUtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZW5wYV9xaW50c19jdHgsIHFpbnRzLCBod2N0eF9zaXplKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbnBhLmMtMzk1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYz00Mz1pbnQgY24xMGtfbG10c3RfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYy02NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuYzo2NjpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBmdmYtXFx1MDAzZWR5bmNfbG10LCBwZnZmLVxcdTAwM2V0b3RfbG10X2xpbmVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEway5jLTY3LVxcdFxcdFxcdCBMTVRfTElORV9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jPTY2Nj1zdGF0aWMgaW50IGNuMTBrX2lwc2VjX291dGJfYWRkX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX2lwc2VjLmM6NjgxOlxcdGVyciA9IHFtZW1fYWxsb2MocGYtXFx1MDAzZWRldiwgXFx1MDAyNnNhX2luZm8sIHBmLVxcdTAwM2VpcHNlYy5zYV9zaXplLCBPVFgyX0FMSUdOKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGtfaXBzZWMuYy02ODItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jPTUyMD1zdGF0aWMgaW50IGNuMjBrX2F1cmFfYXFfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIGludCBhdXJhX2lkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmMtNTMzLVxcdGlmICghcG9vbC1cXHUwMDNlZmNfYWRkcikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jOjUzNDpcXHRcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBvb2wtXFx1MDAzZWZjX2FkZHIsIDEsIE9UWDJfQUxJR04pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTUzNS1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM9NTk3PXN0YXRpYyBpbnQgY24yMGtfcG9vbF9hcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHBvb2xfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYy02MDctXFx0LyogQWxsb2MgbWVtb3J5IGZvciBzdGFjayB3aGljaCBpcyB1c2VkIHRvIHN0b3JlIGJ1ZmZlciBwb2ludGVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jOjYwODpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBvb2wtXFx1MDAzZXN0YWNrLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTYwOS1cXHRcXHRcXHQgc3RhY2tfcGFnZXMsIHBmdmYtXFx1MDAzZWh3LnN0YWNrX3BnX2J5dGVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTk2MT1pbnQgb3R4Ml9zcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHFpZHgsIHUxNiBzcWJfYXVyYSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzo5NzQ6XFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVxcdTAwM2VkZXYsIFxcdTAwMjZzcS1cXHUwMDNlc3FlLCAxLCBzcS1cXHUwMDNlc3FlX3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk3NS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTkxLVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjk5MjpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnNxLVxcdTAwM2VzcWVfcmluZywgcXNldC1cXHUwMDNlc3FlX2NudCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy05OTMtXFx0XFx0XFx0IHNxLVxcdTAwM2VzcWVfc2l6ZSAqIDIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtOTk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjk5NzpcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnNxLVxcdTAwM2VjcHRfcmVzcCwgcXNldC1cXHUwMDNlc3FlX2NudCwgNjQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTk5OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAwMS1cXHRpZiAocWlkeCBcXHUwMDNjIHBmdmYtXFx1MDAzZWh3LnR4X3F1ZXVlcykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jOjEwMDI6XFx0XFx0ZXJyID0gcW1lbV9hbGxvYyhwZnZmLVxcdTAwM2VkZXYsIFxcdTAwMjZzcS1cXHUwMDNldHNvX2hkcnMsIHFzZXQtXFx1MDAzZXNxZV9jbnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTAwMy1cXHRcXHRcXHRcXHQgVFNPX0hFQURFUl9TSVpFKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEwMTMtXFx0aWYgKHBmdmYtXFx1MDAzZXB0cCBcXHUwMDI2XFx1MDAyNiBxaWR4IFxcdTAwM2MgcGZ2Zi1cXHUwMDNlaHcudHhfcXVldWVzKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTAxNDpcXHRcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnNxLVxcdTAwM2V0aW1lc3RhbXBzLCBxc2V0LVxcdTAwM2VzcWVfY250LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEwMTUtXFx0XFx0XFx0XFx0IHNpemVvZigqc3EtXFx1MDAzZXRpbWVzdGFtcHMpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTEwNTE9aW50IG90eDJfY3FfaW5pdChzdHJ1Y3Qgb3R4Ml9uaWMgKnBmdmYsIHUxNiBxaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTA5OS1cXHQvKiBBbGxvY2F0ZSBtZW1vcnkgZm9yIENRRXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxMTAwOlxcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cXHUwMDNlZGV2LCBcXHUwMDI2Y3EtXFx1MDAzZWNxZSwgY3EtXFx1MDAzZWNxZV9jbnQsIGNxLVxcdTAwM2VjcWVfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTEwMS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM9MTM3Nj1pbnQgb3R4Ml9hdXJhX2FxX2luaXQoc3RydWN0IG90eDJfbmljICpwZnZmLCBpbnQgYXVyYV9pZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzODgtXFx0aWYgKCFwb29sLVxcdTAwM2VmY19hZGRyKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmM6MTM4OTpcXHRcXHRlcnIgPSBxbWVtX2FsbG9jKHBmdmYtXFx1MDAzZWRldiwgXFx1MDAyNnBvb2wtXFx1MDAzZWZjX2FkZHIsIDEsIE9UWDJfQUxJR04pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jLTEzOTAtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5jPTE0NjA9aW50IG90eDJfcG9vbF9hcV9pbml0KHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTE2IHBvb2xfaWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNDcwLVxcdC8qIEFsbG9jIG1lbW9yeSBmb3Igc3RhY2sgd2hpY2ggaXMgdXNlZCB0byBzdG9yZSBidWZmZXIgcG9pbnRlcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxNDcxOlxcdGVyciA9IHFtZW1fYWxsb2MocGZ2Zi1cXHUwMDNlZGV2LCBcXHUwMDI2cG9vbC1cXHUwMDNlc3RhY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmMtMTQ3Mi1cXHRcXHRcXHQgc3RhY2tfcGFnZXMsIHBmdmYtXFx1MDAzZWh3LnN0YWNrX3BnX2J5dGVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM9NTc5PXN0YXRpYyB2b2lkICpjbjIwa19wZnZmX21ib3hfYWxsb2Moc3RydWN0IG90eDJfbmljICpwZiwgaW50IG51bXZmcylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmMtNTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6NTg0OlxcdGVyciA9IHFtZW1fYWxsb2MoXFx1MDAyNnBmLVxcdTAwM2VwZGV2LVxcdTAwM2VkZXYsIFxcdTAwMjZtYm94X2FkZHIsIG51bXZmcywgTUJPWF9TSVpFKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTU4NS1cXHRpZiAoZXJyKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjI2LjY5MjUwNDc1N1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjcyMTI1NjUwNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBNYXJ2ZWxsIE9jdGVvblRYMiBhbmQgRnV6emluZyBGZWFzaWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRldGVybWluZSBpZiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgY29kZSBpcyBpbmhlcmVudGx5IGhhcmR3YXJlLXNwZWNpZmljLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiBpdCBmYWxscyB1bmRlciB0aGUgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBjYXRlZ29yeSwgc3BlY2lmaWNhbGx5IHRoZSBcIlN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZVwiIGNsYXVzZS4gVGhpcyBtZWFucyBJIG5lZWQgdG8gYXNzZXNzIGlmIHRoaXMgY29kZSBpbnRlcmFjdHMgd2l0aCB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyB0aGF0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZSDigJMgc3R1ZmYgbm90IHR5cGljYWxseSBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuXG5cbk15IGxpbmUgb2YgcmVhc29uaW5nIGlzIGNsZWFyOiBJcyB0aGUgT2N0ZW9uVFgyIGEgU21hcnROSUMgb3IgRXRoZXJuZXQgQVNJQyBkcml2ZXIgdGhhdCdzIGRlcGVuZGVudCBvbiBzcGVjaWZpYyBoYXJkd2FyZSwgZXNwZWNpYWxseSBhIFBDSWUgZGV2aWNlLCBhbmQgY3J1Y2lhbGx5LCAqbm90KiBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VP1xuXG5TbywgZmlyc3QgSSdsbCB6ZXJvIGluIG9uIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYCBkaXJlY3RvcnkuIEJhc2VkIG9uIG15IGV4aXN0aW5nIGtub3dsZWRnZSwgTWFydmVsbCdzIE9jdGVvblRYMiBSVlUgYXJjaGl0ZWN0dXJlIGlzIGEga2V5IGNvbXBvbmVudCwgdXNlZCBpbiB0aGVpciBPY3Rlb24gVFgyIG5ldHdvcmsgcHJvY2Vzc29ycywgd2hpY2ggYXJlIHR5cGljYWxseSBmb3VuZCBpbiBTbWFydE5JQ3MgYW5kIFNvQ3MgKENOOVhYWCwgQ04xMEssIGV0Yy4pLiBCaW5nbywgdGhhdCdzIGEgUENJZSBkZXZpY2UhIFRoZXkgaGF2ZSBzcGVjaWZpYyBQQ0kgSURzLCB2ZW5kb3IgMHgxNzdkIChDQVZJVU0pLCBhbmQgdmFyaW91cyBkZXZpY2UgSURzIHN1Y2ggYXMgMHhBMDY1LCAweEEwNjMsIDB4QTA2NCwgYW5kIG90aGVycy5cblxuQW5kIHRoZSBjb25jbHVzaW9uIEkndmUgY29tZSB0bzogVGhlc2UgZGV2aWNlcyBhcmVuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSwgb3IgYXQgbGVhc3QgR0NFIGVudmlyb25tZW50cy5cblxuVG8gYmUgdGhvcm91Z2gsIEkgd2lsbCBhbHNvIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBtb2NrIGRldmljZXMuIEFsc28sIEknbGwgbmVlZCB0byBjaGVjayBpZiB0aGlzIGNvZGUgaXMgaW5jbHVkZWQgYW55d2hlcmUgb3V0c2lkZSBvZiB0aGF0IGRyaXZlciwgd2hpY2ggY291bGQgaW5kaWNhdGUgYSBsZXZlbCBvZiBhYnN0cmFjdGlvbiBvciBoYXJkd2FyZS1pbmRlcGVuZGVudCBwYXJ0cy4gU3BlY2lmaWNhbGx5LCBJJ2xsIGxvb2sgaW50byB0aGUgaW5jbHVzaW9uIG9mIGBjb21tb24uaGAgdG8gc2VlIGhvdyBpdCBtaWdodCBiZSB1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNTY0OSwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOTozMy45MDUwNzE2NzhaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4ODI2NzExMCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2luY2x1ZGUuKmFmL2NvbW1vblxcXFwuaFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6MzYuMzkzMzQ3NTk4WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NjUwMjA4Nzg1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6XG5cbioqT2theSwgTGV0J3MgR2V0IHRvIFdvcmsqKlxuXG5SaWdodCwgdGltZSB0byBkaWcgaW4uIFRoZSBmaXJzdCB0aGluZyBJIG5lZWQgdG8gZG8gaXMgbG9jYXRlIHRoYXQgY3J1Y2lhbCBoZWFkZXIgZmlsZSwgYCNpbmNsdWRlIFwiY29tbW9uLmhcImAuIFRoYXQncyBsaWtlbHkgdGhlIGp1bXBpbmctb2ZmIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoaXMgY29kZSBiYXNlLiBJdCdzIHByb2JhYmx5IHdoZXJlIGEgbG90IG9mIHRoZSBjb3JlIGRlZmluaXRpb25zIGFuZCBzdHJ1Y3R1cmVzIGFyZSBsb2NhdGVkLiBPbmNlIEkgZmluZCBpdCwgSSBjYW4gc3RhcnQgdHJhY2luZyBkZXBlbmRlbmNpZXMgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgYXJjaGl0ZWN0dXJlLiBMZXQncyBzZWUgaWYgSSBjYW4gdXNlIGEgc2ltcGxlIHNlYXJjaCB0byBsb2NhdGUgdGhhdCBmaWxlIHF1aWNrbHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2NDg1LCJPdXRwdXRUb2tlbnMiOjIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NDIuODk1NDM3MjczWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNjE1NzY3MDY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIiNpbmNsdWRlIFxcXCJjb21tb25cXFxcLmhcXFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjc2OCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jLTE4LVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jb21tb24uYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2NvbW1vbi5jLTIwLSNpbmNsdWRlIFxcXCJjcHV0eXBlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvY3B1dHlwZS5oLTE2LVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmg6MTc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9jcHV0eXBlLmgtMTgtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4NTAuYy0yMi1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGE4NTAuYzoyMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhODUwLmMtMjQtI2luY2x1ZGUgXFxcImNwdXR5cGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kYTh4eC1kdC5jLTktXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RhOHh4LWR0LmM6MTA6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9kYTh4eC1kdC5jLTExLSNpbmNsdWRlIFxcXCJkYTh4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL2RldmljZXMtZGE4eHguYy0yMC1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGV2aWNlcy1kYTh4eC5jOjIxOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvZGV2aWNlcy1kYTh4eC5jLTIyLSNpbmNsdWRlIFxcXCJjcHV0eXBlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvbXV4LmMtMjMtI2luY2x1ZGUgXFxcIm11eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9tdXguYzoyNDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL211eC5jLTI1LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BkYXRhLXF1aXJrcy5jLTEyLVxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9wZGF0YS1xdWlya3MuYzoxMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BkYXRhLXF1aXJrcy5jLTE0LSNpbmNsdWRlIFxcXCJkYTh4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmMtMTgtXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3BtLmM6MTk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZGF2aW5jaS9wbS5jLTIwLSNpbmNsdWRlIFxcXCJkYTh4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1kYXZpbmNpL3NyYW0uYy0xMS1cXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jOjEyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRhdmluY2kvc3JhbS5jLTEzLSNpbmNsdWRlIFxcXCJzcmFtLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWRvdmUvY20tYTUxMC5jLTIyLSNpbmNsdWRlIFxcXCJkb3ZlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL2NtLWE1MTAuYzoyMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL2NtLWE1MTAuYy0yNC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNC0jaW5jbHVkZSBcXFwicG0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRvdmUvY29tbW9uLmM6MjU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZG92ZS9jb21tb24uYy0yNi1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZG92ZS9pcnEuYy0xNi0jaW5jbHVkZSBcXFwiYnJpZGdlLXJlZ3MuaFxcXCJcXG5hcmNoL2FybS9tYWNoLWRvdmUvaXJxLmM6MTc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZG92ZS9pcnEuYy0xOC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZG92ZS9wY2llLmMtMTktI2luY2x1ZGUgXFxcImJyaWRnZS1yZWdzLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL3BjaWUuYzoyMDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1kb3ZlL3BjaWUuYy0yMS1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jLTIxLVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2V4eW5vcy5jOjIyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9leHlub3MuYy0yMy1cXG4tLVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL2Zpcm13YXJlLmMtMTgtXFxuYXJjaC9hcm0vbWFjaC1leHlub3MvZmlybXdhcmUuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1leHlub3MvZmlybXdhcmUuYy0yMC0jaW5jbHVkZSBcXFwic21jLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9tY3BtLWV4eW5vcy5jLTE4LVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmM6MTk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL21jcG0tZXh5bm9zLmMtMjAtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbGF0c21wLmMtMjQtXFxuYXJjaC9hcm0vbWFjaC1leHlub3MvcGxhdHNtcC5jOjI1OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbGF0c21wLmMtMjYtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9wbS5jLTI0LVxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmM6MjU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtZXh5bm9zL3BtLmMtMjYtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9zdXNwZW5kLmMtMzItXFxuYXJjaC9hcm0vbWFjaC1leHlub3Mvc3VzcGVuZC5jOjMzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWV4eW5vcy9zdXNwZW5kLmMtMzQtI2luY2x1ZGUgXFxcInNtYy5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1vbi5jLTI4LVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYzoyOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1vbi5jLTMwLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2RjMjEyODUtdGltZXIuYy0yMC1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZGMyMTI4NS10aW1lci5jOjIxOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZGMyMTI4NS10aW1lci5jLTIyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUuYy0xNy1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS5jOjE4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS5jLTE5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1pcnEuYy0yNy1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLWlycS5jOjI4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLWlycS5jLTI5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS1ydGMuYy0yNC1cXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXJ0Yy5jOjI1OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvaXNhLXJ0Yy5jLTI2LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS10aW1lci5jLTE4LVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EtdGltZXIuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS10aW1lci5jLTIwLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS5jLTEyLVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9pc2EuYzoxMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2lzYS5jLTE0LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL25ldHdpbmRlci1ody5jLTI1LVxcbmFyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9uZXR3aW5kZXItaHcuYzoyNjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL25ldHdpbmRlci1ody5jLTI3LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvYW5hdG9wLmMtMTItI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3JlZ21hcC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L2FuYXRvcC5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9hbmF0b3AuYy0xNC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2F2aWMuYy0xNi1cXG5hcmNoL2FybS9tYWNoLWlteC9hdmljLmM6MTc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L2F2aWMuYy0xOC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXgzMS5jLTExLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXgzMS5jOjEyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9jcHUtaW14MzEuYy0xMy0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS1pbXg1LmMtMTYtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYzoxNzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LWlteDUuYy0xOC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdS5jLTgtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1LmMtMTAtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZxLmMtMTItXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2cS5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZxLmMtMTQtI2luY2x1ZGUgXFxcImNwdWlkbGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2NwdWlkbGUtaW14NnNsLmMtMTAtXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2c2wuYzoxMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2c2wuYy0xMi0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg2c3guYy0xMi1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDZzeC5jLTE0LSNpbmNsdWRlIFxcXCJjcHVpZGxlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDd1bHAuYy0xMS1cXG5hcmNoL2FybS9tYWNoLWlteC9jcHVpZGxlLWlteDd1bHAuYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvY3B1aWRsZS1pbXg3dWxwLmMtMTMtI2luY2x1ZGUgXFxcImNwdWlkbGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jLTEzLVxcbmFyY2gvYXJtL21hY2gtaW14L2dwYy5jOjE0OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9ncGMuYy0xNS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L2hvdHBsdWcuYy0xMi1cXG5hcmNoL2FybS9tYWNoLWlteC9ob3RwbHVnLmM6MTM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L2hvdHBsdWcuYy0xNC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MS5jLTctXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgxLmM6ODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgxLmMtOS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy02LSNpbmNsdWRlIFxcdTAwM2Nhc20vbWFjaC9hcmNoLmhcXHUwMDNlXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNS5jOjc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MjUuYy04LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNy5jLTktXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgyNy5jOjEwOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDI3LmMtMTEtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtNi0jaW5jbHVkZSBcXHUwMDNjYXNtL21hY2gvYXJjaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzEuYzo3OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDMxLmMtOC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzUuYy04LSNpbmNsdWRlIFxcdTAwM2Nhc20vbWFjaC9hcmNoLmhcXHUwMDNlXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXgzNS5jOjk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14MzUuYy0xMC0jaW5jbHVkZSBcXFwibXgzNS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MC5jLTktXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MC5jOjEwOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUwLmMtMTEtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUxLmMtMTEtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1MS5jOjEyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUxLmMtMTMtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUzLmMtOC1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDUzLmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg1My5jLTEwLSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jLTE4LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnEuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2cS5jLTIwLSNpbmNsdWRlIFxcXCJjcHVpZGxlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWlteDZzbC5jLTEzLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmM6MTQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnNsLmMtMTUtI2luY2x1ZGUgXFxcImNwdWlkbGUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnN4LmMtMTEtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c3guYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2c3guYy0xMy0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYy04LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14NnVsLmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg2dWwuYy0xMC0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3ZC5jLTE0LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N2QuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3ZC5jLTE2LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3dWxwLmMtMTMtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC1pbXg3dWxwLmM6MTQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtaW14N3VscC5jLTE1LSNpbmNsdWRlIFxcXCJjcHVpZGxlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLWxzMTAyMWEuYy03LVxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtbHMxMDIxYS5jOjg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L21hY2gtbHMxMDIxYS5jLTktXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLXZmNjEwLmMtMTMtXFxuYXJjaC9hcm0vbWFjaC1pbXgvbWFjaC12ZjYxMC5jOjE0OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tYWNoLXZmNjEwLmMtMTUtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmMtMTktXFxuYXJjaC9hcm0vbWFjaC1pbXgvbW0taW14My5jOjIwOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9tbS1pbXgzLmMtMjEtI2luY2x1ZGUgXFxcImNybXJlZ3MtaW14My5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvbW1kYy5jLTIwLVxcbmFyY2gvYXJtL21hY2gtaW14L21tZGMuYzoyMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvbW1kYy5jLTIyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcGxhdHNtcC5jLTE2LVxcbmFyY2gvYXJtL21hY2gtaW14L3BsYXRzbXAuYzoxNzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcGxhdHNtcC5jLTE4LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjUuYy04LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9pby5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDI1LmM6OTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjUuYy0xMC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDI3LmMtMTQtXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjcuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14MjcuYy0xNi0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDUuYy0yMS1cXG5hcmNoL2FybS9tYWNoLWlteC9wbS1pbXg1LmM6MjI6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDUuYy0yMy0jaW5jbHVkZSBcXFwiY3B1aWRsZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14Ni5jLTI3LVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDYuYzoyODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14Ni5jLTI5LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jLTExLVxcbmFyY2gvYXJtL21hY2gtaW14L3BtLWlteDd1bHAuYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1pbXgvcG0taW14N3VscC5jLTEzLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1pbXgvc3JjLmMtMTUtI2luY2x1ZGUgXFx1MDAzY2FzbS9zbXBfcGxhdC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtaW14L3NyYy5jOjE2OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9zcmMuYy0xNy0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3N5c3RlbS5jLTIyLVxcbmFyY2gvYXJtL21hY2gtaW14L3N5c3RlbS5jOjIzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWlteC9zeXN0ZW0uYy0yNC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYy0xNy1cXG5hcmNoL2FybS9tYWNoLWlteC90emljLmM6MTg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtaW14L3R6aWMuYy0xOS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9jb21tb24uYy0xNi0jaW5jbHVkZSBcXFwibHBjMzJ4eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9jb21tb24uYzoxNzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L2NvbW1vbi5jLTE4LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3BoeTMyNTAuYy0xMS0jaW5jbHVkZSBcXHUwMDNjYXNtL21hY2gvYXJjaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9waHkzMjUwLmM6MTI6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9waHkzMjUwLmMtMTMtXFxuLS1cXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03MS0jaW5jbHVkZSBcXFwibHBjMzJ4eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9wbS5jOjcyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLWxwYzMyeHgvcG0uYy03My1cXG4tLVxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9zZXJpYWwuYy0yMC0jaW5jbHVkZSBcXFwibHBjMzJ4eC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbHBjMzJ4eC9zZXJpYWwuYzoyMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1scGMzMnh4L3NlcmlhbC5jLTIyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvY29tbW9uLmMtMTctXFxuYXJjaC9hcm0vbWFjaC1tbXAvY29tbW9uLmM6MTg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbW1wL2NvbW1vbi5jLTE5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wLWR0LmMtMTMtXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wLWR0LmM6MTQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbW1wL21tcC1kdC5jLTE1LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMi1kdC5jLTEzLVxcbmFyY2gvYXJtL21hY2gtbW1wL21tcDItZHQuYzoxNDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMi1kdC5jLTE1LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMy5jLTEwLVxcbmFyY2gvYXJtL21hY2gtbW1wL21tcDMuYzoxMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tbXAvbW1wMy5jLTEyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2J1ZmZhbG8td3hsLXNldHVwLmMtMjItI2luY2x1ZGUgXFxcIm12Nzh4eDAuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvYnVmZmFsby13eGwtc2V0dXAuYzoyMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2J1ZmZhbG8td3hsLXNldHVwLmMtMjQtI2luY2x1ZGUgXFxcIm1wcC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5jLTI1LSNpbmNsdWRlIFxcXCJicmlkZ2UtcmVncy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYzoyNjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5jLTI3LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jLTE0LSNpbmNsdWRlIFxcXCJicmlkZ2UtcmVncy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9pcnEuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jLTE2LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jLTEyLSNpbmNsdWRlIFxcXCJtdjc4eHgwLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL21wcC5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12Nzh4eDAvbXBwLmMtMTQtI2luY2x1ZGUgXFxcIm1wcC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYy0xNS0jaW5jbHVkZSBcXFwibXY3OHh4MC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmM6MTY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMtMTctXFxuLS1cXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmMtMjgtI2luY2x1ZGUgXFxcImFybWFkYS0zNzAteHAuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2JvYXJkLXY3LmM6Mjk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvYm9hcmQtdjcuYy0zMC0jaW5jbHVkZSBcXFwiY29oZXJlbmN5LmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2NwdS1yZXNldC5jLTE1LVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvY3B1LXJlc2V0LmM6MTY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvY3B1LXJlc2V0LmMtMTctXFxuLS1cXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2RvdmUuYy0xMy0jaW5jbHVkZSBcXHUwMDNjYXNtL21hY2gvYXJjaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvZG92ZS5jOjE0OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2RvdmUuYy0xNS1cXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNC0jaW5jbHVkZSBcXFwia2lya3dvb2QtcG0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L2tpcmt3b29kLmM6MjU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUva2lya3dvb2QuYy0yNi1cXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvbXZlYnUtc29jLWlkLmMtMjQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N5c19zb2MuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L212ZWJ1LXNvYy1pZC5jOjI1OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L212ZWJ1LXNvYy1pZC5jLTI2LSNpbmNsdWRlIFxcXCJtdmVidS1zb2MtaWQuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC1hOS5jLTE4LSNpbmNsdWRlIFxcdTAwM2Nhc20vc21wX3BsYXQuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAtYTkuYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLWE5LmMtMjAtI2luY2x1ZGUgXFxcInBtc3UuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcGxhdHNtcC5jLTI0LSNpbmNsdWRlIFxcdTAwM2Nhc20vc21wX3BsYXQuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BsYXRzbXAuYzoyNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbGF0c21wLmMtMjYtI2luY2x1ZGUgXFxcImFybWFkYS0zNzAteHAuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0tYm9hcmQuYy0xNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvc2xhYi5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0tYm9hcmQuYzoxODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbS1ib2FyZC5jLTE5LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbS5jLTIyLSNpbmNsdWRlIFxcXCJjb2hlcmVuY3kuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3BtLmM6MjM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG0uYy0yNC0jaW5jbHVkZSBcXFwicG1zdS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9wbXN1LmMtMzctI2luY2x1ZGUgXFx1MDAzY2FzbS90bGJmbHVzaC5oXFx1MDAzZVxcbmFyY2gvYXJtL21hY2gtbXZlYnUvcG1zdS5jOjM4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3Btc3UuYy0zOS0jaW5jbHVkZSBcXFwicG1zdS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1tdmVidS9zeXN0ZW0tY29udHJvbGxlci5jLTI2LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZWJvb3QuaFxcdTAwM2VcXG5hcmNoL2FybS9tYWNoLW12ZWJ1L3N5c3RlbS1jb250cm9sbGVyLmM6Mjc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtbXZlYnUvc3lzdGVtLWNvbnRyb2xsZXIuYy0yOC0jaW5jbHVkZSBcXFwibXZlYnUtc29jLWlkLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLWFtcy1kZWx0YS5jLTQ0LSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1zLWRlbHRhLmM6NDU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtYW1zLWRlbHRhLmMtNDYtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMtMzQtI2luY2x1ZGUgXFxcInVzYi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYzozNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1ub2tpYTc3MC5jLTM2LSNpbmNsdWRlIFxcXCJjbG9jay5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYy01Ni0jaW5jbHVkZSBcXFwidXNiLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYzo1NzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYy01OC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDItI2luY2x1ZGUgXFxcIm1tYy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmM6NDM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMtNDQtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXN4MS5jLTQxLSNpbmNsdWRlIFxcXCJ1c2IuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXN4MS5jOjQyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXN4MS5jLTQzLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9kZXZpY2VzLmMtMjMtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9kZXZpY2VzLmM6MjQ6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvZGV2aWNlcy5jLTI1LSNpbmNsdWRlIFxcXCJjbG9jay5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pZC5jLTE5LSNpbmNsdWRlIFxcXCJoYXJkd2FyZS5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvaWQuYzoyMDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pZC5jLTIxLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pby5jLTE4LSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvaW8uYzoxOTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pby5jLTIwLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9pcnEuYy01MS0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jOjUyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL2lycS5jLTUzLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9vY3BpLmMtMjUtI2luY2x1ZGUgXFxcImhhcmR3YXJlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9vY3BpLmM6MjY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvb2NwaS5jLTI3LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9yZXNldC5jLTEwLSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvcmVzZXQuYzoxMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9yZXNldC5jLTEyLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMS9zZXJpYWwuYy0yMi1cXG5hcmNoL2FybS9tYWNoLW9tYXAxL3NlcmlhbC5jOjIzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL3NlcmlhbC5jLTI0LSNpbmNsdWRlIFxcXCJzZXJpYWwuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZS5jLTU1LSNpbmNsdWRlIFxcXCJpb21hcC5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZS5jOjU2OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWUuYy01Ny0jaW5jbHVkZSBcXFwiY2xvY2suaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01NC0jaW5jbHVkZSBcXFwiaGFyZHdhcmUuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAxL3RpbWVyMzJrLmM6NTU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdGltZXIzMmsuYy01Ni1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDEvdXNiLmMtMjEtI2luY2x1ZGUgXFxcInVzYi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdXNiLmM6MjI6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDEvdXNiLmMtMjMtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2FtMzN4eC1yZXN0YXJ0LmMtOS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2FtMzN4eC1yZXN0YXJ0LmM6MTA6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvYW0zM3h4LXJlc3RhcnQuYy0xMS0jaW5jbHVkZSBcXFwiY29udHJvbC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmMtMTktXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1nZW5lcmljLmM6MjA6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtZ2VuZXJpYy5jLTIxLVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmMtMjgtXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1uOHgwLmM6Mjk6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtbjh4MC5jLTMwLSNpbmNsdWRlIFxcXCJtbWMuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYy0zNi0jaW5jbHVkZSBcXFwiY20tcmVnYml0cy0zNHh4LmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jOjM3OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMtMzgtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbW1vbi5jLTE0LVxcbmFyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLmM6MTU6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvY29tbW9uLmMtMTYtI2luY2x1ZGUgXFxcIm9tYXAtc2VjdXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYy0yMC0jaW5jbHVkZSBcXFwiaW9tYXAuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYzoyMTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMtMjItI2luY2x1ZGUgXFxcImNtLXJlZ2JpdHMtMzR4eC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlMzR4eC5jLTMyLSNpbmNsdWRlIFxcXCJjb250cm9sLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlMzR4eC5jOjMzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2NwdWlkbGUzNHh4LmMtMzQtI2luY2x1ZGUgXFxcInNvYy5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlNDR4eC5jLTE3LVxcbmFyY2gvYXJtL21hY2gtb21hcDIvY3B1aWRsZTQ0eHguYzoxODojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9jcHVpZGxlNDR4eC5jLTE5LSNpbmNsdWRlIFxcXCJwbS5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kZXZpY2VzLmMtMjctI2luY2x1ZGUgXFxcInNvYy5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvZGV2aWNlcy5jOjI4OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2RldmljZXMuYy0yOS0jaW5jbHVkZSBcXFwiY29udHJvbC5oXFxcIlxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmMtMjYtI2luY2x1ZGUgXFxcIm9tYXBfZGV2aWNlLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kaXNwbGF5LmM6Mjc6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvZGlzcGxheS5jLTI4LVxcbi0tXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kbWEuYy0zMi0jaW5jbHVkZSBcXFwic29jLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kbWEuYzozMzojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9kbWEuYy0zNC1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvaGRxMXcuYy0yMi0jaW5jbHVkZSBcXFwicHJtLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9oZHExdy5jOjIzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2hkcTF3LmMtMjQtXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jLTEyLSNpbmNsdWRlIFxcXCJwcm0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jOjEzOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2kyYy5jLTE0LSNpbmNsdWRlIFxcXCJpMmMuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYy0yNy1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL2lkLmM6Mjg6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvaWQuYy0yOS1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zMi0jaW5jbHVkZSBcXFwiY2xvY2tkb21haW4uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL2lvLmM6MzM6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvaW8uYy0zNC0jaW5jbHVkZSBcXFwiY2xvY2suaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvbXNkaS5jLTE0LSNpbmNsdWRlIFxcXCJwcm0uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL21zZGkuYzoxNTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9tc2RpLmMtMTYtI2luY2x1ZGUgXFxcImNvbnRyb2wuaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1ob3RwbHVnLmMtMTktI2luY2x1ZGUgXFxcIm9tYXAtd2FrZXVwZ2VuLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLWhvdHBsdWcuYzoyMDojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLWhvdHBsdWcuYy0yMS0jaW5jbHVkZSBcXFwicG93ZXJkb21haW4uaFxcXCJcXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jLTE1LSNpbmNsdWRlIFxcXCJwb3dlcmRvbWFpbi5oXFxcIlxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1pb21tdS5jOjE2OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtaW9tbXUuYy0xNy1cXG4tLVxcbmFyY2gvYXJtL21hY2gtb21hcDIvb21hcC1tcHVzcy1sb3dwb3dlci5jLTUwLSNpbmNsdWRlIFxcXCJzb2MuaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtbXB1c3MtbG93cG93ZXIuYzo1MTojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLW1wdXNzLWxvd3Bvd2VyLmMtNTItI2luY2x1ZGUgXFxcIm9tYXA0NHh4LmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmMtMjEtXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNlY3VyZS5jOjIyOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc2VjdXJlLmMtMjMtI2luY2x1ZGUgXFxcIm9tYXAtc2VjdXJlLmhcXFwiXFxuLS1cXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc21wLmMtMzAtI2luY2x1ZGUgXFxcImlvbWFwLmhcXFwiXFxuYXJjaC9hcm0vbWFjaC1vbWFwMi9vbWFwLXNtcC5jOjMxOiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5hcmNoL2FybS9tYWNoLW9tYXAyL29tYXAtc21wLmMtMzItI2luY2x1ZGUgXFxcImNsb2NrZG9tYWluLmhcXFwiXFxuLS1cXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NDUuNTExMjExMTMyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQyMTYyMzkwMDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIE9jdGVvblRYMiBBRiBJbmNsdWRlIFBhdGgqKlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGdldCB0byB0aGUgYm90dG9tIG9mIHRoaXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYXJvdW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jb21tb24uaGAuIFNwZWNpZmljYWxseSwgSSB3YW50IHRvIHRyYWNlIGJhY2sgYW5kIGRldGVybWluZSBwcmVjaXNlbHkgd2hlcmUgdGhpcyBoZWFkZXIgZmlsZSBpcyBiZWluZyBwdWxsZWQgaW4uIFRoaXMgaXMgbGlrZWx5IHBhcnQgb2YgYSBkZWJ1Z2dpbmcgZWZmb3J0IG9yIG1heWJlIEknbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBob3cgYSBwYXJ0aWN1bGFyIGZlYXR1cmUgaXMgZW5hYmxlZC9kaXNhYmxlZCBvciBob3cgdGhlIEFGIChBcHBsaWNhdGlvbiBGb3J3YXJkaW5nKSBjb21wb25lbnQgaXMgaW50ZWdyYXRlZCB3aXRoaW4gdGhlIE9jdGVvblRYMidzIEV0aGVybmV0IGRyaXZlci4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGNhbGwgaGllcmFyY2h5LiBJdCBjb3VsZCBiZSBkaXJlY3RseSBpbmNsdWRlZCBpbiBhIHNvdXJjZSBmaWxlLCBvciBwb3RlbnRpYWxseSBicm91Z2h0IGluIHRocm91Z2ggYSBjaGFpbiBvZiBpbmNsdWRlcywgcGVyaGFwcyB3aXRoaW4gYSBjb25maWd1cmF0aW9uIG1hY3JvIG9yIGNvbmRpdGlvbmFsIGNvbXBpbGUgc3RhdGVtZW50LiBTbywgbGV0J3Mgc3RhcnQgd2l0aCBhIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlYmFzZSB0byBwaW5wb2ludCB0aGUgZXhhY3QgbG9jYXRpb25zIHdoZXJlIHRoaXMgaGVhZGVyIGZpbGUgaXMgYmVpbmcgcmVmZXJlbmNlZC4gSXQncyBhIGZ1bmRhbWVudGFsIHN0ZXAgZm9yIGVmZmljaWVudCByZXZlcnNlIGVuZ2luZWVyaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjE4OCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjQ5LjcyNzQ1MjkyNFoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzUxNzQ4OTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiI2luY2x1ZGUuKmNvbW1vblxcXFwuaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4MlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9jZ3guYy0yMS0jaW5jbHVkZSBcXFwicnZ1LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmM6MjI6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY2d4LmMtMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgtMTUtI2luY2x1ZGUgXFxcInJ2dV9zdHJ1Y3QuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94Lmg6MTY6I2luY2x1ZGUgXFxcImNvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaC0xNy0jaW5jbHVkZSBcXFwiY24yMGsvc3RydWN0LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmMtMTQtI2luY2x1ZGUgXFxcIm1jc19yZWcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tY3NfcnZ1X2lmLmM6MTU6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWNzX3J2dV9pZi5jLTE2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnBtLmMtOC0jaW5jbHVkZSBcXFwiY2d4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnBtLmM6OTojaW5jbHVkZSBcXFwibG1hY19jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ycG0uYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oLTE2LSNpbmNsdWRlIFxcXCJydnVfZGV2bGluay5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dS5oOjE3OiNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnUuaC0xOC0jaW5jbHVkZSBcXFwibWJveC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTEzLSNpbmNsdWRlIFxcXCJjZ3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfY2d4LmM6MTQ6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2NneC5jLTE1LSNpbmNsdWRlIFxcXCJydnVfcmVnLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTE4LSNpbmNsdWRlIFxcXCJjZ3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjE5OiNpbmNsdWRlIFxcXCJsbWFjX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjAtI2luY2x1ZGUgXFxcIm5wYy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE2LSNpbmNsdWRlIFxcXCJjZ3guaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfbml4LmM6MTc6I2luY2x1ZGUgXFxcImxtYWNfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25peC5jLTE4LSNpbmNsdWRlIFxcXCJydnVfbnBjX2hhc2guaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGMuYy0yMS0jaW5jbHVkZSBcXFwiY24yMGsvcmVnLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X25wYy5jOjIyOiNpbmNsdWRlIFxcXCJsbWFjX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9ucGMuYy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9yZWcuYy0xMS0jaW5jbHVkZSBcXFwicnZ1X3N0cnVjdC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9yZWcuYzoxMjojaW5jbHVkZSBcXFwiY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X3JlZy5jLTEzLSNpbmNsdWRlIFxcXCJtYm94LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaC0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaDoxMTojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24xMGsuaC0xMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jOjEzOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19pcHNlYy5jLTE0LSNpbmNsdWRlIFxcXCJvdHgyX3N0cnVjdC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX21hY3NlYy5jLTktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2JpdGZpZWxkLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMTBrX21hY3NlYy5jOjEwOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjEwa19tYWNzZWMuYy0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9jbjIway5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmM6ODojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvY24yMGsuYy05LSNpbmNsdWRlIFxcXCJvdHgyX3JlZy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmgtMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmg6MTE6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL2NuMjBrLmgtMTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xNi0jaW5jbHVkZSBcXFwib3R4Ml9yZWcuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYzoxNzojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uYy0xOC0jaW5jbHVkZSBcXFwib3R4Ml9zdHJ1Y3QuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RjYm5sLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kY2JubC5jOjg6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGNibmwuYy05LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jOjc6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZGV2bGluay5jLTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9kbWFjX2ZsdC5jLTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZG1hY19mbHQuYzo4OiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2RtYWNfZmx0LmMtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2V0aHRvb2wuYy0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9ldGh0b29sLmM6MTY6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZXRodG9vbC5jLTE3LSNpbmNsdWRlIFxcXCJvdHgyX3B0cC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfZmxvd3MuYy0xMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9mbG93cy5jOjExOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2Zsb3dzLmMtMTItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wZi5jLTIxLSNpbmNsdWRlIFxcXCJvdHgyX3JlZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3BmLmM6MjI6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfcGYuYy0yMy0jaW5jbHVkZSBcXFwib3R4Ml90eHJ4LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9wdHAuYy05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3B0cC5jOjEwOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3B0cC5jLTExLSNpbmNsdWRlIFxcXCJvdHgyX3B0cC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdGMuYy0yMC0jaW5jbHVkZSBcXFwiY24xMGsuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90Yy5jOjIxOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3RjLmMtMjItI2luY2x1ZGUgXFxcInFvcy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdHhyeC5jLTE3LSNpbmNsdWRlIFxcXCJvdHgyX3JlZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3R4cnguYzoxODojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml90eHJ4LmMtMTktI2luY2x1ZGUgXFxcIm90eDJfc3RydWN0LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml92Zi5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3ZmLmM6MTM6I2luY2x1ZGUgXFxcIm90eDJfY29tbW9uLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfdmYuYy0xNC0jaW5jbHVkZSBcXFwib3R4Ml9yZWcuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jOjEzOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX3hzay5jLTE0LSNpbmNsdWRlIFxcXCJvdHgyX3N0cnVjdC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvcy5jLTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYzoxMjojaW5jbHVkZSBcXFwib3R4Ml9jb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmMtMTMtI2luY2x1ZGUgXFxcImNuMTBrLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zX3NxLmMtMTItI2luY2x1ZGUgXFxcIm90eDJfcmVnLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvc19zcS5jOjEzOiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3Nfc3EuYy0xNC0jaW5jbHVkZSBcXFwib3R4Ml90eHJ4LmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcmVwLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5jOjE0OiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuYy0xNS0jaW5jbHVkZSBcXFwiY24xMGsuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuaC0xNC0jaW5jbHVkZSBcXFwib3R4Ml90eHJ4LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3JlcC5oOjE1OiNpbmNsdWRlIFxcXCJvdHgyX2NvbW1vbi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9yZXAuaC0xNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NDkuODAyNjMyNDkyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMwMDY3NzI1ODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ2hlY2tpbmcgTXkgRGVwZW5kZW5jaWVzKipcblxuT2theSwgYmVmb3JlIEkgcHJvY2VlZCBmdXJ0aGVyLCBJIG5lZWQgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnl0aGluZyBvYnZpb3VzLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBnbGFuY2UgYXQgYG90eDJfY29tbW9uLmhgIGFzIHdlbGwuIEl0J3MgY3J1Y2lhbCwgYW5kIGZyYW5rbHksIGEgZnJlcXVlbnQgc291cmNlIG9mIFwiZ290Y2hhc1wiIGluIHRoaXMgcHJvamVjdC4gTm93LCB0aGUgY29yZSBxdWVzdGlvbiBpcyB3aGV0aGVyIGBvdHgyX2NvbW1vbi5oYCBwdWxscyBpbiBhbnkgb2YgdGhlIGJhc2UgdXRpbGl0aWVzLiBTcGVjaWZpY2FsbHksIGlzIGBhZi9jb21tb24uaGAgYmVpbmcgaW5jbHVkZWQgdGhlcmU/IEEgbWlzc2luZyBpbmNsdWRlIGhlcmUgY291bGQgZXhwbGFpbiB0aGUgdW51c3VhbCBiZWhhdmlvciBJJ20gY2hhc2luZyBkb3duLCBvciBhdCBsZWFzdCBoZWxwIHJ1bGUgb3V0IHNvbWUgcG9zc2liaWxpdGllcy4gTGV0J3Mgc2VlLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5ODk2LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NTIuODA5NDA3OTA5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NzAxMTgyNiwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29tbW9uXFxcXC5oXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOTo1Mi44OTY0MjcxNTVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjMxNTIwNjIxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czpcblxuKipQZWVyaW5nIGludG8gdGhlIENvbW1vbiBIZWFydCBvZiBPVFgyKipcblxuT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgZm91bmRhdGlvbiBvZiB0aGlzIE9UWDIgcHJvamVjdC4gVGltZSB0byBkaWcgaW50byB0aGUgZGV0YWlscy4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IGV4YW1pbmluZyB3aGF0IGBvdHgyX2NvbW1vbi5oYCBpcyBwdWxsaW5nIGluLiBVbmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgYXQgdGhlIHZlcnkgYmFzZSBsZXZlbCB3aWxsIGdpdmUgbWUgYSBjcml0aWNhbCBvdmVydmlldyBvZiB0aGlzIGFyY2hpdGVjdHVyZS4gSXQncyB0aGUgc3RhbmRhcmQgb3BlcmF0aW5nIHByb2NlZHVyZTsgeW91IG5ldmVyIHdhbnQgdG8gZ28gZm9yd2FyZCB3aXRob3V0IGdyYXNwaW5nIHRoZSBidWlsZGluZyBibG9ja3MuIEtub3dpbmcgd2hpY2ggaGVhZGVycyBpdCdzIGluY2x1ZGluZyB3aWxsIGluc3RhbnRseSB0ZWxsIG1lIHdoZXJlIHRvIGxvb2sgZm9yIGRhdGEgc3RydWN0dXJlcywgZnVuZGFtZW50YWwgZGVmaW5pdGlvbnMsIHV0aWxpdHkgZnVuY3Rpb25zLCBhbmQgcG9zc2libHkgZXZlbiBleHRlcm5hbCBsaWJyYXJ5IGludGVyZmFjZXMgdGhhdCBldmVyeXRoaW5nIGVsc2UgZGVwZW5kcyBvbi4gSXTigJlzIHRoZSBza2VsZXRvbiBrZXksIHNvIHRvIHNwZWFrLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDEyOCwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjU1LjIxMTYzNTgyM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NzQzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaFwiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovXFxuICAgMjpcXHQvKiBNYXJ2ZWxsIFJWVSBFdGhlcm5ldCBkcml2ZXJcXG4gICAzOlxcdCAqXFxuICAgNDpcXHQgKiBDb3B5cmlnaHQgKEMpIDIwMjAgTWFydmVsbC5cXG4gICA1OlxcdCAqXFxuICAgNjpcXHQgKi9cXG4gICA3OlxcdFxcbiAgIDg6XFx0I2lmbmRlZiBPVFgyX0NPTU1PTl9IXFxuICAgOTpcXHQjZGVmaW5lIE9UWDJfQ09NTU9OX0hcXG4gIDEwOlxcdFxcbiAgMTE6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2V0aHRvb2wuaFxcdTAwM2VcXG4gIDEyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9wY2kuaFxcdTAwM2VcXG4gIDEzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9pb21tdS5oXFx1MDAzZVxcbiAgMTQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldF90c3RhbXAuaFxcdTAwM2VcXG4gIDE1OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9wdHBfY2xvY2tfa2VybmVsLmhcXHUwMDNlXFxuICAxNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdGltZWNvdW50ZXIuaFxcdTAwM2VcXG4gIDE3OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9zb2MvbWFydmVsbC9zaWxpY29ucy5oXFx1MDAzZVxcbiAgMTg6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NvYy9tYXJ2ZWxsL29jdGVvbnR4Mi9hc20uaFxcdTAwM2VcXG4gIDE5OlxcdCNpbmNsdWRlIFxcdTAwM2NuZXQvbWFjc2VjLmhcXHUwMDNlXFxuICAyMDpcXHQjaW5jbHVkZSBcXHUwMDNjbmV0L3BrdF9jbHMuaFxcdTAwM2VcXG4gIDIxOlxcdCNpbmNsdWRlIFxcdTAwM2NuZXQvZGV2bGluay5oXFx1MDAzZVxcbiAgMjI6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3RpbWU2NC5oXFx1MDAzZVxcbiAgMjM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RpbS5oXFx1MDAzZVxcbiAgMjQ6XFx0I2luY2x1ZGUgXFx1MDAzY3VhcGkvbGludXgvaWZfbWFjc2VjLmhcXHUwMDNlXFxuICAyNTpcXHQjaW5jbHVkZSBcXHUwMDNjbmV0L3BhZ2VfcG9vbC9oZWxwZXJzLmhcXHUwMDNlXFxuICAyNjpcXHRcXG4gIDI3OlxcdCNpbmNsdWRlIFxcdTAwM2NtYm94LmhcXHUwMDNlXFxuICAyODpcXHQjaW5jbHVkZSBcXHUwMDNjbnBjLmhcXHUwMDNlXFxuICAyOTpcXHQjaW5jbHVkZSBcXFwib3R4Ml9yZWcuaFxcXCJcXG4gIDMwOlxcdCNpbmNsdWRlIFxcXCJvdHgyX3R4cnguaFxcXCJcXG4gIDMxOlxcdCNpbmNsdWRlIFxcXCJvdHgyX2RldmxpbmsuaFxcXCJcXG4gIDMyOlxcdCNpbmNsdWRlIFxcdTAwM2NydnUuaFxcdTAwM2VcXG4gIDMzOlxcdCNpbmNsdWRlIFxcdTAwM2NydnVfdHJhY2UuaFxcdTAwM2VcXG4gIDM0OlxcdCNpbmNsdWRlIFxcXCJxb3MuaFxcXCJcXG4gIDM1OlxcdCNpbmNsdWRlIFxcXCJyZXAuaFxcXCJcXG4gIDM2OlxcdCNpbmNsdWRlIFxcXCJjbjEwa19pcHNlYy5oXFxcIlxcbiAgMzc6XFx0I2luY2x1ZGUgXFxcImNuMjBrLmhcXFwiXFxuICAzODpcXHRcXG4gIDM5OlxcdC8qIElQdjQgZmxhZyBtb3JlIGZyYWdtZW50IGJpdCAqL1xcbiAgNDA6XFx0I2RlZmluZSBJUFY0X0ZMQUdfTU9SRVxcdFxcdFxcdFxcdDB4MjBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTFUMDM6Mzk6NTUuMjExNzI1NzkzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ0MzA2NzE5NjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBGdXp6aW5nIEFwcGxpY2FiaWxpdHkqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHRyYWNlZCB0aGUgaW5jbHVkZSBwYXRoOiBgXHUwMDNjbWJveC5oXHUwMDNlYCByZXNvbHZlcyB0byBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oYCwgd2hpY2ggcHVsbHMgaW4gYGNvbW1vbi5oYC4gVGhpcyBtZWFucyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvY29tbW9uLmhgIGlzICpvbmx5KiB1c2VkIHdpdGhpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgQUYgYW5kIE5JQyBkcml2ZXJzLiBUaGF0J3MgdGhlIGtleS5cblxuTm93LCB0aGUgcXVlc3Rpb24gaXMsIGNhbiB0aGlzIGNvZGUgKmFjdHVhbGx5KiBiZSBleGVjdXRlZCBpbiBhIHN0YW5kYXJkIGZ1enppbmcgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9yIEdDRT8gRnJvbSB0aGUgaW5zdHJ1Y3Rpb25zLCBJIHJlbWVtYmVyIHRoYXQgU2VjdGlvbiAyIHNwZWNpZmljYWxseSBjYWxscyBvdXQgXCJzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUsXCIgYW5kIGxpc3RzIGV4YW1wbGVzIGxpa2UgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMgYW5kIFNtYXJ0TklDcy4gQmluZ28hIFRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBpcyBleGFjdGx5IHRoYXQg4oCTIGEgU21hcnROSUMvbmV0d29yayBTb0MgKENhdml1bS9NYXJ2ZWxsIE9DVEVPTiBUWDIgUlZVIEFGL1BGL1ZGKSB0aGF0ICpkZW1hbmRzKiBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgb3IgUENJZSBkZXZpY2VzLiBJdCdzIG5vdCBlbXVsYXRlZCwgYW5kIGl0J3Mgbm90IGFjY2Vzc2libGUgdGhyb3VnaCB2aXJ0dWFsIGJ1c2VzIG9yIGFueSBzaW11bGF0ZWQgZGV2aWNlcyBpbiBzdGFuZGFyZCBzZXR1cHMuXG5cblRoZXJlZm9yZSwgdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBjb2RlIHRoYXQncyBmdW5kYW1lbnRhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nIHB1cnBvc2VzLiBXZSBuZWVkIHRvIG1hcmsgaXQgYXMgbm90IHdvcnRoIGZ1enppbmcuXG5cbkxldCdzIHZlcmlmeSB0aGlzLCBkb3R0aW5nIG91ciBpJ3MgYW5kIGNyb3NzaW5nIG91ciB0J3MuIFdlIG5lZWQgdG8gc2V0IHRoZSBmb2xsb3dpbmc6XG5cbjEuICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYC4gRGVmaW5pdGVseSBmYWxzZS5cbjIuICBgRm9jdXNTeW1ib2xzYDogQW4gZW1wdHkgbGlzdCAob3IgbnVsbCksIHNpbmNlIGZ1enppbmcgaXNuJ3QgYXBwbGljYWJsZS5cbjMuICBgRW5hYmxlQ29uZmlnc2A6IEFub3RoZXIgZW1wdHkgbGlzdCAob3IgbnVsbCkgYmVjYXVzZSB3ZSdyZSBub3QgZW5hYmxpbmcgYW55dGhpbmcgZm9yIGZ1enppbmcuXG40LiAgYFJlYXNvbmluZ2A6IENvbmNpc2UgZXhwbGFuYXRpb24sIHdoaWNoIEkndmUgZ290OiBUaGUgY2hhbmdlcyBhcmUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGJlY2F1c2UgdGhlIE1hcnZlbGwgT2N0ZW9uVFgyIFJWVSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUvQVNJQywgYW5kIHRoYXQgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIFFFTVUvR0NFLlxuXG5BbHJpZ2h0LCB3aXRoIHRoYXQgY29uZmlybWVkLCBJJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDk2MywiT3V0cHV0VG9rZW5zIjoxMjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMVQwMzozOTo1OS42NDI0MDAwNzFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBETUEgYWxsb2NhdGlvbiBhbmQgbWVtb3J5IG1hbmFnZW1lbnQgaGVscGVycyAocW1lbV9hbGxvYywgb3R4Ml9kbWFfYWxsb2NfY29oZXJlbnQsIGV0Yy4pIGluIHRoZSBNYXJ2ZWxsIE9jdGVvblRYMiBSVlUgKFJlc291cmNlIFZpcnR1YWxpemF0aW9uIFVuaXQpIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgc3BlY2lmaWMgdG8gTWFydmVsbCBPY3Rlb25UWDIgU21hcnROSUMgLyBTb0MgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBhbmQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIFFFTVUgb3IgR0NFIGZ1enppbmcgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgRE1BIGFsbG9jYXRpb24gYW5kIG1lbW9yeSBtYW5hZ2VtZW50IGhlbHBlcnMgKHFtZW1fYWxsb2MsIG90eDJfZG1hX2FsbG9jX2NvaGVyZW50LCBldGMuKSBpbiB0aGUgTWFydmVsbCBPY3Rlb25UWDIgUlZVIChSZXNvdXJjZSBWaXJ0dWFsaXphdGlvbiBVbml0KSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHNwZWNpZmljIHRvIE1hcnZlbGwgT2N0ZW9uVFgyIFNtYXJ0TklDIC8gU29DIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgYW5kIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBmdXp6aW5nIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTExVDAzOjM5OjU5LjY0MjQzNzQzMVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowvkhq6[1] Phase: Running StartedAt: 2026-09-11 03:40:11 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvkhq6[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-11 03:40:11 +0000 UTC FinishedAt: 2026-09-11 03:40:16 +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,}