Name: series-workflowfc5gd Phase: Failed StartedAt: 2026-09-09 03:19:45 +0000 UTC FinishedAt: 2026-09-09 03:23:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc5gd[0] Phase: Succeeded StartedAt: 2026-09-09 03:19:45 +0000 UTC FinishedAt: 2026-09-09 03:22:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc5gd[0].run-triage Phase: Succeeded StartedAt: 2026-09-09 03:19:45 +0000 UTC FinishedAt: 2026-09-09 03:22:54 +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+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2VyaWVzIGFkZHMgRGV2aWNlIFRyZWUgYmluZGluZ3MsIERUUyBub2RlcywgYW5kIGRyaXZlciBjb25maWd1cmF0aW9uIHRhYmxlcyBmb3IgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEgdjUuMSkgb24gU25hcGRyYWdvbiBTTTg0NTAgU29Dcy4gVGhpcyBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBvbiBhbWQ2NCBhcyBpdCByZXF1aXJlcyBwaHlzaWNhbCBRdWFsY29tbSBTb0MgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYWE0N2RhYjA0OTAzNTI4NzUzNGNiMzRmOWE2OTY5Njc5NmQ1YWJiZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgU2VwIDkgMDM6MjI6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG5pbmRleCA2OGVjNzZmZTQ0NzM1Li5kYjkxYmZhYWY4MzMyIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcbkBAIC01Myw2ICYjNDM7NTMsNyBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXG4mIzQzOyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbmluZGV4IGI4NzkzNDgyYjE4MTUuLjk1YjZmZDIyYTg0NjUgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuQEAgLTI2MjUsNiAmIzQzOzI2MjUsNDcgQEAgYWRyZW5vX3NtbXU6IGlvbW11QDNkYTAwMDAge1xuIFx0XHRcdGRtYS1jb2hlcmVudDtcbiBcdFx0fTtcbiBcbiYjNDM7XHRcdGlwYTogaXBhQDNmNDAwMDAge1xuJiM0MztcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxzbTg0NTAtaXBhXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMCAweDNmNDAwMDAgMCAweDEwMDAwXHUwMDNlLFxuJiM0MztcdFx0XHQgICAgICBcdTAwM2MwIDB4M2Y1MDAwMCAwIDB4NTAwMFx1MDAzZSxcbiYjNDM7XHRcdFx0ICAgICAgXHUwMDNjMCAweDNlMDQwMDAgMCAweGZjMDAwXHUwMDNlO1xuJiM0MztcdFx0XHRyZWctbmFtZXMgPSBcJiMzNDtpcGEtcmVnXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDtpcGEtc2hhcmVkXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDtnc2lcJiMzNDs7XG4mIzQzO1x0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMCAweDBcdTAwM2UsXG4mIzQzO1x0XHRcdFx0IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMiAweDBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0XHRpbnRlcnJ1cHRzLWV4dGVuZGVkID0gXHUwMDNjXHUwMDI2aW50YyBHSUNfU1BJIDY1NCBJUlFfVFlQRV9FREdFX1JJU0lOR1x1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9pbiAwIElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDEgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2U7XG4mIzQzO1x0XHRcdGludGVycnVwdC1uYW1lcyA9IFwmIzM0O2lwYVwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdCAgXCYjMzQ7Z3NpXCYjMzQ7LFxuJiM0MztcdFx0XHRcdFx0ICBcJiMzNDtpcGEtY2xvY2stcXVlcnlcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHQgIFwmIzM0O2lwYS1zZXR1cC1yZWFkeVwmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdGNsb2NrcyA9IFx1MDAzY1x1MDAyNnJwbWhjYyBSUE1IX0lQQV9DTEtcdTAwM2U7XG4mIzQzO1x0XHRcdGNsb2NrLW5hbWVzID0gXCYjMzQ7Y29yZVwmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdGludGVyY29ubmVjdHMgPSBcdTAwM2NcdTAwMjZhZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCBcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFx1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdFx1MDAzY1x1MDAyNmdlbV9ub2MgTUFTVEVSX0FQUFNTX1BST0MgMCBcdTAwMjZjb25maWdfbm9jIFNMQVZFX0lQQV9DRkcgMFx1MDAzZTtcbiYjNDM7XHRcdFx0aW50ZXJjb25uZWN0LW5hbWVzID0gXCYjMzQ7bWVtb3J5XCYjMzQ7LFxuJiM0MztcdFx0XHRcdFx0ICAgICBcJiMzNDtjb25maWdcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0XHRxY29tLHFtcCA9IFx1MDAzY1x1MDAyNmFvc3NfcW1wXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRcdFx0cWNvbSxzbWVtLXN0YXRlcyA9IFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMFx1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdCAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMVx1MDAzZTtcbiYjNDM7XHRcdFx0cWNvbSxzbWVtLXN0YXRlLW5hbWVzID0gXCYjMzQ7aXBhLWNsb2NrLWVuYWJsZWQtdmFsaWRcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHRcdFwmIzM0O2lwYS1jbG9jay1lbmFibGVkXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0c3JhbSA9IFx1MDAzY1x1MDAyNmlwYV9tb2RlbV90YWJsZXNcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0XHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0OztcbiYjNDM7XHRcdH07XG4mIzQzO1xuIFx0XHR1c2JfMV9oc3BoeTogcGh5QDg4ZTMwMDAge1xuIFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHNtODQ1MC11c2ItaHMtcGh5XCYjMzQ7LFxuIFx0XHRcdFx0ICAgICBcJiMzNDtxY29tLHVzYi1zbnBzLWhzLTdubS1waHlcJiMzNDs7XG5AQCAtNDk1NywyMSAmIzQzOzQ5OTgsMjUgQEAgY3RpQDEzOTAwMDAwIHtcbiBcdFx0XHRjbG9jay1uYW1lcyA9IFwmIzM0O2FwYl9wY2xrXCYjMzQ7O1xuIFx0XHR9O1xuIFxuLVx0XHRzcmFtQDE0NmFhMDAwIHtcbiYjNDM7XHRcdHNyYW1AMTQ2ODAwMDAge1xuIFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHNtODQ1MC1pbWVtXCYjMzQ7LCBcJiMzNDtzeXNjb25cJiMzNDssIFwmIzM0O3NpbXBsZS1tZmRcJiMzNDs7XG4tXHRcdFx0cmVnID0gXHUwMDNjMCAweDE0NmFhMDAwIDAgMHgxMDAwXHUwMDNlO1xuLVx0XHRcdHJhbmdlcyA9IFx1MDAzYzAgMCAweDE0NmFhMDAwIDB4MTAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMCAweDE0NjgwMDAwIDAgMHg0MDAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2ODAwMDAgMHg0MDAwMFx1MDAzZTtcbiBcbiBcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4gXHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFxuLVx0XHRcdG1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAxYyB7XG4tXHRcdFx0XHRyZWcgPSBcdTAwM2MweDFjIDB4NFx1MDAzZTtcbiYjNDM7XHRcdFx0aXBhX21vZGVtX3RhYmxlczogbW9kZW0tdGFibGVzQDI4MDAwIHtcbiYjNDM7XHRcdFx0XHRyZWcgPSBcdTAwM2MweDI4MDAwIDB4MjAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0fTtcbiYjNDM7XG4mIzQzO1x0XHRcdG1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAyYTAxYyB7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyYTAxYyAweDRcdTAwM2U7XG4gXHRcdFx0fTtcbiBcbi1cdFx0XHRwaWwtcmVsb2NAOTRjIHtcbiYjNDM7XHRcdFx0cGlsLXJlbG9jQDJhOTRjIHtcbiBcdFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHBpbC1yZWxvYy1pbmZvXCYjMzQ7O1xuLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg5NGMgMHhjOFx1MDAzZTtcbiYjNDM7XHRcdFx0XHRyZWcgPSBcdTAwM2MweDJhOTRjIDB4YzhcdTAwM2U7XG4gXHRcdFx0fTtcbiBcdFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbmluZGV4IGUxNDhlYzNjMWExMDEuLmQ0OTk1YzJlOGNhMDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuQEAgLTcsNyAmIzQzOzcsNyBAQCBJUEFfUkVHX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcbiAjIFNvbWUgSVBBIHZlcnNpb25zIGNhbiByZXVzZSBhbm90aGVyIHNldCBvZiBHU0kgcmVnaXN0ZXIgZGVmaW5pdGlvbnMuXG4gR1NJX1JFR19WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjAgNC41IDQuOSA0LjExIDUuMFxuIFxuLUlQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjIgNS41XG4mIzQzO0lQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxuIFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcdCYjNDM7PVx0aXBhLm9cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi43ZDdiYzE5M2I3NzRjXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcbkBAIC0wLDAgJiM0MzsxLDQ3NiBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MztcbiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDIzLTIwMjQgTGluYXJvIEx0ZC4gKi9cbiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDI2IE5hemFyIEtvbXBhbmV0cyBcdTAwM2N4bGllNzY2OUBnbWFpbC5jb21cdTAwM2UgKi9cbiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSBcdTAwM2Nlc3RldXd1QHByb3Rvbi5tZVx1MDAzZSAqL1xuJiM0MztcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2xvZzIuaFx1MDAzZVxuJiM0MztcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX2RhdGEuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDsuLi9pcGFfZW5kcG9pbnQuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDsuLi9pcGFfbWVtLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX3ZlcnNpb24uaFwmIzM0O1xuJiM0MztcbiYjNDM7LyoqIGVudW0gaXBhX3Jlc291cmNlX3R5cGUgLSBJUEEgcmVzb3VyY2UgdHlwZXMgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7ZW51bSBpcGFfcmVzb3VyY2VfdHlwZSB7XG4mIzQzO1x0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFNcdFx0PSAwLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkYsXG4mIzQzO1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSUyxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVMsXG4mIzQzO1xuJiM0MztcdC8qIERlc3RpbmF0aW9uIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcdFx0PSAwLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXG4mIzQzO1x0SVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFMsXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBSZXNvdXJjZSBncm91cHMgdXNlZCBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztlbnVtIGlwYV9yc3JjX2dyb3VwX2lkIHtcbiYjNDM7XHQvKiBTb3VyY2UgcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi9cbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfVUxcdFx0XHRcdD0gMCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfREwsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RNQSxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfUURTUyxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTEMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULFx0LyogTGFzdCBpbiBzZXQ7IG5vdCBhIHNvdXJjZSBncm91cCAqL1xuJiM0MztcbiYjNDM7XHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9VTFx0XHRcdFx0PSAwLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzIsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8zLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVUMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXHQvKiBMYXN0OyBub3QgYSBkZXN0aW5hdGlvbiBncm91cCAqL1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogUVNCIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9xc2JfZGF0YSBpcGFfcXNiX2RhdGFbXSA9IHtcbiYjNDM7XHRbSVBBX1FTQl9NQVNURVJfRERSXSA9IHtcbiYjNDM7XHRcdC5tYXhfd3JpdGVzXHRcdD0gMCxcbiYjNDM7XHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbiYjNDM7XHRcdC5tYXhfcmVhZHNfYmVhdHNcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfUVNCX01BU1RFUl9QQ0lFXSA9IHtcbiYjNDM7XHRcdC5tYXhfd3JpdGVzXHRcdD0gMCxcbiYjNDM7XHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbiYjNDM7XHRcdC5tYXhfcmVhZHNfYmVhdHNcdD0gMCxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogRW5kcG9pbnQgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2dzaV9lbmRwb2ludF9kYXRhIGlwYV9nc2lfZW5kcG9pbnRfZGF0YVtdID0ge1xuJiM0MztcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAxMixcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAxNCxcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4mIzQzO1x0XHQuY2hhbm5lbCA9IHtcbiYjNDM7XHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC50bHZfY291bnRcdD0gMjAsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmVuZHBvaW50ID0ge1xuJiM0MztcdFx0XHQuY29uZmlnID0ge1xuJiM0MztcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXG4mIzQzO1x0XHRcdFx0LmRtYV9tb2RlXHQ9IHRydWUsXG4mIzQzO1x0XHRcdFx0LmRtYV9lbmRwb2ludFx0PSBJUEFfRU5EUE9JTlRfQVBfTEFOX1JYLFxuJiM0MztcdFx0XHRcdC50eCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5zZXFfdHlwZSA9IElQQV9TRVFfRE1BLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMTMsXG4mIzQzO1x0XHQuZW5kcG9pbnRfaWRcdD0gMTYsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSBmYWxzZSxcbiYjNDM7XHRcdC5jaGFubmVsID0ge1xuJiM0MztcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LmV2ZW50X2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmNvbmZpZyA9IHtcbiYjNDM7XHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuJiM0MztcdFx0XHRcdC5hZ2dyZWdhdGlvblx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5zdGF0dXNfZW5hYmxlXHQ9IHRydWUsXG4mIzQzO1x0XHRcdFx0LnJ4ID0ge1xuJiM0MztcdFx0XHRcdFx0LmJ1ZmZlcl9zaXplXHQ9IDgxOTIsXG4mIzQzO1x0XHRcdFx0XHQucGFkX2FsaWduXHQ9IGlsb2cyKHNpemVvZih1MzIpKSxcbiYjNDM7XHRcdFx0XHRcdC5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsXG4mIzQzO1x0XHRcdFx0fSxcbiYjNDM7XHRcdFx0fSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcbiYjNDM7XHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbiYjNDM7XHRcdC5jaGFubmVsX2lkXHQ9IDExLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDIsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuJiM0MztcdFx0LmNoYW5uZWwgPSB7XG4mIzQzO1x0XHRcdC50cmVfY291bnRcdD0gNTEyLFxuJiM0MztcdFx0XHQuZXZlbnRfY291bnRcdD0gNTEyLFxuJiM0MztcdFx0XHQudGx2X2NvdW50XHQ9IDI1LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4mIzQzO1x0XHRcdC5jb25maWcgPSB7XG4mIzQzO1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19VTCxcbiYjNDM7XHRcdFx0XHQuY2hlY2tzdW0gICAgICAgPSB0cnVlLFxuJiM0MztcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC50eCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5zZXFfdHlwZSA9IElQQV9TRVFfMl9QQVNTX1NLSVBfTEFTVF9VQyxcbiYjNDM7XHRcdFx0XHRcdC5zdGF0dXNfZW5kcG9pbnQgPVxuJiM0MztcdFx0XHRcdFx0XHRJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlgsXG4mIzQzO1x0XHRcdFx0fSxcbiYjNDM7XHRcdFx0fSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1JYXSA9IHtcbiYjNDM7XHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbiYjNDM7XHRcdC5jaGFubmVsX2lkXHQ9IDEsXG4mIzQzO1x0XHQuZW5kcG9pbnRfaWRcdD0gMjMsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSBmYWxzZSxcbiYjNDM7XHRcdC5jaGFubmVsID0ge1xuJiM0MztcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LmV2ZW50X2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmNvbmZpZyA9IHtcbiYjNDM7XHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuJiM0MztcdFx0XHRcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXG4mIzQzO1x0XHRcdFx0LnFtYXBcdFx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5hZ2dyZWdhdGlvblx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5yeCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuJiM0MztcdFx0XHRcdFx0LmFnZ3JfdGltZV9saW1pdCA9IDUwMCxcbiYjNDM7XHRcdFx0XHRcdC5hZ2dyX2Nsb3NlX2VvZlx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfTU9ERU0sXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAwLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDEyLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfTU9ERU0sXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSA3LFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDIxLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfTU9ERU0sXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAyLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDE1LFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBTb3VyY2UgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9zcmNbXSA9IHtcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX1BLVF9DT05URVhUU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSA3LFx0Lm1heCA9IDEyLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDEsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAyMSxcdC5tYXggPSAyMSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxMCxcdC5tYXggPSAxMCxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRl0gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAzMyxcdC5tYXggPSAzMyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAyMCxcdC5tYXggPSAyMCxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC8qIE1hcmtlZCBhcyB1bnVzZWQgZG93bnN0cmVhbSAqL1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfRE1BXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19RRFNTXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuJiM0MztcdFx0XHQubWluID0gMSxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19BQ0tfRU5UUklFU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAzOCxcdC5tYXggPSAzOCxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxNixcdC5tYXggPSAxNixcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIERlc3RpbmF0aW9uIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7XG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gNixcdC5tYXggPSA2LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDUsXHQubWF4ID0gNSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0ge1xuJiM0MztcdFx0XHQubWluID0gMzksXHQubWF4ID0gMzksXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gMyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogUmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7XG4mIzQzO1x0LnJzcmNfZ3JvdXBfZHN0X2NvdW50XHQ9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCxcbiYjNDM7XHQucnNyY19ncm91cF9zcmNfY291bnRcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULFxuJiM0MztcdC5yZXNvdXJjZV9zcmNfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSxcbiYjNDM7XHQucmVzb3VyY2Vfc3JjXHRcdD0gaXBhX3Jlc291cmNlX3NyYyxcbiYjNDM7XHQucmVzb3VyY2VfZHN0X2NvdW50XHQ9IEFSUkFZX1NJWkUoaXBhX3Jlc291cmNlX2RzdCksXG4mIzQzO1x0LnJlc291cmNlX2RzdFx0XHQ9IGlwYV9yZXNvdXJjZV9kc3QsXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBJUEEtcmVzaWRlbnQgbWVtb3J5IHJlZ2lvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHtcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX0VWRU5UX1JJTkcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgwMDAwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDEwMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX1NIQVJFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDEwMDAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA4MCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfSU5GTyxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDEwODAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDIwMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSX0hBU0hFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDEyODgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTMwOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVJfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTM4OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVIsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxNDA4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE0ODgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxNTI4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X1JPVVRFX0hBU0hFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE1YzgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxNjY4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX0hFQURFUixcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE3MDgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDI0MCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfSEVBREVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTk0OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMWUwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDFiNDAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MGIyMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfUFJPQ19DVFgsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyNjYwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAyMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX01PREVNLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4Mjg2OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDYwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDI4YzgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA0OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfVEVUSEVSSU5HLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MjkxMCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwM2MwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19GSUxURVJfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDBiYTAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX0RST1AsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwMjAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwZDQ4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9OQVRfVEFCTEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDA5MDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1BETl9DT05GSUcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAxMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX1NUQVRTX0RST1AsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0ZmU4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwMTgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtX2RhdGEgaXBhX21lbV9kYXRhID0ge1xuJiM0MztcdC5sb2NhbF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9tZW1fbG9jYWxfZGF0YSksXG4mIzQzO1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuJiM0MztcdC5pbWVtX2FkZHJcdD0gMHgxNDZhODAwMCxcbiYjNDM7XHQuaW1lbV9zaXplXHQ9IDB4MDAwMDIwMDAsXG4mIzQzO1x0LnNtZW1fc2l6ZVx0PSAweDAwMDA5MDAwLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogSW50ZXJjb25uZWN0IHJhdGVzIGFyZSBpbiAxMDAwIGJ5dGUvc2Vjb25kIHVuaXRzICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0ge1xuJiM0MztcdHtcbiYjNDM7XHRcdC5uYW1lXHRcdFx0PSBcJiMzNDttZW1vcnlcJiMzNDssXG4mIzQzO1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSAxOTAwMDAwLFx0LyogMS45IEdCcHMgKi9cbiYjNDM7XHRcdC5hdmVyYWdlX2JhbmR3aWR0aFx0PSA1OTAwMDAsXHQvKiA1OTAgTUJwcyAqL1xuJiM0MztcdH0sXG4mIzQzO1x0LyogQXZlcmFnZSByYXRlIGlzIHVudXNlZCBmb3IgdGhlIG5leHQgaW50ZXJjb25uZWN0ICovXG4mIzQzO1x0e1xuJiM0MztcdFx0Lm5hbWVcdFx0XHQ9IFwmIzM0O2NvbmZpZ1wmIzM0OyxcbiYjNDM7XHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDc2ODAwLFx0LyogNzYuOCBNQnBzICovXG4mIzQzO1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gMCxcdFx0LyogdW51c2VkICovXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XG4mIzQzO1x0LmNvcmVfY2xvY2tfcmF0ZVx0PSAxMjAgKiAxMDAwICogMTAwMCxcdC8qIEh6ICovXG4mIzQzO1x0LmludGVyY29ubmVjdF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksXG4mIzQzO1x0LmludGVyY29ubmVjdF9kYXRhXHQ9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi9cbiYjNDM7Y29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzEgPSB7XG4mIzQzO1x0LnZlcnNpb25cdFx0PSBJUEFfVkVSU0lPTl81XzEsXG4mIzQzO1x0LnFzYl9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSxcbiYjNDM7XHQucXNiX2RhdGFcdFx0PSBpcGFfcXNiX2RhdGEsXG4mIzQzO1x0Lm1vZGVtX3JvdXRlX2NvdW50XHQ9IDExLFxuJiM0MztcdC5lbmRwb2ludF9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcbiYjNDM7XHQuZW5kcG9pbnRfZGF0YVx0XHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcbiYjNDM7XHQucmVzb3VyY2VfZGF0YVx0XHQ9IFx1MDAyNmlwYV9yZXNvdXJjZV9kYXRhLFxuJiM0MztcdC5tZW1fZGF0YVx0XHQ9IFx1MDAyNmlwYV9tZW1fZGF0YSxcbiYjNDM7XHQucG93ZXJfZGF0YVx0XHQ9IFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxuJiM0Mzt9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5pbmRleCBlMTNjZjgzNWEwMTNjLi5hNTcwNzJiYTRiZWY2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuQEAgLTExMCw2ICYjNDM7MTEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICpnc2lfcmVncyhzdHJ1Y3QgZ3NpICpnc2kpXG4gXHRcdHJldHVybiBcdTAwMjZnc2lfcmVnc192NF8xMTtcbiBcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxuJiM0MztcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y1XzA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuaW5kZXggM2ViOWRjMmNlMzM5OC4uZmU2ZjdkNWJmZTg4YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuQEAgLTI1Myw2ICYjNDM7MjUzLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF83O1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfOTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0XzExO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMDtcbiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMjtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzU7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuaW5kZXggMTRhYzJkMmZhZjdjMi4uODRiZWM0NjFkMjJjZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuQEAgLTY3Miw2ICYjNDM7NjcyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwYV9tYXRjaFtdID0ge1xuIFx0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNkeDY1LWlwYVwmIzM0OyxcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8wLFxuIFx0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNtODQ1MC1pcGFcJiMzNDssXG4mIzQzO1x0XHQuZGF0YVx0XHQ9IFx1MDAyNmlwYV9kYXRhX3Y1XzEsXG4mIzQzO1x0fSxcbiBcdHtcbiBcdFx0LmNvbXBhdGlibGVcdD0gXCYjMzQ7cWNvbSxtaWxvcy1pcGFcJiMzNDssXG4gXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMixcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuaW5kZXggMzBiZDY5ZjRjMTQ3Yy4uNWYyMmNhNjI5NWIxNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbkBAIC0xMjUsNiAmIzQzOzEyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqaXBhX3JlZ3MoZW51bSBpcGFfdmVyc2lvbiB2ZXJzaW9uKVxuIFx0Y2FzZSBJUEFfVkVSU0lPTl80XzExOlxuIFx0XHRyZXR1cm4gXHUwMDI2aXBhX3JlZ3NfdjRfMTE7XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMDpcbiYjNDM7XHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxuIFx0XHRyZXR1cm4gXHUwMDI2aXBhX3JlZ3NfdjVfMDtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV81OlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGFhNDdkYWIwNDkwMzUyODc1MzRjYjM0ZjlhNjk2OTY3OTZkNWFiYmYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIFNlcCA5IDAzOjIyOjIxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sCmluZGV4IDY4ZWM3NmZlNDQ3MzUuLmRiOTFiZmFhZjgzMzIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWwKQEAgLTUzLDYgJiM0Mzs1Myw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYQogICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhCiAgICAgICAgICAgLSBxY29tLHNtODM1MC1pcGEKJiM0MzsgICAgICAgICAgLSBxY29tLHNtODQ1MC1pcGEKICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYQogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGVudW06CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kKaW5kZXggYjg3OTM0ODJiMTgxNS4uOTViNmZkMjJhODQ2NSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaQpAQCAtMjYyNSw2ICYjNDM7MjYyNSw0NyBAQCBhZHJlbm9fc21tdTogaW9tbXVAM2RhMDAwMCB7CiAJCQlkbWEtY29oZXJlbnQ7CiAJCX07CiAKJiM0MzsJCWlwYTogaXBhQDNmNDAwMDAgewomIzQzOwkJCWNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7OwomIzQzOwomIzQzOwkJCXJlZyA9ICZsdDswIDB4M2Y0MDAwMCAwIDB4MTAwMDAmZ3Q7LAomIzQzOwkJCSAgICAgICZsdDswIDB4M2Y1MDAwMCAwIDB4NTAwMCZndDssCiYjNDM7CQkJICAgICAgJmx0OzAgMHgzZTA0MDAwIDAgMHhmYzAwMCZndDs7CiYjNDM7CQkJcmVnLW5hbWVzID0gJiMzNDtpcGEtcmVnJiMzNDssCiYjNDM7CQkJCSAgICAmIzM0O2lwYS1zaGFyZWQmIzM0OywKJiM0MzsJCQkJICAgICYjMzQ7Z3NpJiMzNDs7CiYjNDM7CQkJaW9tbXVzID0gJmx0OyZhbXA7YXBwc19zbW11IDB4NWMwIDB4MCZndDssCiYjNDM7CQkJCSAmbHQ7JmFtcDthcHBzX3NtbXUgMHg1YzIgMHgwJmd0OzsKJiM0MzsKJiM0MzsJCQlpbnRlcnJ1cHRzLWV4dGVuZGVkID0gJmx0OyZhbXA7aW50YyBHSUNfU1BJIDY1NCBJUlFfVFlQRV9FREdFX1JJU0lORyZndDssCiYjNDM7CQkJCQkgICAgICAmbHQ7JmFtcDtpbnRjIEdJQ19TUEkgNDMyIElSUV9UWVBFX0xFVkVMX0hJR0gmZ3Q7LAomIzQzOwkJCQkJICAgICAgJmx0OyZhbXA7aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkcmZ3Q7LAomIzQzOwkJCQkJICAgICAgJmx0OyZhbXA7aXBhX3NtcDJwX2luIDEgSVJRX1RZUEVfRURHRV9SSVNJTkcmZ3Q7OwomIzQzOwkJCWludGVycnVwdC1uYW1lcyA9ICYjMzQ7aXBhJiMzNDssCiYjNDM7CQkJCQkgICYjMzQ7Z3NpJiMzNDssCiYjNDM7CQkJCQkgICYjMzQ7aXBhLWNsb2NrLXF1ZXJ5JiMzNDssCiYjNDM7CQkJCQkgICYjMzQ7aXBhLXNldHVwLXJlYWR5JiMzNDs7CiYjNDM7CiYjNDM7CQkJY2xvY2tzID0gJmx0OyZhbXA7cnBtaGNjIFJQTUhfSVBBX0NMSyZndDs7CiYjNDM7CQkJY2xvY2stbmFtZXMgPSAmIzM0O2NvcmUmIzM0OzsKJiM0MzsKJiM0MzsJCQlpbnRlcmNvbm5lY3RzID0gJmx0OyZhbXA7YWdncmUyX25vYyBNQVNURVJfSVBBIDAgJmFtcDttY192aXJ0IFNMQVZFX0VCSTEgMCZndDssCiYjNDM7CQkJCQkmbHQ7JmFtcDtnZW1fbm9jIE1BU1RFUl9BUFBTU19QUk9DIDAgJmFtcDtjb25maWdfbm9jIFNMQVZFX0lQQV9DRkcgMCZndDs7CiYjNDM7CQkJaW50ZXJjb25uZWN0LW5hbWVzID0gJiMzNDttZW1vcnkmIzM0OywKJiM0MzsJCQkJCSAgICAgJiMzNDtjb25maWcmIzM0OzsKJiM0MzsKJiM0MzsJCQlxY29tLHFtcCA9ICZsdDsmYW1wO2Fvc3NfcW1wJmd0OzsKJiM0MzsKJiM0MzsJCQlxY29tLHNtZW0tc3RhdGVzID0gJmx0OyZhbXA7aXBhX3NtcDJwX291dCAwJmd0OywKJiM0MzsJCQkJCSAgICZsdDsmYW1wO2lwYV9zbXAycF9vdXQgMSZndDs7CiYjNDM7CQkJcWNvbSxzbWVtLXN0YXRlLW5hbWVzID0gJiMzNDtpcGEtY2xvY2stZW5hYmxlZC12YWxpZCYjMzQ7LAomIzQzOwkJCQkJCSYjMzQ7aXBhLWNsb2NrLWVuYWJsZWQmIzM0OzsKJiM0MzsKJiM0MzsJCQlzcmFtID0gJmx0OyZhbXA7aXBhX21vZGVtX3RhYmxlcyZndDs7CiYjNDM7CiYjNDM7CQkJc3RhdHVzID0gJiMzNDtkaXNhYmxlZCYjMzQ7OwomIzQzOwkJfTsKJiM0MzsKIAkJdXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLXVzYi1ocy1waHkmIzM0OywKIAkJCQkgICAgICYjMzQ7cWNvbSx1c2Itc25wcy1ocy03bm0tcGh5JiMzNDs7CkBAIC00OTU3LDIxICYjNDM7NDk5OCwyNSBAQCBjdGlAMTM5MDAwMDAgewogCQkJY2xvY2stbmFtZXMgPSAmIzM0O2FwYl9wY2xrJiMzNDs7CiAJCX07CiAKLQkJc3JhbUAxNDZhYTAwMCB7CiYjNDM7CQlzcmFtQDE0NjgwMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLWltZW0mIzM0OywgJiMzNDtzeXNjb24mIzM0OywgJiMzNDtzaW1wbGUtbWZkJiMzNDs7Ci0JCQlyZWcgPSAmbHQ7MCAweDE0NmFhMDAwIDAgMHgxMDAwJmd0OzsKLQkJCXJhbmdlcyA9ICZsdDswIDAgMHgxNDZhYTAwMCAweDEwMDAmZ3Q7OwomIzQzOwkJCXJlZyA9ICZsdDswIDB4MTQ2ODAwMDAgMCAweDQwMDAwJmd0OzsKJiM0MzsJCQlyYW5nZXMgPSAmbHQ7MCAwIDB4MTQ2ODAwMDAgMHg0MDAwMCZndDs7CiAKIAkJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwogCQkJI3NpemUtY2VsbHMgPSAmbHQ7MSZndDs7CiAKLQkJCW1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAxYyB7Ci0JCQkJcmVnID0gJmx0OzB4MWMgMHg0Jmd0OzsKJiM0MzsJCQlpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMjgwMDAgewomIzQzOwkJCQlyZWcgPSAmbHQ7MHgyODAwMCAweDIwMDAmZ3Q7OwomIzQzOwkJCX07CiYjNDM7CiYjNDM7CQkJbWluaWR1bXBfY29uZmlnOiBtaW5pZHVtcC1zcmFtQDJhMDFjIHsKJiM0MzsJCQkJcmVnID0gJmx0OzB4MmEwMWMgMHg0Jmd0OzsKIAkJCX07CiAKLQkJCXBpbC1yZWxvY0A5NGMgewomIzQzOwkJCXBpbC1yZWxvY0AyYTk0YyB7CiAJCQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxwaWwtcmVsb2MtaW5mbyYjMzQ7OwotCQkJCXJlZyA9ICZsdDsweDk0YyAweGM4Jmd0OzsKJiM0MzsJCQkJcmVnID0gJmx0OzB4MmE5NGMgMHhjOCZndDs7CiAJCQl9OwogCQl9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUKaW5kZXggZTE0OGVjM2MxYTEwMS4uZDQ5OTVjMmU4Y2EwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZQpAQCAtNyw3ICYjNDM7Nyw3IEBAIElQQV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjUKICMgU29tZSBJUEEgdmVyc2lvbnMgY2FuIHJldXNlIGFub3RoZXIgc2V0IG9mIEdTSSByZWdpc3RlciBkZWZpbml0aW9ucy4KIEdTSV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMCA0LjUgNC45IDQuMTEgNS4wCiAKLUlQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4yIDUuNQomIzQzO0lQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjUKIAogb2JqLSQoQ09ORklHX1FDT01fSVBBKQkmIzQzOz0JaXBhLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjdkN2JjMTkzYjc3NGMKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMKQEAgLTAsMCAmIzQzOzEsNDc2IEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKJiM0MzsKJiM0MzsvKiBDb3B5cmlnaHQgKEMpIDIwMjMtMjAyNCBMaW5hcm8gTHRkLiAqLwomIzQzOy8qIENvcHlyaWdodCAoQykgMjAyNiBOYXphciBLb21wYW5ldHMgJmx0O3hsaWU3NjY5QGdtYWlsLmNvbSZndDsgKi8KJiM0MzsvKiBDb3B5cmlnaHQgKEMpIDIwMjYgRXN0ZWJhbiBVcnJ1dGlhICZsdDtlc3RldXd1QHByb3Rvbi5tZSZndDsgKi8KJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvYXJyYXlfc2l6ZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9sb2cyLmgmZ3Q7CiYjNDM7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfZGF0YS5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0Oy4uL2lwYV9lbmRwb2ludC5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0Oy4uL2lwYV9tZW0uaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfdmVyc2lvbi5oJiMzNDsKJiM0MzsKJiM0MzsvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO2VudW0gaXBhX3Jlc291cmNlX3R5cGUgewomIzQzOwkvKiBTb3VyY2UgcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFMJCT0gMCwKJiM0MzsJSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFMsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkYsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlMsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19BQ0tfRU5UUklFUywKJiM0MzsKJiM0MzsJLyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlMJCT0gMCwKJiM0MzsJSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSUywKJiM0MzsJSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFMsCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBSZXNvdXJjZSBncm91cHMgdXNlZCBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO2VudW0gaXBhX3JzcmNfZ3JvdXBfaWQgewomIzQzOwkvKiBTb3VyY2UgcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi8KJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VMCQkJCT0gMCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX0RMLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfRE1BLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfUURTUywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULAkvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovCiYjNDM7CiYjNDM7CS8qIERlc3RpbmF0aW9uIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VTAkJCQk9IDAsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9ETCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX1VDLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsCS8qIExhc3Q7IG5vdCBhIGRlc3RpbmF0aW9uIGdyb3VwICovCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBRU0IgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7CiYjNDM7CVtJUEFfUVNCX01BU1RFUl9ERFJdID0gewomIzQzOwkJLm1heF93cml0ZXMJCT0gMCwKJiM0MzsJCS5tYXhfcmVhZHMJCT0gMCwJLyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi8KJiM0MzsJCS5tYXhfcmVhZHNfYmVhdHMJPSAwLAomIzQzOwl9LAomIzQzOwlbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7CiYjNDM7CQkubWF4X3dyaXRlcwkJPSAwLAomIzQzOwkJLm1heF9yZWFkcwkJPSAwLAkvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqLwomIzQzOwkJLm1heF9yZWFkc19iZWF0cwk9IDAsCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSBpcGFfZ3NpX2VuZHBvaW50X2RhdGFbXSA9IHsKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9DT01NQU5EX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfQVAsCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDEyLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMTQsCiYjNDM7CQkudG93YXJkX2lwYQk9IHRydWUsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gMjU2LAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDI1NiwKJiM0MzsJCQkudGx2X2NvdW50CT0gMjAsCiYjNDM7CQl9LAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5jb25maWcgPSB7CiYjNDM7CQkJCS5yZXNvdXJjZV9ncm91cAk9IElQQV9SU1JDX0dST1VQX1NSQ19VTCwKJiM0MzsJCQkJLmRtYV9tb2RlCT0gdHJ1ZSwKJiM0MzsJCQkJLmRtYV9lbmRwb2ludAk9IElQQV9FTkRQT0lOVF9BUF9MQU5fUlgsCiYjNDM7CQkJCS50eCA9IHsKJiM0MzsJCQkJCS5zZXFfdHlwZSA9IElQQV9TRVFfRE1BLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX0FQX0xBTl9SWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxMywKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDE2LAomIzQzOwkJLnRvd2FyZF9pcGEJPSBmYWxzZSwKJiM0MzsJCS5jaGFubmVsID0gewomIzQzOwkJCS50cmVfY291bnQJPSAyNTYsCiYjNDM7CQkJLmV2ZW50X2NvdW50CT0gMjU2LAomIzQzOwkJCS50bHZfY291bnQJPSA5LAomIzQzOwkJfSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuY29uZmlnID0gewomIzQzOwkJCQkucmVzb3VyY2VfZ3JvdXAJPSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsCiYjNDM7CQkJCS5hZ2dyZWdhdGlvbgk9IHRydWUsCiYjNDM7CQkJCS5zdGF0dXNfZW5hYmxlCT0gdHJ1ZSwKJiM0MzsJCQkJLnJ4ID0gewomIzQzOwkJCQkJLmJ1ZmZlcl9zaXplCT0gODE5MiwKJiM0MzsJCQkJCS5wYWRfYWxpZ24JPSBpbG9nMihzaXplb2YodTMyKSksCiYjNDM7CQkJCQkuYWdncl90aW1lX2xpbWl0ID0gNTAwLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfQVAsCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDExLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMiwKJiM0MzsJCS50b3dhcmRfaXBhCT0gdHJ1ZSwKJiM0MzsJCS5jaGFubmVsID0gewomIzQzOwkJCS50cmVfY291bnQJPSA1MTIsCiYjNDM7CQkJLmV2ZW50X2NvdW50CT0gNTEyLAomIzQzOwkJCS50bHZfY291bnQJPSAyNSwKJiM0MzsJCX0sCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmZpbHRlcl9zdXBwb3J0CT0gdHJ1ZSwKJiM0MzsJCQkuY29uZmlnID0gewomIzQzOwkJCQkucmVzb3VyY2VfZ3JvdXAJPSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsCiYjNDM7CQkJCS5jaGVja3N1bSAgICAgICA9IHRydWUsCiYjNDM7CQkJCS5xbWFwCQk9IHRydWUsCiYjNDM7CQkJCS5zdGF0dXNfZW5hYmxlCT0gdHJ1ZSwKJiM0MzsJCQkJLnR4ID0gewomIzQzOwkJCQkJLnNlcV90eXBlID0gSVBBX1NFUV8yX1BBU1NfU0tJUF9MQVNUX1VDLAomIzQzOwkJCQkJLnN0YXR1c19lbmRwb2ludCA9CiYjNDM7CQkJCQkJSVBBX0VORFBPSU5UX01PREVNX0FQX1JYLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX0FQX01PREVNX1JYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfQVAsCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDEsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAyMywKJiM0MzsJCS50b3dhcmRfaXBhCT0gZmFsc2UsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gMjU2LAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDI1NiwKJiM0MzsJCQkudGx2X2NvdW50CT0gOSwKJiM0MzsJCX0sCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmNvbmZpZyA9IHsKJiM0MzsJCQkJLnJlc291cmNlX2dyb3VwCT0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLAomIzQzOwkJCQkuY2hlY2tzdW0gICAgICAgPSB0cnVlLAomIzQzOwkJCQkucW1hcAkJPSB0cnVlLAomIzQzOwkJCQkuYWdncmVnYXRpb24JPSB0cnVlLAomIzQzOwkJCQkucnggPSB7CiYjNDM7CQkJCQkuYnVmZmVyX3NpemUJPSA4MTkyLAomIzQzOwkJCQkJLmFnZ3JfdGltZV9saW1pdCA9IDUwMCwKJiM0MzsJCQkJCS5hZ2dyX2Nsb3NlX2VvZgk9IHRydWUsCiYjNDM7CQkJCX0sCiYjNDM7CQkJfSwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0gewomIzQzOwkJLmVlX2lkCQk9IEdTSV9FRV9NT0RFTSwKJiM0MzsJCS5jaGFubmVsX2lkCT0gMCwKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDEyLAomIzQzOwkJLnRvd2FyZF9pcGEJPSB0cnVlLAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5maWx0ZXJfc3VwcG9ydAk9IHRydWUsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX01PREVNX0FQX1JYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfTU9ERU0sCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDcsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAyMSwKJiM0MzsJCS50b3dhcmRfaXBhCT0gZmFsc2UsCiYjNDM7CX0sCiYjNDM7CVtJUEFfRU5EUE9JTlRfTU9ERU1fRExfTkxPX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfTU9ERU0sCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDIsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAxNSwKJiM0MzsJCS50b3dhcmRfaXBhCT0gdHJ1ZSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuZmlsdGVyX3N1cHBvcnQJPSB0cnVlLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIFNvdXJjZSByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7CiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHsKJiM0MzsJCQkubWluID0gNywJLm1heCA9IDEyLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMSwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAyMSwJLm1heCA9IDIxLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMTAsCS5tYXggPSAxMCwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9CVUZGXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMzMsCS5tYXggPSAzMywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDIwLAkubWF4ID0gMjAsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSU10gPSB7CiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CQkvKiBNYXJrZWQgYXMgdW51c2VkIGRvd25zdHJlYW0gKi8KJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX0RNQV0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CQkvKiBNYXJrZWQgYXMgdW51c2VkIGRvd25zdHJlYW0gKi8KJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1FEU1NdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0gewomIzQzOwkJCS5taW4gPSAxLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAzOCwJLm1heCA9IDM4LAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMTYsCS5tYXggPSAxNiwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7CiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gNiwJLm1heCA9IDYsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0gewomIzQzOwkJCS5taW4gPSA1LAkubWF4ID0gNSwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0gewomIzQzOwkJCS5taW4gPSAzOSwJLm1heCA9IDM5LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gMywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSAzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIFJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7CiYjNDM7CS5yc3JjX2dyb3VwX2RzdF9jb3VudAk9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCwKJiM0MzsJLnJzcmNfZ3JvdXBfc3JjX2NvdW50CT0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULAomIzQzOwkucmVzb3VyY2Vfc3JjX2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSwKJiM0MzsJLnJlc291cmNlX3NyYwkJPSBpcGFfcmVzb3VyY2Vfc3JjLAomIzQzOwkucmVzb3VyY2VfZHN0X2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSwKJiM0MzsJLnJlc291cmNlX2RzdAkJPSBpcGFfcmVzb3VyY2VfZHN0LAomIzQzO307CiYjNDM7CiYjNDM7LyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHsKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVUNfRVZFTlRfUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgwMDAwLAomIzQzOwkJLnNpemUJCT0gMHgxMDAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX1NIQVJFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMDAwLAomIzQzOwkJLnNpemUJCT0gMHgwMDgwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX0lORk8sCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTA4MCwKJiM0MzsJCS5zaXplCQk9IDB4MDIwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9WNF9GSUxURVJfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDEyODgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjRfRklMVEVSLAomIzQzOwkJLm9mZnNldAkJPSAweDEzMDgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMzg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y2X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDA4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDk4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFLAomIzQzOwkJLm9mZnNldAkJPSAweDE1MjgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEVfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDE1YzgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEUsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTY2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA5OCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTcwOCwKJiM0MzsJCS5zaXplCQk9IDB4MDI0MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9BUF9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTk0OCwKJiM0MzsJCS5zaXplCQk9IDB4MDFlMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxYjQwLAomIzQzOwkJLnNpemUJCT0gMHgwYjIwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1BST0NfQ1RYLAomIzQzOwkJLm9mZnNldAkJPSAweDI2NjAsCiYjNDM7CQkuc2l6ZQkJPSAweDAyMDAsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMCwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fU1RBVFNfUVVPVEFfTU9ERU0sCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mjg2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA2MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOGM4LAomIzQzOwkJLnNpemUJCT0gMHgwMDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOTEwLAomIzQzOwkJLnNpemUJCT0gMHgwM2MwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0ZJTFRFUl9ST1VURSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyY2QwLAomIzQzOwkJLnNpemUJCT0gMHgwYmEwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0RST1AsCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mzg3MCwKJiM0MzsJCS5zaXplCQk9IDB4MDAyMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgzODk4LAomIzQzOwkJLnNpemUJCT0gMHgwZDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX05BVF9UQUJMRSwKJiM0MzsJCS5vZmZzZXQJCT0gMHg0NWUwLAomIzQzOwkJLnNpemUJCT0gMHgwOTAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1BETl9DT05GSUcsCiYjNDM7CQkub2Zmc2V0CQk9IDB4NGVlOCwKJiM0MzsJCS5zaXplCQk9IDB4MDEwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9TVEFUU19EUk9QLAomIzQzOwkJLm9mZnNldAkJPSAweDRmZTgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwMTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMCwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7CiYjNDM7CS5sb2NhbF9jb3VudAk9IEFSUkFZX1NJWkUoaXBhX21lbV9sb2NhbF9kYXRhKSwKJiM0MzsJLmxvY2FsCQk9IGlwYV9tZW1fbG9jYWxfZGF0YSwKJiM0MzsJLmltZW1fYWRkcgk9IDB4MTQ2YTgwMDAsCiYjNDM7CS5pbWVtX3NpemUJPSAweDAwMDAyMDAwLAomIzQzOwkuc21lbV9zaXplCT0gMHgwMDAwOTAwMCwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0gewomIzQzOwl7CiYjNDM7CQkubmFtZQkJCT0gJiMzNDttZW1vcnkmIzM0OywKJiM0MzsJCS5wZWFrX2JhbmR3aWR0aAkJPSAxOTAwMDAwLAkvKiAxLjkgR0JwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gNTkwMDAwLAkvKiA1OTAgTUJwcyAqLwomIzQzOwl9LAomIzQzOwkvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi8KJiM0MzsJewomIzQzOwkJLm5hbWUJCQk9ICYjMzQ7Y29uZmlnJiMzNDssCiYjNDM7CQkucGVha19iYW5kd2lkdGgJCT0gNzY4MDAsCS8qIDc2LjggTUJwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gMCwJCS8qIHVudXNlZCAqLwomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogQ2xvY2sgYW5kIGludGVyY29ubmVjdCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9wb3dlcl9kYXRhIGlwYV9wb3dlcl9kYXRhID0gewomIzQzOwkuY29yZV9jbG9ja19yYXRlCT0gMTIwICogMTAwMCAqIDEwMDAsCS8qIEh6ICovCiYjNDM7CS5pbnRlcmNvbm5lY3RfY291bnQJPSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksCiYjNDM7CS5pbnRlcmNvbm5lY3RfZGF0YQk9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi8KJiM0Mztjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMSA9IHsKJiM0MzsJLnZlcnNpb24JCT0gSVBBX1ZFUlNJT05fNV8xLAomIzQzOwkucXNiX2NvdW50CQk9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSwKJiM0MzsJLnFzYl9kYXRhCQk9IGlwYV9xc2JfZGF0YSwKJiM0MzsJLm1vZGVtX3JvdXRlX2NvdW50CT0gMTEsCiYjNDM7CS5lbmRwb2ludF9jb3VudAkJPSBBUlJBWV9TSVpFKGlwYV9nc2lfZW5kcG9pbnRfZGF0YSksCiYjNDM7CS5lbmRwb2ludF9kYXRhCQk9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSwKJiM0MzsJLnJlc291cmNlX2RhdGEJCT0gJmFtcDtpcGFfcmVzb3VyY2VfZGF0YSwKJiM0MzsJLm1lbV9kYXRhCQk9ICZhbXA7aXBhX21lbV9kYXRhLAomIzQzOwkucG93ZXJfZGF0YQkJPSAmYW1wO2lwYV9wb3dlcl9kYXRhLAomIzQzO307CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYwppbmRleCBlMTNjZjgzNWEwMTNjLi5hNTcwNzJiYTRiZWY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMKQEAgLTExMCw2ICYjNDM7MTEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICpnc2lfcmVncyhzdHJ1Y3QgZ3NpICpnc2kpCiAJCXJldHVybiAmYW1wO2dzaV9yZWdzX3Y0XzExOwogCiAJY2FzZSBJUEFfVkVSU0lPTl81XzA6CiYjNDM7CWNhc2UgSVBBX1ZFUlNJT05fNV8xOgogCWNhc2UgSVBBX1ZFUlNJT05fNV8yOgogCWNhc2UgSVBBX1ZFUlNJT05fNV81OgogCQlyZXR1cm4gJmFtcDtnc2lfcmVnc192NV8wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaAppbmRleCAzZWI5ZGMyY2UzMzk4Li5mZTZmN2Q1YmZlODhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaApAQCAtMjUzLDYgJiM0MzsyNTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzc7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzk7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0XzExOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8wOwomIzQzO2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMjsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfNTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwppbmRleCAxNGFjMmQyZmFmN2MyLi44NGJlYzQ2MWQyMmNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwpAQCAtNjcyLDYgJiM0Mzs2NzIsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBhX21hdGNoW10gPSB7CiAJCS5jb21wYXRpYmxlCT0gJiMzNDtxY29tLHNkeDY1LWlwYSYjMzQ7LAogCQkuZGF0YQkJPSAmYW1wO2lwYV9kYXRhX3Y1XzAsCiAJfSwKJiM0MzsJewomIzQzOwkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7LAomIzQzOwkJLmRhdGEJCT0gJmFtcDtpcGFfZGF0YV92NV8xLAomIzQzOwl9LAogCXsKIAkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sbWlsb3MtaXBhJiMzNDssCiAJCS5kYXRhCQk9ICZhbXA7aXBhX2RhdGFfdjVfMiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jCmluZGV4IDMwYmQ2OWY0YzE0N2MuLjVmMjJjYTYyOTViMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuYwpAQCAtMTI1LDYgJiM0MzsxMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmlwYV9yZWdzKGVudW0gaXBhX3ZlcnNpb24gdmVyc2lvbikKIAljYXNlIElQQV9WRVJTSU9OXzRfMTE6CiAJCXJldHVybiAmYW1wO2lwYV9yZWdzX3Y0XzExOwogCWNhc2UgSVBBX1ZFUlNJT05fNV8wOgomIzQzOwljYXNlIElQQV9WRVJTSU9OXzVfMToKIAljYXNlIElQQV9WRVJTSU9OXzVfMjoKIAkJcmV0dXJuICZhbXA7aXBhX3JlZ3NfdjVfMDsKIAljYXNlIElQQV9WRVJTSU9OXzVfNToKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEyODcKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAzNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJUCBBY2NlbGVyYXRvciBQYXRjaCBmb3IgU004NDUwKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaCBzZXJpZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBkb3duIGVhY2ggcGllY2UgYW5kIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCYjMzk7cyBiZWluZyBpbnRyb2R1Y2VkIGZvciB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgZHJpdmVyLCB0YXJnZXRpbmcgdGhlIGFtZDY0IGFyY2hpdGVjdHVyZSDigJMgaXQmIzM5O3MgaW1wb3J0YW50IHRvIGtlZXAgdGhhdCBjb250ZXh0IGluIG1pbmQuCgpGaXJzdCwgdGhlIERldmljZSBUcmVlIGJpbmRpbmdzIGZpbGUsIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgLCBoYXMgYSBuZXcgY29tcGF0aWJsZSBzdHJpbmcsIGBxY29tLHNtODQ1MC1pcGFgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGZvciB0aGUgU004NDUwIHBsYXRmb3JtLiBNYWtlcyBzZW5zZS4gVGhlbiwgdGhlIFNNODQ1MCBEVFMgaXRzZWxmLCBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYCwgbm93IGluY2x1ZGVzIGFuIGBpcGFgIG5vZGUgYW5kIHVwZGF0ZXMgdG8gdGhlIGBzcmFtYCBub2RlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBnZXRzIGRlZmluZWQuCgpOZXh0LCB0aGUgTWFrZWZpbGUgaW4gdGhlIGBkcml2ZXJzL25ldC9pcGFgIGRpcmVjdG9yeSBpcyB1cGRhdGVkIHRvIGluY2x1ZGUgdmVyc2lvbiA1LjEgaW4gYElQQV9EQVRBX1ZFUlNJT05TYCwgd2hpY2ggdGVsbHMgbWUgdGhlcmUmIzM5O3MgYSBuZXcgZGF0YSB2ZXJzaW9uIGJlaW5nIGFkZGVkLiBGb2xsb3dpbmcgdGhhdCwgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2AgZGVmaW5lcyB0aGUgYWN0dWFsIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgdGhlIElQIEFjY2VsZXJhdG9yIGZvciB0aGUgU004NDUwLiBHb29kLCBub3cgSSBrbm93IHRoZSBkZXRhaWxzLgoKVGhlIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmNgIGFuZCBgZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY2AgaW5jbHVkZXMgaGFuZGxpbmcgZm9yIGBJUEFfVkVSU0lPTl81XzFgLiBUaGVzZSBmaWxlcyBhcmUgY2xlYXJseSBjb25jZXJuZWQgd2l0aCB0aGUgcmVnaXN0ZXIgaW50ZXJhY3Rpb24gYW5kIHZlcnNpb24tc3BlY2lmaWMgbG9naWMuIFRoZSBpbmNsdWRlIGZpbGUsIGBkcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaGAsIGNvbnRhaW5zIHRoZSBleHRlcm4gZGVjbGFyYXRpb24gZm9yIHRoZSBuZXcgZGF0YSBzdHJ1Y3R1cmUsIGBpcGFfZGF0YV92NV8xYCwgd2hpY2ggbWFrZXMgc2Vuc2UgYXMgdGhpcyBpcyB0aGUgbmV3IGRhdGEuCgpGaW5hbGx5LCBpbiBgZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNgLCB0aGVyZSYjMzk7cyBhIG5ldyBlbnRyeSBpbiBgaXBhX21hdGNoYDogYHsgLmNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7LCAuZGF0YSA9ICZhbXA7aXBhX2RhdGFfdjVfMSB9YC4gVGhpcyBpcyB0aGUgY3JpdGljYWwgcGllY2UgdGhhdCB0aWVzIGl0IGFsbCB0b2dldGhlciDigJMgYXNzb2NpYXRpbmcgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZyB3aXRoIHRoZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIHRoaXMgc3BlY2lmaWMgU004NDUwIGhhcmR3YXJlLiBJdCBhbHNvIGxvb2tzIGxpa2UgdGhlIGNvbXBhdGlibGUgdmFsdWUgaXMgc2V0IGJ5IHRoZSBwbGF0Zm9ybSBvciBib2FyZC4KCkJlZm9yZSBJIGdvIGZ1cnRoZXIsIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBDT05GSUdfUUNPTV9JUEFgLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHRoZSBjb25kaXRpb25zIGZvciBpdHMgY29tcGlsYXRpb24sIGFuZCB3aGF0IGJpbmRpbmdzIHRoaXMgY29uZmlndXJhdGlvbiBmbGFnIHJlbGllcyBvbi4gVGhpcyBoZWxwcyB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IGFuZCBhbnkgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBmb3IgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMgb3Igb3RoZXIgUXVhbGNvbW0tcmVsYXRlZCBkcml2ZXJzLiBJdCYjMzk7cyBhbHNvIHBvc3NpYmxlIHRvIGRpc2NvdmVyIG90aGVyIGludGVyYWN0aW9ucyBiYXNlZCBvbiBkZXBlbmRlbmN5IGNoZWNrcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUUNPTV9JUEEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXBhL0tjb25maWc6MTpjb25maWcgUUNPTV9JUEFcbmRyaXZlcnMvbmV0L2lwYS9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBJUEEgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyMjgyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IEtjb25maWcgZmlsZToKCioqRGl2aW5nIGludG8gdGhlIElQQSBOZXR3b3JrIENvbmZpZ3VyYXRpb24qKgoKT2theSwgdGltZSB0byBjcmFjayBvcGVuIGBkcml2ZXJzL25ldC9pcGEvS2NvbmZpZ2AuIFRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgb2YgdGhlIElQQSAobGlrZWx5LCBJbi1Qcm9jZXNzIEFjY2VsZXJhdG9yLCBvciBzb21ldGhpbmcgc2ltaWxhciBpbiBuZXR3b3JraW5nKSBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9uIGxpdmVzLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIHdoYXQgZGVwZW5kZW5jaWVzIHRoZXkgaGF2ZSwgYW5kIGhvdyBpdCBhbGwgZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB0aGUgbmV0d29ya2luZyBzdWJzeXN0ZW0uCgpGaXJzdCwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgdGhlIG1haW4gYGNvbmZpZ2Agc3ltYm9sIHRoYXQgY29udHJvbHMgdGhlIGVudGlyZSBJUEEgZHJpdmVyLiBJdCYjMzk7bGwgcHJvYmFibHkgaGF2ZSBhIG5hbWUgbGlrZSBgQ09ORklHX0lQQWAgb3Igc29tZXRoaW5nIGVxdWFsbHkgZGVzY3JpcHRpdmUuIE9uY2UgSSBmaW5kIHRoYXQsIEkgY2FuIHdvcmsgbXkgd2F5IGRvd24gdGhlIHRyZWUuIEkgZXhwZWN0IHRvIHNlZSBuZXN0ZWQgYGNvbmZpZ2Agb3B0aW9ucyBmb3IgaW5kaXZpZHVhbCBmZWF0dXJlcywgbWF5YmUgcmVsYXRlZCB0byBkaWZmZXJlbnQgSVBBIGhhcmR3YXJlIHJldmlzaW9ucywgdmFyaW91cyBvZmZsb2FkIGNhcGFiaWxpdGllcyAoY2hlY2tzdW0sIHNlZ21lbnRhdGlvbiwgZXRjLiksIHNwZWNpZmljIFBIWSBzdXBwb3J0IGlmIGFwcGxpY2FibGUsIG9yIGV2ZW4gZGlmZmVyZW50IG9wZXJhdGlvbmFsIG1vZGVzLgoKSSYjMzk7bGwgYmUgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBhbnkgYGRlcGVuZHMgb25gIGNsYXVzZXMuIFRoZXNlIGFyZSBjcnVjaWFsLiBUaGV5IHRlbGwgbWUgdGhlIHByZXJlcXVpc2l0ZXMg4oCTIG90aGVyIGtlcm5lbCBtb2R1bGVzLCBmZWF0dXJlcywgb3IgaGFyZHdhcmUgc3VwcG9ydCDigJMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgYmVmb3JlIEkgY2FuIGV2ZW4gKmNvbnNpZGVyKiBlbmFibGluZyBhIHBhcnRpY3VsYXIgSVBBIGZlYXR1cmUuIFVuZGVyc3RhbmRpbmcgdGhlIGRlcGVuZGVuY2llcyBpcyBrZXkgdG8gYXZvaWRpbmcgY29uZmlndXJhdGlvbiBjb25mbGljdHMgYW5kIGJ1aWxkaW5nIGEgd29ya2luZyBzeXN0ZW0uCgpJJiMzOTttIGFsc28gZXhwZWN0aW5nIHRvIHNlZSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCB3aGljaCBhdXRvbWF0aWNhbGx5IGVuYWJsZSBvdGhlciBjb25maWd1cmF0aW9uIHN5bWJvbHMgaWYgdGhlIGN1cnJlbnQgb25lIGlzIGNob3Nlbi4gVGhpcyBpcyBjb21tb24gZm9yIGVuYWJsaW5nIGRlcGVuZGVudCBjb21wb25lbnRzIGxpa2UgaGVscGVyIGZ1bmN0aW9ucywgaGVhZGVyIGZpbGVzLCBvciBjb3JlIGRyaXZlciBtb2R1bGVzLgoKQXMgYW4gZXhwZXJ0IGluIGVtYmVkZGVkIG5ldHdvcmtpbmcsIEkmIzM5O2xsIGFsc28gYmUgb24gdGhlIGxvb2tvdXQgZm9yIGRlZmF1bHQgdmFsdWVzIChgZGVmYXVsdGApIGZvciB0aGUgdmFyaW91cyBvcHRpb25zLiBUaGVzZSBnaXZlIG1lIGEgc2Vuc2Ugb2Ygd2hhdCB0aGUgZGV2ZWxvcGVycyBjb25zaWRlciB0aGUgJiMzNDtjb21tb24gY2FzZSYjMzQ7IGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gdGhpbmsgYWJvdXQgd2hldGhlciB0aG9zZSBkZWZhdWx0cyBhcmUgYXBwcm9wcmlhdGUgZm9yIG15IHRhcmdldCBzeXN0ZW0uCgpGaW5hbGx5LCBJJiMzOTtsbCBiZSBzY2FubmluZyBmb3IgYW55IGBoZWxwYCB0ZXh0LiBXaGlsZSBpdCB3b24mIzM5O3QgcmVwbGFjZSBhIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZGVlcCBkaXZlLCB0aGUgaGVscCB0ZXh0IG9mdGVuIHByb3ZpZGVzIHZhbHVhYmxlIGNsdWVzIGFzIHRvIHRoZSBwdXJwb3NlIG9mIGEgY29uZmlndXJhdGlvbiBvcHRpb24sIGl0cyBpbnRlbmRlZCB1c2FnZSwgYW5kIHBvc3NpYmxlIHRyYWRlLW9mZnMuIEl0IGNhbiBvZnRlbiBoaWdobGlnaHQgdGhlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBvZiBjZXJ0YWluIGNob2ljZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBRQ09NX0lQQVxuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gSVBBIHN1cHBvcnRcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gTkVUIFx1MDAyNlx1MDAyNiBRQ09NX1NNRU1cbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVFxuICAgNTpcdFx0ZGVwZW5kcyBvbiBJTlRFUkNPTk5FQ1RcbiAgIDY6XHRcdGRlcGVuZHMgb24gUUNPTV9SUFJPQ19DT01NT04gfHwgKFFDT01fUlBST0NfQ09NTU9OPW4gXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVClcbiAgIDc6XHRcdGRlcGVuZHMgb24gUUNPTV9BT1NTX1FNUCB8fCBRQ09NX0FPU1NfUU1QPW5cbiAgIDg6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgIDk6XHRcdHNlbGVjdCBRQ09NX1BBU1xuICAxMDpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgMTE6XHRcdGhlbHBcbiAgMTI6XHRcdCAgQ2hvb3NlIFkgb3IgTSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tXG4gIDEzOlx0XHQgIElQIEFjY2VsZXJhdG9yIChJUEEpLCBhIGhhcmR3YXJlIGJsb2NrIHByZXNlbnQgaW4gc29tZVxuICAxNDpcdFx0ICBRdWFsY29tbSBTb0NzLiAgVGhlIElQQSBpcyBhIHByb2dyYW1tYWJsZSBwcm90b2NvbCBwcm9jZXNzb3JcbiAgMTU6XHRcdCAgdGhhdCBpcyBjYXBhYmxlIG9mIGdlbmVyaWMgaGFyZHdhcmUgaGFuZGxpbmcgb2YgSVAgcGFja2V0cyxcbiAgMTY6XHRcdCAgaW5jbHVkaW5nIHJvdXRpbmcsIGZpbHRlcmluZywgYW5kIE5BVC4gIEN1cnJlbnRseSB0aGUgSVBBXG4gIDE3Olx0XHQgIGRyaXZlciBzdXBwb3J0cyBvbmx5IGJhc2ljIHRyYW5zcG9ydCBvZiBuZXR3b3JrIHRyYWZmaWNcbiAgMTg6XHRcdCAgYmV0d2VlbiB0aGUgQVAgYW5kIG1vZGVtLlxuICAxOTpcdFxuICAyMDpcdFx0ICBOb3RlIHRoYXQgaWYgc2VsZWN0ZWQsIHRoZSBzZWxlY3Rpb24gdHlwZSBtdXN0IG1hdGNoIHRoYXRcbiAgMjE6XHRcdCAgb2YgUUNPTV9RNlY1X0NPTU1PTiAoWSBvciBNKS5cbiAgMjI6XHRcbiAgMjM6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzEzOAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDM2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBUcmlhZ2UgQXNzZXNzbWVudCoqCgpPa2F5LCB0aW1lIHRvIG1ha2UgYSBkZWNpc2lvbi4gTGV0JiMzOTtzIHJldmlzaXQgU2VjdGlvbiAyIG9mIHRoZSB0cmlhZ2UgcGhpbG9zb3BoeSwgc3BlY2lmaWNhbGx5IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSDigJMgd2hlbiB3ZSAqZG9uJiMzOTt0KiBjb25zaWRlciBzb21ldGhpbmcgd29ydGggZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIFF1YWxjb21tIElQQSBjb2RlIGRvZXNuJiMzOTt0IGZhbGwgaW50byBvbmUgb2YgdGhvc2UgY2F0ZWdvcmllcy4gSSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBjaGFuZ2VzIGFyZSBub3QgcmVsYXRlZCB0byBhbnkgb2YgdGhlIGZvbGxvd2luZyB0byBub3QgYmUgd29ydGggZnV6emluZzoKKiAgIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXMgKGRvY3VtZW50YXRpb24sIHVzZXItc3BhY2UgdG9vbHMsIGxvZ2dpbmcgdGhhdCBkb2VzbiYjMzk7dCBhZmZlY3QgY29udHJvbCBmbG93LCBldGMuKQoqICAgU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlICh2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBmb3IgaGFyZHdhcmUgd2UgY2FuJiMzOTt0IGVtdWxhdGUpCiogICBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHMgKHRlYXJkb3duIGNhbGxiYWNrcyBvbmx5IHRyaWdnZXJlZCBieSBob3QtdW5wbHVnLCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29kZSkuCgpUaGUgdGFyZ2V0IGlzIGFtZDY0LCBzbyBsZXQmIzM5O3MgZ2V0IHRoYXQgY2xlYXIgaW4gbWluZC4gTm93LCBJIGhhdmUgdG8gY29uc2lkZXIgUXVhbGNvbW0gSVBBLCB3aGljaCBmcm9tIG15IHVuZGVyc3RhbmRpbmcgaXMgdGllZCB0byBRdWFsY29tbSBTb0MgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBBUk02NCBwbGF0Zm9ybXMgYW5kIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoZSBEZXZpY2UgVHJlZSwgcGFydGljdWxhcmx5IG9uIHRoZSBTbmFwZHJhZ29uIFNNODQ1MC4gVGhlIHF1ZXN0aW9uIHRoYXQgcmVtYWlucyBpczogSXMgUUNPTVxfSVBBIGEgc3RhbmRhcmQgcGxhdGZvcm0gZHJpdmVyIHRoYXQgaXMgaW5zdGFudGlhdGVkIHRocm91Z2ggdGhlIERldmljZSBUcmVlIG9uIFF1YWxjb21tIFNuYXBkcmFnb24gU29Dcz8gVGltZSB0byBkaXZlIGludG8gYGlwYV9tYWluLmNgIGFuZCBtYWtlIGEgY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfcGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXBhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jPTEwMTU9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaXBhX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYy0xMDI2LVxuZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmM6MTAyNzptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGlwYV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMtMTAyOC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzkxMAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkRpdmluZyBpbnRvIHRoZSBJUEEgRHJpdmVyKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gaG93IHRoaXMgYWxsIHdvcmtzLCBzbyBsZXQmIzM5O3Mgc3RhcnQgd2l0aCB0aGUgYGlwYV9kcml2ZXJgIHNwZWNpZmljYWxseSwgYW5kIHRoZSBgaXBhX21haW4uY2AgZmlsZSB3aGVyZSBpdCBzaG91bGQgYmUgZGVmaW5lZC4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGxvb2sgdGhyb3VnaCB0aGUgY29kZSBpbiB0aGF0IGZpbGUsIGNvbmZpcm0gdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSwgYW5kIHRoZW4gbWFwIG91dCBhbnkgcmVsZXZhbnQgaW50ZXJhY3Rpb24gcG9pbnRzLiBJJiMzOTttIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIHNlZWluZyBob3cgdGhlIElQQSBpbnRlcmFjdHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLCB3aGF0IGl0cyBlbnRyeSBwb2ludHMgYXJlLCBhbmQgaWYgYW55dGhpbmcgaGFzIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgdGltZSBJIGxvb2tlZCBhdCBpdC4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgY29yZSBjb25jZXB0cyByZW1haW4gdGhlIHNhbWUgb3IgaWYgdGhlcmUgYXJlIGFueSBzdWJ0bGUgYnV0IGltcG9ydGFudCBpbXBsZW1lbnRhdGlvbiBkaWZmZXJlbmNlcy4gVGltZSB0byBwdWxsIHVwIHRoZSBjb2RlIGFuZCBnZXQgc3RhcnRlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEwMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTAwMDpcdFx0a2ZyZWUoaXBhKTtcbjEwMDE6XHRcdGlwYV9wb3dlcl9leGl0KHBvd2VyKTtcbjEwMDI6XHRcdGlwYV9pbnRlcnJ1cHRfZXhpdChpbnRlcnJ1cHQpO1xuMTAwMzpcdFxuMTAwNDpcdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtJUEEgZHJpdmVyIHJlbW92ZWRcJiMzNDspO1xuMTAwNTpcdH1cbjEwMDY6XHRcbjEwMDc6XHRzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqaXBhX2F0dHJpYnV0ZV9ncm91cHNbXSA9IHtcbjEwMDg6XHRcdFx1MDAyNmlwYV9hdHRyaWJ1dGVfZ3JvdXAsXG4xMDA5Olx0XHRcdTAwMjZpcGFfZmVhdHVyZV9hdHRyaWJ1dGVfZ3JvdXAsXG4xMDEwOlx0XHRcdTAwMjZpcGFfZW5kcG9pbnRfaWRfYXR0cmlidXRlX2dyb3VwLFxuMTAxMTpcdFx0XHUwMDI2aXBhX21vZGVtX2F0dHJpYnV0ZV9ncm91cCxcbjEwMTI6XHRcdE5VTEwsXG4xMDEzOlx0fTtcbjEwMTQ6XHRcbjEwMTU6XHRzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpcGFfZHJpdmVyID0ge1xuMTAxNjpcdFx0LnByb2JlXHRcdD0gaXBhX3Byb2JlLFxuMTAxNzpcdFx0LnJlbW92ZVx0XHQ9IGlwYV9yZW1vdmUsXG4xMDE4Olx0XHQuc2h1dGRvd25cdD0gaXBhX3JlbW92ZSxcbjEwMTk6XHRcdC5kcml2ZXJcdD0ge1xuMTAyMDpcdFx0XHQubmFtZVx0XHQ9IFwmIzM0O2lwYVwmIzM0OyxcbjEwMjE6XHRcdFx0LnBtXHRcdD0gXHUwMDI2aXBhX3BtX29wcyxcbjEwMjI6XHRcdFx0Lm9mX21hdGNoX3RhYmxlXHQ9IGlwYV9tYXRjaCxcbjEwMjM6XHRcdFx0LmRldl9ncm91cHNcdD0gaXBhX2F0dHJpYnV0ZV9ncm91cHMsXG4xMDI0Olx0XHR9LFxuMTAyNTpcdH07XG4xMDI2Olx0XG4xMDI3Olx0bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpcGFfZHJpdmVyKTtcbjEwMjg6XHRcbjEwMjk6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUEwgdjJcJiMzNDspO1xuMTAzMDpcdE1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtRdWFsY29tbSBJUCBBY2NlbGVyYXRvciBkZXZpY2UgZHJpdmVyXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ1ODQKCQkJCQkJCW91dHB1dDogMTA1CgkJCQkJCQl0aG91Z2h0czogNjQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IElQQSBEcml2ZXIgRnV6emluZyBFeGNsdXNpb24qKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gV2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhlIGBpcGFfZHJpdmVyYCBhbmQgd2hldGhlciBpdCYjMzk7cyBzdWl0YWJsZSBmb3IgZnV6emluZy4gIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0JiMzOTtzICpub3QqLgoKVGhlIGBpcGFfZHJpdmVyYCBpcyBhIHBsYXRmb3JtIGRyaXZlciB0aGF0IHJlbGllcyBvbiBhIGRldmljZSB0cmVlIG1hdGNoIChgb2ZfbWF0Y2hfdGFibGUgPSBpcGFfbWF0Y2hgKS4gVGhlIHRhcmdldCBhcmNoaXRlY3R1cmUsIGhvd2V2ZXIsIGlzIGFtZDY0LiAgVGhlIGNvZGUgbW9kaWZpY2F0aW9ucyByZWxhdGUgdG8gUXVhbGNvbW0mIzM5O3MgSVBBIChJUCBBY2NlbGVyYXRvcikgdjUuMSBoYXJkd2FyZSBibG9jaywgc3BlY2lmaWNhbGx5IGZvciB0aGUgU004NDUwIChTbmFwZHJhZ29uIDggR2VuIDEpIHdoaWNoIGlzIGFuIEFSTTY0IFNvQy4gQ3J1Y2lhbGx5LCB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGlzICoqbm90KiogZW11bGF0ZWQgd2l0aGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiAgSXQgZGVtYW5kcyAqcGh5c2ljYWwqIGhhcmR3YXJlIG9yIHNwZWNpYWxpemVkIGVtdWxhdGlvbiB0aGF0IGlzbiYjMzk7dCBhY2Nlc3NpYmxlIGluIHRoZXNlIHN0YW5kYXJkIGVudmlyb25tZW50cy4KCk15IGFuYWx5c2lzIHJldmVhbHMgdGhyZWUga2V5IGVsZW1lbnRzOgoKMS4gICoqQXJjaGl0ZWN0dXJlIE1pc21hdGNoOioqICBUaGUgdGFyZ2V0IGlzIGFtZDY0LCBidXQgdGhlIGNoYW5nZXMgZGlyZWN0bHkgaW1wYWN0IEFSTTY0LXNwZWNpZmljIGZpbGVzOiBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYCAoRFRTSSkgYW5kIHRoZSBJUEEgZHJpdmVyIGRhdGEgZGVmaW5pdGlvbnMgaW4gYGRyaXZlcnMvbmV0L2lwYS9gIHRhaWxvcmVkIHRvIHRoZSBTTTg0NTAgcGxhdGZvcm0uCjIuICAqKlVucmVhY2hhYmxlIEhhcmR3YXJlOioqIFRoZSBJUEEgaGFyZHdhcmUgYmxvY2sgaXMgdmVuZG9yLXNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoZSBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMuCjMuICAqKkRvY3VtZW50YXRpb24gVG91Y2g6KiogVGhlIGVkaXRzIHRvIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgIGNvbmNlcm4gb25seSBkb2N1bWVudGF0aW9uLCB3aGljaCBpcyBhIG5lZ2F0aXZlIGNyaXRlcmlvbi4KClRoZXJlZm9yZSwgdGhlIGNvZGUmIzM5O3MgcmVhY2hhYmlsaXR5IGlzIHRoZSBkZWNpZGluZyBmYWN0b3IsIGJhc2VkIG9uIHRoZSBmdXp6aW5nIGNyaXRlcmlhLiBUaGUgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIEdpdmVuIHRoaXMsIGl0IE1VU1QgTk9UIGJlIGZ1enplZC4KCk15IHJlYXNvbmluZywgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwsIGlzIGNsZWFyOgoKMS4gIFRoZSBhcmNoaXRlY3R1cmUgdGFyZ2V0IGlzIGFtZDY0LCB3aGlsZSB0aGUgbW9kaWZpZWQgY29kZSBwZXJ0YWlucyB0byB0aGUgUXVhbGNvbW0gSVBBIHY1LjEgaGFyZHdhcmUgb24gQVJNNjQgU004NDUwIFNvQ3MuIFRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBhcmUgYWxzbyBzcGVjaWZpYyB0byB0aGlzIHBsYXRmb3JtLgoyLiAgVGhlIFF1YWxjb21tIElQQSBoYXJkd2FyZSBpcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGh1cywgdGhlIGNvZGUgcGF0aCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuCgpGaW5hbGx5LCBiZWNhdXNlIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAsICBgRm9jdXNTeW1ib2xzYCBhbmQgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBhbiBlbXB0eSBsaXN0IChgW11gKS4gTm93LCBJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzZXJpZXMgYWRkcyBEZXZpY2UgVHJlZSBiaW5kaW5ncywgRFRTIG5vZGVzLCBhbmQgZHJpdmVyIGNvbmZpZ3VyYXRpb24gdGFibGVzIGZvciB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSB2NS4xKSBvbiBTbmFwZHJhZ29uIFNNODQ1MCBTb0NzLiBUaGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIG9uIGFtZDY0IGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFNvQyBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjIzLjE4NTk3NTE0N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTA5MzgyOTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2VyaWVzIGFkZHMgRGV2aWNlIFRyZWUgYmluZGluZ3MsIERUUyBub2RlcywgYW5kIGRyaXZlciBjb25maWd1cmF0aW9uIHRhYmxlcyBmb3IgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEgdjUuMSkgb24gU25hcGRyYWdvbiBTTTg0NTAgU29Dcy4gVGhpcyBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBvbiBhbWQ2NCBhcyBpdCByZXF1aXJlcyBwaHlzaWNhbCBRdWFsY29tbSBTb0MgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjoyMy4xODU5Nzk3OTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NDEzNzY4OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhYTQ3ZGFiMDQ5MDM1Mjg3NTM0Y2IzNGY5YTY5Njk2Nzk2ZDVhYmJmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgU2VwIDkgMDM6MjI6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXFxuaW5kZXggNjhlYzc2ZmU0NDczNS4uZGI5MWJmYWFmODMzMiAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcXG5AQCAtNTMsNiArNTMsNyBAQCBwcm9wZXJ0aWVzOlxcbiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYVxcbiAgICAgICAgICAgLSBxY29tLHNtNjM1MC1pcGFcXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXFxuKyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxcbiAgICAgICAgICAgLSBxY29tLHNtODU1MC1pcGFcXG4gICAgICAgLSBpdGVtczpcXG4gICAgICAgICAgIC0gZW51bTpcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXFxuaW5kZXggYjg3OTM0ODJiMTgxNS4uOTViNmZkMjJhODQ2NSAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcXG5AQCAtMjYyNSw2ICsyNjI1LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHtcXG4gXFx0XFx0XFx0ZG1hLWNvaGVyZW50O1xcbiBcXHRcXHR9O1xcbiBcXG4rXFx0XFx0aXBhOiBpcGFAM2Y0MDAwMCB7XFxuK1xcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxzbTg0NTAtaXBhXFxcIjtcXG4rXFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4M2Y0MDAwMCAwIDB4MTAwMDBcXHUwMDNlLFxcbitcXHRcXHRcXHQgICAgICBcXHUwMDNjMCAweDNmNTAwMDAgMCAweDUwMDBcXHUwMDNlLFxcbitcXHRcXHRcXHQgICAgICBcXHUwMDNjMCAweDNlMDQwMDAgMCAweGZjMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0cmVnLW5hbWVzID0gXFxcImlwYS1yZWdcXFwiLFxcbitcXHRcXHRcXHRcXHQgICAgXFxcImlwYS1zaGFyZWRcXFwiLFxcbitcXHRcXHRcXHRcXHQgICAgXFxcImdzaVxcXCI7XFxuK1xcdFxcdFxcdGlvbW11cyA9IFxcdTAwM2NcXHUwMDI2YXBwc19zbW11IDB4NWMwIDB4MFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdCBcXHUwMDNjXFx1MDAyNmFwcHNfc21tdSAweDVjMiAweDBcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0aW50ZXJydXB0cy1leHRlbmRlZCA9IFxcdTAwM2NcXHUwMDI2aW50YyBHSUNfU1BJIDY1NCBJUlFfVFlQRV9FREdFX1JJU0lOR1xcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwM2NcXHUwMDI2aW50YyBHSUNfU1BJIDQzMiBJUlFfVFlQRV9MRVZFTF9ISUdIXFx1MDAzZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICAgXFx1MDAzY1xcdTAwMjZpcGFfc21wMnBfaW4gMCBJUlFfVFlQRV9FREdFX1JJU0lOR1xcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX2luIDEgSVJRX1RZUEVfRURHRV9SSVNJTkdcXHUwMDNlO1xcbitcXHRcXHRcXHRpbnRlcnJ1cHQtbmFtZXMgPSBcXFwiaXBhXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiZ3NpXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiaXBhLWNsb2NrLXF1ZXJ5XFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiaXBhLXNldHVwLXJlYWR5XFxcIjtcXG4rXFxuK1xcdFxcdFxcdGNsb2NrcyA9IFxcdTAwM2NcXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1xcdTAwM2U7XFxuK1xcdFxcdFxcdGNsb2NrLW5hbWVzID0gXFxcImNvcmVcXFwiO1xcbitcXG4rXFx0XFx0XFx0aW50ZXJjb25uZWN0cyA9IFxcdTAwM2NcXHUwMDI2YWdncmUyX25vYyBNQVNURVJfSVBBIDAgXFx1MDAyNm1jX3ZpcnQgU0xBVkVfRUJJMSAwXFx1MDAzZSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx1MDAzY1xcdTAwMjZnZW1fbm9jIE1BU1RFUl9BUFBTU19QUk9DIDAgXFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0aW50ZXJjb25uZWN0LW5hbWVzID0gXFxcIm1lbW9yeVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgXFxcImNvbmZpZ1xcXCI7XFxuK1xcbitcXHRcXHRcXHRxY29tLHFtcCA9IFxcdTAwM2NcXHUwMDI2YW9zc19xbXBcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0cWNvbSxzbWVtLXN0YXRlcyA9IFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX291dCAwXFx1MDAzZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAzY1xcdTAwMjZpcGFfc21wMnBfb3V0IDFcXHUwMDNlO1xcbitcXHRcXHRcXHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcXFwiaXBhLWNsb2NrLWVuYWJsZWQtdmFsaWRcXFwiLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXFwiaXBhLWNsb2NrLWVuYWJsZWRcXFwiO1xcbitcXG4rXFx0XFx0XFx0c3JhbSA9IFxcdTAwM2NcXHUwMDI2aXBhX21vZGVtX3RhYmxlc1xcdTAwM2U7XFxuK1xcbitcXHRcXHRcXHRzdGF0dXMgPSBcXFwiZGlzYWJsZWRcXFwiO1xcbitcXHRcXHR9O1xcbitcXG4gXFx0XFx0dXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHtcXG4gXFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJxY29tLHNtODQ1MC11c2ItaHMtcGh5XFxcIixcXG4gXFx0XFx0XFx0XFx0ICAgICBcXFwicWNvbSx1c2Itc25wcy1ocy03bm0tcGh5XFxcIjtcXG5AQCAtNDk1NywyMSArNDk5OCwyNSBAQCBjdGlAMTM5MDAwMDAge1xcbiBcXHRcXHRcXHRjbG9jay1uYW1lcyA9IFxcXCJhcGJfcGNsa1xcXCI7XFxuIFxcdFxcdH07XFxuIFxcbi1cXHRcXHRzcmFtQDE0NmFhMDAwIHtcXG4rXFx0XFx0c3JhbUAxNDY4MDAwMCB7XFxuIFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxzbTg0NTAtaW1lbVxcXCIsIFxcXCJzeXNjb25cXFwiLCBcXFwic2ltcGxlLW1mZFxcXCI7XFxuLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcXHUwMDNlO1xcbi1cXHRcXHRcXHRyYW5nZXMgPSBcXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0cmVnID0gXFx1MDAzYzAgMHgxNDY4MDAwMCAwIDB4NDAwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHRyYW5nZXMgPSBcXHUwMDNjMCAwIDB4MTQ2ODAwMDAgMHg0MDAwMFxcdTAwM2U7XFxuIFxcbiBcXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4gXFx0XFx0XFx0I3NpemUtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuIFxcbi1cXHRcXHRcXHRtaW5pZHVtcF9jb25maWc6IG1pbmlkdW1wLXNyYW1AMWMge1xcbi1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgxYyAweDRcXHUwMDNlO1xcbitcXHRcXHRcXHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMjgwMDAge1xcbitcXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgyODAwMCAweDIwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHR9O1xcbitcXG4rXFx0XFx0XFx0bWluaWR1bXBfY29uZmlnOiBtaW5pZHVtcC1zcmFtQDJhMDFjIHtcXG4rXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MmEwMWMgMHg0XFx1MDAzZTtcXG4gXFx0XFx0XFx0fTtcXG4gXFxuLVxcdFxcdFxcdHBpbC1yZWxvY0A5NGMge1xcbitcXHRcXHRcXHRwaWwtcmVsb2NAMmE5NGMge1xcbiBcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcInFjb20scGlsLXJlbG9jLWluZm9cXFwiO1xcbi1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg5NGMgMHhjOFxcdTAwM2U7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDJhOTRjIDB4YzhcXHUwMDNlO1xcbiBcXHRcXHRcXHR9O1xcbiBcXHRcXHR9O1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXFxuaW5kZXggZTE0OGVjM2MxYTEwMS4uZDQ5OTVjMmU4Y2EwMiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG5AQCAtNyw3ICs3LDcgQEAgSVBBX1JFR19WRVJTSU9OU1xcdDo9XFx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcXG4gIyBTb21lIElQQSB2ZXJzaW9ucyBjYW4gcmV1c2UgYW5vdGhlciBzZXQgb2YgR1NJIHJlZ2lzdGVyIGRlZmluaXRpb25zLlxcbiBHU0lfUkVHX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4wIDQuNSA0LjkgNC4xMSA1LjBcXG4gXFxuLUlQQV9EQVRBX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMiA1LjVcXG4rSVBBX0RBVEFfVkVSU0lPTlNcXHQ6PVxcdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjVcXG4gXFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcXHQrPVxcdGlwYS5vXFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjdkN2JjMTkzYjc3NGNcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jXFxuQEAgLTAsMCArMSw0NzYgQEBcXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4rXFxuKy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovXFxuKy8qIENvcHlyaWdodCAoQykgMjAyNiBOYXphciBLb21wYW5ldHMgXFx1MDAzY3hsaWU3NjY5QGdtYWlsLmNvbVxcdTAwM2UgKi9cXG4rLyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSBcXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcXHUwMDNlICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbG9nMi5oXFx1MDAzZVxcbitcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9kYXRhLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCIuLi9pcGFfZW5kcG9pbnQuaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9tZW0uaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV92ZXJzaW9uLmhcXFwiXFxuK1xcbisvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitlbnVtIGlwYV9yZXNvdXJjZV90eXBlIHtcXG4rXFx0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXFx0XFx0PSAwLFxcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRixcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxcbitcXG4rXFx0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcXHRcXHQ9IDAsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxcbit9O1xcbitcXG4rLyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XFxuK1xcdC8qIFNvdXJjZSByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9TUkNfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX0RNQSxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1FEU1MsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19VUkxMQyxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcXHQvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovXFxuK1xcbitcXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VDLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cXG4rfTtcXG4rXFxuKy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7XFxuK1xcdFtJUEFfUVNCX01BU1RFUl9ERFJdID0ge1xcbitcXHRcXHQubWF4X3dyaXRlc1xcdFxcdD0gMCxcXG4rXFx0XFx0Lm1heF9yZWFkc1xcdFxcdD0gMCxcXHQvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqL1xcbitcXHRcXHQubWF4X3JlYWRzX2JlYXRzXFx0PSAwLFxcbitcXHR9LFxcbitcXHRbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7XFxuK1xcdFxcdC5tYXhfd3JpdGVzXFx0XFx0PSAwLFxcbitcXHRcXHQubWF4X3JlYWRzXFx0XFx0PSAwLFxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXFxuK1xcdFxcdC5tYXhfcmVhZHNfYmVhdHNcXHQ9IDAsXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfZ3NpX2VuZHBvaW50X2RhdGEgaXBhX2dzaV9lbmRwb2ludF9kYXRhW10gPSB7XFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX0FQLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMTIsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTQsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuY2hhbm5lbCA9IHtcXG4rXFx0XFx0XFx0LnRyZV9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQuZXZlbnRfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LnRsdl9jb3VudFxcdD0gMjAsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5kbWFfbW9kZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LmRtYV9lbmRwb2ludFxcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcXG4rXFx0XFx0XFx0XFx0fSxcXG4rXFx0XFx0XFx0fSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEzLFxcbitcXHRcXHQuZW5kcG9pbnRfaWRcXHQ9IDE2LFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gZmFsc2UsXFxuK1xcdFxcdC5jaGFubmVsID0ge1xcbitcXHRcXHRcXHQudHJlX2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC5ldmVudF9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQudGx2X2NvdW50XFx0PSA5LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5jb25maWcgPSB7XFxuK1xcdFxcdFxcdFxcdC5yZXNvdXJjZV9ncm91cFxcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5zdGF0dXNfZW5hYmxlXFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQucnggPSB7XFxuK1xcdFxcdFxcdFxcdFxcdC5idWZmZXJfc2l6ZVxcdD0gODE5MixcXG4rXFx0XFx0XFx0XFx0XFx0LnBhZF9hbGlnblxcdD0gaWxvZzIoc2l6ZW9mKHUzMikpLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHR9LFxcbitcXHRcXHRcXHR9LFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcXG4rXFx0XFx0LmVlX2lkXFx0XFx0PSBHU0lfRUVfQVAsXFxuK1xcdFxcdC5jaGFubmVsX2lkXFx0PSAxMSxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyLFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gdHJ1ZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDUxMixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSA1MTIsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDI1LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuc3RhdHVzX2VuYWJsZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXFxuK1xcdFxcdFxcdFxcdFxcdC5zdGF0dXNfZW5kcG9pbnQgPVxcbitcXHRcXHRcXHRcXHRcXHRcXHRJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlgsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfTU9ERU1fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMjMsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSBmYWxzZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDksXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5yeCA9IHtcXG4rXFx0XFx0XFx0XFx0XFx0LmJ1ZmZlcl9zaXplXFx0PSA4MTkyLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl9jbG9zZV9lb2ZcXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9NT0RFTSxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDAsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTIsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gNyxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyMSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IGZhbHNlLFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMixcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAxNSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IHRydWUsXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmZpbHRlcl9zdXBwb3J0XFx0PSB0cnVlLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7XFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gNyxcXHQubWF4ID0gMTIsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAyMSxcXHQubWF4ID0gMjEsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEwLFxcdC5tYXggPSAxMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzMyxcXHQubWF4ID0gMzMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDIwLFxcdC5tYXggPSAyMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX0RNQV0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1FEU1NdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gMzgsXFx0Lm1heCA9IDM4LFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAxNixcXHQubWF4ID0gMTYsXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX2RzdFtdID0ge1xcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RBVEFfU0VDVE9SU10gPSB7XFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDYsXFx0Lm1heCA9IDYsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDUsXFx0Lm1heCA9IDUsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzOSxcXHQubWF4ID0gMzksXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfRFBTX0RNQVJTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gMyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gMyxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogUmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7XFxuK1xcdC5yc3JjX2dyb3VwX2RzdF9jb3VudFxcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFxcbitcXHQucnNyY19ncm91cF9zcmNfY291bnRcXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcXG4rXFx0LnJlc291cmNlX3NyY19jb3VudFxcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSxcXG4rXFx0LnJlc291cmNlX3NyY1xcdFxcdD0gaXBhX3Jlc291cmNlX3NyYyxcXG4rXFx0LnJlc291cmNlX2RzdF9jb3VudFxcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSxcXG4rXFx0LnJlc291cmNlX2RzdFxcdFxcdD0gaXBhX3Jlc291cmNlX2RzdCxcXG4rfTtcXG4rXFxuKy8qIElQQS1yZXNpZGVudCBtZW1vcnkgcmVnaW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtIGlwYV9tZW1fbG9jYWxfZGF0YVtdID0ge1xcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9VQ19FVkVOVF9SSU5HLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDAwMDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDEwMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1VDX1NIQVJFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxMDAwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDgwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9VQ19JTkZPLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDEwODAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y0X0ZJTFRFUl9IQVNIRUQsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTI4OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjRfRklMVEVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDEzMDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNzgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y2X0ZJTFRFUl9IQVNIRUQsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTM4OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjZfRklMVEVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE0MDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNzgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNDg4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNF9ST1VURSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNTI4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNl9ST1VURV9IQVNIRUQsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTVjOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA5OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjZfUk9VVEUsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTY2OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA5OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTU9ERU1fSEVBREVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE3MDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyNDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX0FQX0hFQURFUixcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxOTQ4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMWUwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxYjQwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwYjIwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9BUF9QUk9DX0NUWCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyNjYwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMjAwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9NT0RFTSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyODY4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDYwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyOGM4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDQ4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19URVRIRVJJTkcsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MjkxMCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDNjMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fU1RBVFNfRklMVEVSX1JPVVRFLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDJjZDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDBiYTAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX0RST1AsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4Mzg3MCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDAyMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTU9ERU0sXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4Mzg5OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MGQ0OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTkFUX1RBQkxFLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDQ1ZTAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDA5MDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1BETl9DT05GSUcsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4NGVlOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDEwMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTU9ERU1fU1RBVFNfRFJPUCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHg0ZmU4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDE4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogTWVtb3J5IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7XFxuK1xcdC5sb2NhbF9jb3VudFxcdD0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLFxcbitcXHQubG9jYWxcXHRcXHQ9IGlwYV9tZW1fbG9jYWxfZGF0YSxcXG4rXFx0LmltZW1fYWRkclxcdD0gMHgxNDZhODAwMCxcXG4rXFx0LmltZW1fc2l6ZVxcdD0gMHgwMDAwMjAwMCxcXG4rXFx0LnNtZW1fc2l6ZVxcdD0gMHgwMDAwOTAwMCxcXG4rfTtcXG4rXFxuKy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSBpcGFfaW50ZXJjb25uZWN0X2RhdGFbXSA9IHtcXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm1lbW9yeVxcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gMTkwMDAwMCxcXHQvKiAxLjkgR0JwcyAqL1xcbitcXHRcXHQuYXZlcmFnZV9iYW5kd2lkdGhcXHQ9IDU5MDAwMCxcXHQvKiA1OTAgTUJwcyAqL1xcbitcXHR9LFxcbitcXHQvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi9cXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcImNvbmZpZ1xcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gNzY4MDAsXFx0LyogNzYuOCBNQnBzICovXFxuK1xcdFxcdC5hdmVyYWdlX2JhbmR3aWR0aFxcdD0gMCxcXHRcXHQvKiB1bnVzZWQgKi9cXG4rXFx0fSxcXG4rfTtcXG4rXFxuKy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XFxuK1xcdC5jb3JlX2Nsb2NrX3JhdGVcXHQ9IDEyMCAqIDEwMDAgKiAxMDAwLFxcdC8qIEh6ICovXFxuK1xcdC5pbnRlcmNvbm5lY3RfY291bnRcXHQ9IEFSUkFZX1NJWkUoaXBhX2ludGVyY29ubmVjdF9kYXRhKSxcXG4rXFx0LmludGVyY29ubmVjdF9kYXRhXFx0PSBpcGFfaW50ZXJjb25uZWN0X2RhdGEsXFxuK307XFxuK1xcbisvKiBDb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEuICovXFxuK2NvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xID0ge1xcbitcXHQudmVyc2lvblxcdFxcdD0gSVBBX1ZFUlNJT05fNV8xLFxcbitcXHQucXNiX2NvdW50XFx0XFx0PSBBUlJBWV9TSVpFKGlwYV9xc2JfZGF0YSksXFxuK1xcdC5xc2JfZGF0YVxcdFxcdD0gaXBhX3FzYl9kYXRhLFxcbitcXHQubW9kZW1fcm91dGVfY291bnRcXHQ9IDExLFxcbitcXHQuZW5kcG9pbnRfY291bnRcXHRcXHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcXG4rXFx0LmVuZHBvaW50X2RhdGFcXHRcXHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcXG4rXFx0LnJlc291cmNlX2RhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfcmVzb3VyY2VfZGF0YSxcXG4rXFx0Lm1lbV9kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX21lbV9kYXRhLFxcbitcXHQucG93ZXJfZGF0YVxcdFxcdD0gXFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxcbit9O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbmluZGV4IGUxM2NmODM1YTAxM2MuLmE1NzA3MmJhNGJlZjYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmNcXG5AQCAtMTEwLDYgKzExMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqZ3NpX3JlZ3Moc3RydWN0IGdzaSAqZ3NpKVxcbiBcXHRcXHRyZXR1cm4gXFx1MDAyNmdzaV9yZWdzX3Y0XzExO1xcbiBcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XFxuK1xcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XFxuIFxcdFxcdHJldHVybiBcXHUwMDI2Z3NpX3JlZ3NfdjVfMDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxcbmluZGV4IDNlYjlkYzJjZTMzOTguLmZlNmY3ZDViZmU4OGMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxcbkBAIC0yNTMsNiArMjUzLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF83O1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzk7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfMTE7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMDtcXG4rZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfNTtcXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcXG5pbmRleCAxNGFjMmQyZmFmN2MyLi44NGJlYzQ2MWQyMmNkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcXG5AQCAtNjcyLDYgKzY3MiwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpcGFfbWF0Y2hbXSA9IHtcXG4gXFx0XFx0LmNvbXBhdGlibGVcXHQ9IFxcXCJxY29tLHNkeDY1LWlwYVxcXCIsXFxuIFxcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMCxcXG4gXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sc204NDUwLWlwYVxcXCIsXFxuK1xcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMSxcXG4rXFx0fSxcXG4gXFx0e1xcbiBcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sbWlsb3MtaXBhXFxcIixcXG4gXFx0XFx0LmRhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfZGF0YV92NV8yLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbmluZGV4IDMwYmQ2OWY0YzE0N2MuLjVmMjJjYTYyOTViMTYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcXG5AQCAtMTI1LDYgKzEyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqaXBhX3JlZ3MoZW51bSBpcGFfdmVyc2lvbiB2ZXJzaW9uKVxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzRfMTE6XFxuIFxcdFxcdHJldHVybiBcXHUwMDI2aXBhX3JlZ3NfdjRfMTE7XFxuIFxcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxcbitcXHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XFxuIFxcdFxcdHJldHVybiBcXHUwMDI2aXBhX3JlZ3NfdjVfMDtcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjI0LjYyODAzNTQ3NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MjI2NjczMDk0ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhYTQ3ZGFiMDQ5MDM1Mjg3NTM0Y2IzNGY5YTY5Njk2Nzk2ZDVhYmJmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBTZXAgOSAwMzoyMjoyMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuaW5kZXggNjhlYzc2ZmU0NDczNS4uZGI5MWJmYWFmODMzMiAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG5AQCAtNTMsNiArNTMsNyBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXG4rICAgICAgICAgIC0gcWNvbSxzbTg0NTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTg1NTAtaXBhXG4gICAgICAgLSBpdGVtczpcbiAgICAgICAgICAgLSBlbnVtOlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuaW5kZXggYjg3OTM0ODJiMTgxNS4uOTViNmZkMjJhODQ2NSAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXG5AQCAtMjYyNSw2ICsyNjI1LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHtcbiBcdFx0XHRkbWEtY29oZXJlbnQ7XG4gXHRcdH07XG4gXG4rXHRcdGlwYTogaXBhQDNmNDAwMDAge1xuK1x0XHRcdGNvbXBhdGlibGUgPSBcInFjb20sc204NDUwLWlwYVwiO1xuK1xuK1x0XHRcdHJlZyA9IFx1MDAzYzAgMHgzZjQwMDAwIDAgMHgxMDAwMFx1MDAzZSxcbitcdFx0XHQgICAgICBcdTAwM2MwIDB4M2Y1MDAwMCAwIDB4NTAwMFx1MDAzZSxcbitcdFx0XHQgICAgICBcdTAwM2MwIDB4M2UwNDAwMCAwIDB4ZmMwMDBcdTAwM2U7XG4rXHRcdFx0cmVnLW5hbWVzID0gXCJpcGEtcmVnXCIsXG4rXHRcdFx0XHQgICAgXCJpcGEtc2hhcmVkXCIsXG4rXHRcdFx0XHQgICAgXCJnc2lcIjtcbitcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZhcHBzX3NtbXUgMHg1YzAgMHgwXHUwMDNlLFxuK1x0XHRcdFx0IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMiAweDBcdTAwM2U7XG4rXG4rXHRcdFx0aW50ZXJydXB0cy1leHRlbmRlZCA9IFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA2NTQgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZSxcbitcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9pbiAxIElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlO1xuK1x0XHRcdGludGVycnVwdC1uYW1lcyA9IFwiaXBhXCIsXG4rXHRcdFx0XHRcdCAgXCJnc2lcIixcbitcdFx0XHRcdFx0ICBcImlwYS1jbG9jay1xdWVyeVwiLFxuK1x0XHRcdFx0XHQgIFwiaXBhLXNldHVwLXJlYWR5XCI7XG4rXG4rXHRcdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1x1MDAzZTtcbitcdFx0XHRjbG9jay1uYW1lcyA9IFwiY29yZVwiO1xuK1xuK1x0XHRcdGludGVyY29ubmVjdHMgPSBcdTAwM2NcdTAwMjZhZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCBcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFx1MDAzZSxcbitcdFx0XHRcdFx0XHUwMDNjXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXHUwMDNlO1xuK1x0XHRcdGludGVyY29ubmVjdC1uYW1lcyA9IFwibWVtb3J5XCIsXG4rXHRcdFx0XHRcdCAgICAgXCJjb25maWdcIjtcbitcbitcdFx0XHRxY29tLHFtcCA9IFx1MDAzY1x1MDAyNmFvc3NfcW1wXHUwMDNlO1xuK1xuK1x0XHRcdHFjb20sc21lbS1zdGF0ZXMgPSBcdTAwM2NcdTAwMjZpcGFfc21wMnBfb3V0IDBcdTAwM2UsXG4rXHRcdFx0XHRcdCAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMVx1MDAzZTtcbitcdFx0XHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcImlwYS1jbG9jay1lbmFibGVkLXZhbGlkXCIsXG4rXHRcdFx0XHRcdFx0XCJpcGEtY2xvY2stZW5hYmxlZFwiO1xuK1xuK1x0XHRcdHNyYW0gPSBcdTAwM2NcdTAwMjZpcGFfbW9kZW1fdGFibGVzXHUwMDNlO1xuK1xuK1x0XHRcdHN0YXR1cyA9IFwiZGlzYWJsZWRcIjtcbitcdFx0fTtcbitcbiBcdFx0dXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHtcbiBcdFx0XHRjb21wYXRpYmxlID0gXCJxY29tLHNtODQ1MC11c2ItaHMtcGh5XCIsXG4gXHRcdFx0XHQgICAgIFwicWNvbSx1c2Itc25wcy1ocy03bm0tcGh5XCI7XG5AQCAtNDk1NywyMSArNDk5OCwyNSBAQCBjdGlAMTM5MDAwMDAge1xuIFx0XHRcdGNsb2NrLW5hbWVzID0gXCJhcGJfcGNsa1wiO1xuIFx0XHR9O1xuIFxuLVx0XHRzcmFtQDE0NmFhMDAwIHtcbitcdFx0c3JhbUAxNDY4MDAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwicWNvbSxzbTg0NTAtaW1lbVwiLCBcInN5c2NvblwiLCBcInNpbXBsZS1tZmRcIjtcbi1cdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcdTAwM2U7XG4tXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXHUwMDNlO1xuK1x0XHRcdHJlZyA9IFx1MDAzYzAgMHgxNDY4MDAwMCAwIDB4NDAwMDBcdTAwM2U7XG4rXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2ODAwMDAgMHg0MDAwMFx1MDAzZTtcbiBcbiBcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4gXHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFxuLVx0XHRcdG1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAxYyB7XG4tXHRcdFx0XHRyZWcgPSBcdTAwM2MweDFjIDB4NFx1MDAzZTtcbitcdFx0XHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMjgwMDAge1xuK1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyODAwMCAweDIwMDBcdTAwM2U7XG4rXHRcdFx0fTtcbitcbitcdFx0XHRtaW5pZHVtcF9jb25maWc6IG1pbmlkdW1wLXNyYW1AMmEwMWMge1xuK1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyYTAxYyAweDRcdTAwM2U7XG4gXHRcdFx0fTtcbiBcbi1cdFx0XHRwaWwtcmVsb2NAOTRjIHtcbitcdFx0XHRwaWwtcmVsb2NAMmE5NGMge1xuIFx0XHRcdFx0Y29tcGF0aWJsZSA9IFwicWNvbSxwaWwtcmVsb2MtaW5mb1wiO1xuLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg5NGMgMHhjOFx1MDAzZTtcbitcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MmE5NGMgMHhjOFx1MDAzZTtcbiBcdFx0XHR9O1xuIFx0XHR9O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuaW5kZXggZTE0OGVjM2MxYTEwMS4uZDQ5OTVjMmU4Y2EwMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuKysrIGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXG5AQCAtNyw3ICs3LDcgQEAgSVBBX1JFR19WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS41XG4gIyBTb21lIElQQSB2ZXJzaW9ucyBjYW4gcmV1c2UgYW5vdGhlciBzZXQgb2YgR1NJIHJlZ2lzdGVyIGRlZmluaXRpb25zLlxuIEdTSV9SRUdfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4wIDQuNSA0LjkgNC4xMSA1LjBcbiBcbi1JUEFfREFUQV9WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4yIDUuNVxuK0lQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxuIFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcdCs9XHRpcGEub1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuYyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjdkN2JjMTkzYjc3NGNcbi0tLSAvZGV2L251bGxcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY1xuQEAgLTAsMCArMSw0NzYgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuK1xuKy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovXG4rLyogQ29weXJpZ2h0IChDKSAyMDI2IE5hemFyIEtvbXBhbmV0cyBcdTAwM2N4bGllNzY2OUBnbWFpbC5jb21cdTAwM2UgKi9cbisvKiBDb3B5cmlnaHQgKEMpIDIwMjYgRXN0ZWJhbiBVcnJ1dGlhIFx1MDAzY2VzdGV1d3VAcHJvdG9uLm1lXHUwMDNlICovXG4rXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbG9nMi5oXHUwMDNlXG4rXG4rI2luY2x1ZGUgXCIuLi9pcGFfZGF0YS5oXCJcbisjaW5jbHVkZSBcIi4uL2lwYV9lbmRwb2ludC5oXCJcbisjaW5jbHVkZSBcIi4uL2lwYV9tZW0uaFwiXG4rI2luY2x1ZGUgXCIuLi9pcGFfdmVyc2lvbi5oXCJcbitcbisvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK2VudW0gaXBhX3Jlc291cmNlX3R5cGUge1xuK1x0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xuK1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX1BLVF9DT05URVhUU1x0XHQ9IDAsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcbitcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkYsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfSFBTX0RNQVJTLFxuK1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxuK1xuK1x0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXHRcdD0gMCxcbitcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfVUxTT19TRUdNRU5UUyxcbit9O1xuK1xuKy8qIFJlc291cmNlIGdyb3VwcyB1c2VkIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XG4rXHQvKiBTb3VyY2UgcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi9cbitcdElQQV9SU1JDX0dST1VQX1NSQ19VTFx0XHRcdFx0PSAwLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RMLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RNQSxcbitcdElQQV9SU1JDX0dST1VQX1NSQ19RRFNTLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfQ09VTlQsXHQvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovXG4rXG4rXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xuK1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VMXHRcdFx0XHQ9IDAsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfREwsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzIsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzQsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUMsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLFxuK1x0SVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cbit9O1xuK1xuKy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9xc2JfZGF0YSBpcGFfcXNiX2RhdGFbXSA9IHtcbitcdFtJUEFfUVNCX01BU1RFUl9ERFJdID0ge1xuK1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4rXHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbitcdFx0Lm1heF9yZWFkc19iZWF0c1x0PSAwLFxuK1x0fSxcbitcdFtJUEFfUVNCX01BU1RFUl9QQ0lFXSA9IHtcbitcdFx0Lm1heF93cml0ZXNcdFx0PSAwLFxuK1x0XHQubWF4X3JlYWRzXHRcdD0gMCxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXG4rXHRcdC5tYXhfcmVhZHNfYmVhdHNcdD0gMCxcbitcdH0sXG4rfTtcbitcbisvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSBpcGFfZ3NpX2VuZHBvaW50X2RhdGFbXSA9IHtcbitcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMTIsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAxNCxcbitcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbitcdFx0LmNoYW5uZWwgPSB7XG4rXHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4rXHRcdFx0LmV2ZW50X2NvdW50XHQ9IDI1NixcbitcdFx0XHQudGx2X2NvdW50XHQ9IDIwLFxuK1x0XHR9LFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmNvbmZpZyA9IHtcbitcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXG4rXHRcdFx0XHQuZG1hX21vZGVcdD0gdHJ1ZSxcbitcdFx0XHRcdC5kbWFfZW5kcG9pbnRcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcbitcdFx0XHRcdC50eCA9IHtcbitcdFx0XHRcdFx0LnNlcV90eXBlID0gSVBBX1NFUV9ETUEsXG4rXHRcdFx0XHR9LFxuK1x0XHRcdH0sXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xuK1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4rXHRcdC5jaGFubmVsX2lkXHQ9IDEzLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMTYsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuK1x0XHRcdC50bHZfY291bnRcdD0gOSxcbitcdFx0fSxcbitcdFx0LmVuZHBvaW50ID0ge1xuK1x0XHRcdC5jb25maWcgPSB7XG4rXHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuK1x0XHRcdFx0LmFnZ3JlZ2F0aW9uXHQ9IHRydWUsXG4rXHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuK1x0XHRcdFx0LnJ4ID0ge1xuK1x0XHRcdFx0XHQuYnVmZmVyX3NpemVcdD0gODE5MixcbitcdFx0XHRcdFx0LnBhZF9hbGlnblx0PSBpbG9nMihzaXplb2YodTMyKSksXG4rXHRcdFx0XHRcdC5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsXG4rXHRcdFx0XHR9LFxuK1x0XHRcdH0sXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMTEsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAyLFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDUxMixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gNTEyLFxuK1x0XHRcdC50bHZfY291bnRcdD0gMjUsXG4rXHRcdH0sXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuZmlsdGVyX3N1cHBvcnRcdD0gdHJ1ZSxcbitcdFx0XHQuY29uZmlnID0ge1xuK1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19VTCxcbitcdFx0XHRcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXG4rXHRcdFx0XHQucW1hcFx0XHQ9IHRydWUsXG4rXHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuK1x0XHRcdFx0LnR4ID0ge1xuK1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXG4rXHRcdFx0XHRcdC5zdGF0dXNfZW5kcG9pbnQgPVxuK1x0XHRcdFx0XHRcdElQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWCxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1JYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAxLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMjMsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuK1x0XHRcdC50bHZfY291bnRcdD0gOSxcbitcdFx0fSxcbitcdFx0LmVuZHBvaW50ID0ge1xuK1x0XHRcdC5jb25maWcgPSB7XG4rXHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuK1x0XHRcdFx0LmNoZWNrc3VtICAgICAgID0gdHJ1ZSxcbitcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbitcdFx0XHRcdC5hZ2dyZWdhdGlvblx0PSB0cnVlLFxuK1x0XHRcdFx0LnJ4ID0ge1xuK1x0XHRcdFx0XHQuYnVmZmVyX3NpemVcdD0gODE5MixcbitcdFx0XHRcdFx0LmFnZ3JfdGltZV9saW1pdCA9IDUwMCxcbitcdFx0XHRcdFx0LmFnZ3JfY2xvc2VfZW9mXHQ9IHRydWUsXG4rXHRcdFx0XHR9LFxuK1x0XHRcdH0sXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9NT0RFTSxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMCxcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDEyLFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9NT0RFTSxcbitcdFx0LmNoYW5uZWxfaWRcdD0gNyxcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDIxLFxuK1x0XHQudG93YXJkX2lwYVx0PSBmYWxzZSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9NT0RFTSxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMixcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDE1LFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4rXHRcdH0sXG4rXHR9LFxuK307XG4rXG4rLyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9zcmNbXSA9IHtcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuK1x0XHRcdC5taW4gPSA3LFx0Lm1heCA9IDEyLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDEsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbitcdFx0XHQubWluID0gMjEsXHQubWF4ID0gMjEsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMTAsXHQubWF4ID0gMTAsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDMzLFx0Lm1heCA9IDMzLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDIwLFx0Lm1heCA9IDIwLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfSFBTX0RNQVJTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0XHQvKiBNYXJrZWQgYXMgdW51c2VkIGRvd25zdHJlYW0gKi9cbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfRE1BXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1FEU1NdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDEsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDM4LFx0Lm1heCA9IDM4LFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDE2LFx0Lm1heCA9IDE2LFxuK1x0XHR9LFxuK1x0fSxcbit9O1xuK1xuKy8qIERlc3RpbmF0aW9uIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9kc3RbXSA9IHtcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuK1x0XHRcdC5taW4gPSA2LFx0Lm1heCA9IDYsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbitcdFx0XHQubWluID0gNSxcdC5tYXggPSA1LFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0ge1xuK1x0XHRcdC5taW4gPSAzOSxcdC5tYXggPSAzOSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gMyxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdH0sXG4rfTtcbitcbisvKiBSZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZV9kYXRhIGlwYV9yZXNvdXJjZV9kYXRhID0ge1xuK1x0LnJzcmNfZ3JvdXBfZHN0X2NvdW50XHQ9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCxcbitcdC5yc3JjX2dyb3VwX3NyY19jb3VudFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfQ09VTlQsXG4rXHQucmVzb3VyY2Vfc3JjX2NvdW50XHQ9IEFSUkFZX1NJWkUoaXBhX3Jlc291cmNlX3NyYyksXG4rXHQucmVzb3VyY2Vfc3JjXHRcdD0gaXBhX3Jlc291cmNlX3NyYyxcbitcdC5yZXNvdXJjZV9kc3RfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSxcbitcdC5yZXNvdXJjZV9kc3RcdFx0PSBpcGFfcmVzb3VyY2VfZHN0LFxuK307XG4rXG4rLyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHtcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9VQ19FVkVOVF9SSU5HLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgwMDAwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MTAwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9VQ19TSEFSRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDEwMDAsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDgwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX0lORk8sXG4rXHRcdC5vZmZzZXRcdFx0PSAweDEwODAsXG4rXHRcdC5zaXplXHRcdD0gMHgwMjAwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X0ZJTFRFUl9IQVNIRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDEyODgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X0ZJTFRFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTMwOCxcbitcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTM4OCxcbitcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfRklMVEVSLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxNDA4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9ST1VURV9IQVNIRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE0ODgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxNTI4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9ST1VURV9IQVNIRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE1YzgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxNjY4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9IRUFERVIsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE3MDgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMjQwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX0hFQURFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTk0OCxcbitcdFx0LnNpemVcdFx0PSAweDAxZTAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fTU9ERU1fUFJPQ19DVFgsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDFiNDAsXG4rXHRcdC5zaXplXHRcdD0gMHgwYjIwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX1BST0NfQ1RYLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyNjYwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDIwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9NT0RFTSxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4Mjg2OCxcbitcdFx0LnNpemVcdFx0PSAweDAwNjAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfUVVPVEFfQVAsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDI4YzgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDQ4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORyxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MjkxMCxcbitcdFx0LnNpemVcdFx0PSAweDAzYzAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfRklMVEVSX1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MGJhMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19EUk9QLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDAyMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTSxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbitcdFx0LnNpemVcdFx0PSAweDBkNDgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fTkFUX1RBQkxFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDkwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9QRE5fQ09ORklHLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDEwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9TVEFUU19EUk9QLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0ZmU4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDAxOCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbit9O1xuK1xuKy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7XG4rXHQubG9jYWxfY291bnRcdD0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLFxuK1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuK1x0LmltZW1fYWRkclx0PSAweDE0NmE4MDAwLFxuK1x0LmltZW1fc2l6ZVx0PSAweDAwMDAyMDAwLFxuK1x0LnNtZW1fc2l6ZVx0PSAweDAwMDA5MDAwLFxuK307XG4rXG4rLyogSW50ZXJjb25uZWN0IHJhdGVzIGFyZSBpbiAxMDAwIGJ5dGUvc2Vjb25kIHVuaXRzICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfaW50ZXJjb25uZWN0X2RhdGEgaXBhX2ludGVyY29ubmVjdF9kYXRhW10gPSB7XG4rXHR7XG4rXHRcdC5uYW1lXHRcdFx0PSBcIm1lbW9yeVwiLFxuK1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSAxOTAwMDAwLFx0LyogMS45IEdCcHMgKi9cbitcdFx0LmF2ZXJhZ2VfYmFuZHdpZHRoXHQ9IDU5MDAwMCxcdC8qIDU5MCBNQnBzICovXG4rXHR9LFxuK1x0LyogQXZlcmFnZSByYXRlIGlzIHVudXNlZCBmb3IgdGhlIG5leHQgaW50ZXJjb25uZWN0ICovXG4rXHR7XG4rXHRcdC5uYW1lXHRcdFx0PSBcImNvbmZpZ1wiLFxuK1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSA3NjgwMCxcdC8qIDc2LjggTUJwcyAqL1xuK1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gMCxcdFx0LyogdW51c2VkICovXG4rXHR9LFxuK307XG4rXG4rLyogQ2xvY2sgYW5kIGludGVyY29ubmVjdCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9wb3dlcl9kYXRhIGlwYV9wb3dlcl9kYXRhID0ge1xuK1x0LmNvcmVfY2xvY2tfcmF0ZVx0PSAxMjAgKiAxMDAwICogMTAwMCxcdC8qIEh6ICovXG4rXHQuaW50ZXJjb25uZWN0X2NvdW50XHQ9IEFSUkFZX1NJWkUoaXBhX2ludGVyY29ubmVjdF9kYXRhKSxcbitcdC5pbnRlcmNvbm5lY3RfZGF0YVx0PSBpcGFfaW50ZXJjb25uZWN0X2RhdGEsXG4rfTtcbitcbisvKiBDb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEuICovXG4rY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzEgPSB7XG4rXHQudmVyc2lvblx0XHQ9IElQQV9WRVJTSU9OXzVfMSxcbitcdC5xc2JfY291bnRcdFx0PSBBUlJBWV9TSVpFKGlwYV9xc2JfZGF0YSksXG4rXHQucXNiX2RhdGFcdFx0PSBpcGFfcXNiX2RhdGEsXG4rXHQubW9kZW1fcm91dGVfY291bnRcdD0gMTEsXG4rXHQuZW5kcG9pbnRfY291bnRcdFx0PSBBUlJBWV9TSVpFKGlwYV9nc2lfZW5kcG9pbnRfZGF0YSksXG4rXHQuZW5kcG9pbnRfZGF0YVx0XHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcbitcdC5yZXNvdXJjZV9kYXRhXHRcdD0gXHUwMDI2aXBhX3Jlc291cmNlX2RhdGEsXG4rXHQubWVtX2RhdGFcdFx0PSBcdTAwMjZpcGFfbWVtX2RhdGEsXG4rXHQucG93ZXJfZGF0YVx0XHQ9IFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxuK307XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYyBiL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmNcbmluZGV4IGUxM2NmODM1YTAxM2MuLmE1NzA3MmJhNGJlZjYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5AQCAtMTEwLDYgKzExMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqZ3NpX3JlZ3Moc3RydWN0IGdzaSAqZ3NpKVxuIFx0XHRyZXR1cm4gXHUwMDI2Z3NpX3JlZ3NfdjRfMTE7XG4gXG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMDpcbitcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y1XzA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuaW5kZXggM2ViOWRjMmNlMzM5OC4uZmU2ZjdkNWJmZTg4YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuQEAgLTI1Myw2ICsyNTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzc7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85O1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfMTE7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8wO1xuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV81O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbmluZGV4IDE0YWMyZDJmYWY3YzIuLjg0YmVjNDYxZDIyY2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbkBAIC02NzIsNiArNjcyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwYV9tYXRjaFtdID0ge1xuIFx0XHQuY29tcGF0aWJsZVx0PSBcInFjb20sc2R4NjUtaXBhXCIsXG4gXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMCxcbiBcdH0sXG4rXHR7XG4rXHRcdC5jb21wYXRpYmxlXHQ9IFwicWNvbSxzbTg0NTAtaXBhXCIsXG4rXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMSxcbitcdH0sXG4gXHR7XG4gXHRcdC5jb21wYXRpYmxlXHQ9IFwicWNvbSxtaWxvcy1pcGFcIixcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8yLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jXG5pbmRleCAzMGJkNjlmNGMxNDdjLi41ZjIyY2E2Mjk1YjE2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuQEAgLTEyNSw2ICsxMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmlwYV9yZWdzKGVudW0gaXBhX3ZlcnNpb24gdmVyc2lvbilcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNF8xMTpcbiBcdFx0cmV0dXJuIFx1MDAyNmlwYV9yZWdzX3Y0XzExO1xuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XG4rXHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxuIFx0XHRyZXR1cm4gXHUwMDI2aXBhX3JlZ3NfdjVfMDtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV81OlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6MjQuNjI4MDM2NTA1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDIyMTI1NTgyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIElQIEFjY2VsZXJhdG9yIFBhdGNoIGZvciBTTTg0NTAqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaCBzZXJpZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBkb3duIGVhY2ggcGllY2UgYW5kIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCdzIGJlaW5nIGludHJvZHVjZWQgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciBkcml2ZXIsIHRhcmdldGluZyB0aGUgYW1kNjQgYXJjaGl0ZWN0dXJlIOKAkyBpdCdzIGltcG9ydGFudCB0byBrZWVwIHRoYXQgY29udGV4dCBpbiBtaW5kLlxuXG5GaXJzdCwgdGhlIERldmljZSBUcmVlIGJpbmRpbmdzIGZpbGUsIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgLCBoYXMgYSBuZXcgY29tcGF0aWJsZSBzdHJpbmcsIGBxY29tLHNtODQ1MC1pcGFgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGZvciB0aGUgU004NDUwIHBsYXRmb3JtLiBNYWtlcyBzZW5zZS4gVGhlbiwgdGhlIFNNODQ1MCBEVFMgaXRzZWxmLCBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYCwgbm93IGluY2x1ZGVzIGFuIGBpcGFgIG5vZGUgYW5kIHVwZGF0ZXMgdG8gdGhlIGBzcmFtYCBub2RlLiBUaGF0J3Mgd2hlcmUgdGhlIGhhcmR3YXJlIGRlc2NyaXB0aW9uIGdldHMgZGVmaW5lZC5cblxuTmV4dCwgdGhlIE1ha2VmaWxlIGluIHRoZSBgZHJpdmVycy9uZXQvaXBhYCBkaXJlY3RvcnkgaXMgdXBkYXRlZCB0byBpbmNsdWRlIHZlcnNpb24gNS4xIGluIGBJUEFfREFUQV9WRVJTSU9OU2AsIHdoaWNoIHRlbGxzIG1lIHRoZXJlJ3MgYSBuZXcgZGF0YSB2ZXJzaW9uIGJlaW5nIGFkZGVkLiBGb2xsb3dpbmcgdGhhdCwgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2AgZGVmaW5lcyB0aGUgYWN0dWFsIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgdGhlIElQIEFjY2VsZXJhdG9yIGZvciB0aGUgU004NDUwLiBHb29kLCBub3cgSSBrbm93IHRoZSBkZXRhaWxzLlxuXG5UaGUgY29kZSBpbiBgZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY2AgYW5kIGBkcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jYCBpbmNsdWRlcyBoYW5kbGluZyBmb3IgYElQQV9WRVJTSU9OXzVfMWAuIFRoZXNlIGZpbGVzIGFyZSBjbGVhcmx5IGNvbmNlcm5lZCB3aXRoIHRoZSByZWdpc3RlciBpbnRlcmFjdGlvbiBhbmQgdmVyc2lvbi1zcGVjaWZpYyBsb2dpYy4gVGhlIGluY2x1ZGUgZmlsZSwgYGRyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oYCwgY29udGFpbnMgdGhlIGV4dGVybiBkZWNsYXJhdGlvbiBmb3IgdGhlIG5ldyBkYXRhIHN0cnVjdHVyZSwgYGlwYV9kYXRhX3Y1XzFgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGlzIGlzIHRoZSBuZXcgZGF0YS5cblxuRmluYWxseSwgaW4gYGRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jYCwgdGhlcmUncyBhIG5ldyBlbnRyeSBpbiBgaXBhX21hdGNoYDogYHsgLmNvbXBhdGlibGUgPSBcInFjb20sc204NDUwLWlwYVwiLCAuZGF0YSA9IFx1MDAyNmlwYV9kYXRhX3Y1XzEgfWAuIFRoaXMgaXMgdGhlIGNyaXRpY2FsIHBpZWNlIHRoYXQgdGllcyBpdCBhbGwgdG9nZXRoZXIg4oCTIGFzc29jaWF0aW5nIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcgd2l0aCB0aGUgY29uZmlndXJhdGlvbiBkYXRhIGZvciB0aGlzIHNwZWNpZmljIFNNODQ1MCBoYXJkd2FyZS4gSXQgYWxzbyBsb29rcyBsaWtlIHRoZSBjb21wYXRpYmxlIHZhbHVlIGlzIHNldCBieSB0aGUgcGxhdGZvcm0gb3IgYm9hcmQuXG5cbkJlZm9yZSBJIGdvIGZ1cnRoZXIsIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBDT05GSUdfUUNPTV9JUEFgLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHRoZSBjb25kaXRpb25zIGZvciBpdHMgY29tcGlsYXRpb24sIGFuZCB3aGF0IGJpbmRpbmdzIHRoaXMgY29uZmlndXJhdGlvbiBmbGFnIHJlbGllcyBvbi4gVGhpcyBoZWxwcyB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IGFuZCBhbnkgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBmb3IgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMgb3Igb3RoZXIgUXVhbGNvbW0tcmVsYXRlZCBkcml2ZXJzLiBJdCdzIGFsc28gcG9zc2libGUgdG8gZGlzY292ZXIgb3RoZXIgaW50ZXJhY3Rpb25zIGJhc2VkIG9uIGRlcGVuZGVuY3kgY2hlY2tzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTI4NywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjI4Ljg0OTI5NTAzNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM1OTE2MDg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBRQ09NX0lQQVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcGEvS2NvbmZpZzoxOmNvbmZpZyBRQ09NX0lQQVxcbmRyaXZlcnMvbmV0L2lwYS9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIElQQSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjozMC40ODUyMTc3MDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNjQ5MjAyMTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IEtjb25maWcgZmlsZTpcblxuKipEaXZpbmcgaW50byB0aGUgSVBBIE5ldHdvcmsgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gY3JhY2sgb3BlbiBgZHJpdmVycy9uZXQvaXBhL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIHRoZSBjb3JlIG9mIHRoZSBJUEEgKGxpa2VseSwgSW4tUHJvY2VzcyBBY2NlbGVyYXRvciwgb3Igc29tZXRoaW5nIHNpbWlsYXIgaW4gbmV0d29ya2luZykgbmV0d29yayBkcml2ZXIgY29uZmlndXJhdGlvbiBsaXZlcy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IGZlYXR1cmVzIGFyZSBlbmFibGVkLCB3aGF0IGRlcGVuZGVuY2llcyB0aGV5IGhhdmUsIGFuZCBob3cgaXQgYWxsIGZpdHMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIG5ldHdvcmtpbmcgc3Vic3lzdGVtLlxuXG5GaXJzdCwgSSdsbCBiZSBsb29raW5nIGZvciB0aGUgbWFpbiBgY29uZmlnYCBzeW1ib2wgdGhhdCBjb250cm9scyB0aGUgZW50aXJlIElQQSBkcml2ZXIuIEl0J2xsIHByb2JhYmx5IGhhdmUgYSBuYW1lIGxpa2UgYENPTkZJR19JUEFgIG9yIHNvbWV0aGluZyBlcXVhbGx5IGRlc2NyaXB0aXZlLiBPbmNlIEkgZmluZCB0aGF0LCBJIGNhbiB3b3JrIG15IHdheSBkb3duIHRoZSB0cmVlLiBJIGV4cGVjdCB0byBzZWUgbmVzdGVkIGBjb25maWdgIG9wdGlvbnMgZm9yIGluZGl2aWR1YWwgZmVhdHVyZXMsIG1heWJlIHJlbGF0ZWQgdG8gZGlmZmVyZW50IElQQSBoYXJkd2FyZSByZXZpc2lvbnMsIHZhcmlvdXMgb2ZmbG9hZCBjYXBhYmlsaXRpZXMgKGNoZWNrc3VtLCBzZWdtZW50YXRpb24sIGV0Yy4pLCBzcGVjaWZpYyBQSFkgc3VwcG9ydCBpZiBhcHBsaWNhYmxlLCBvciBldmVuIGRpZmZlcmVudCBvcGVyYXRpb25hbCBtb2Rlcy5cblxuSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBgZGVwZW5kcyBvbmAgY2xhdXNlcy4gVGhlc2UgYXJlIGNydWNpYWwuIFRoZXkgdGVsbCBtZSB0aGUgcHJlcmVxdWlzaXRlcyDigJMgb3RoZXIga2VybmVsIG1vZHVsZXMsIGZlYXR1cmVzLCBvciBoYXJkd2FyZSBzdXBwb3J0IOKAkyB0aGF0IG5lZWQgdG8gYmUgZW5hYmxlZCBiZWZvcmUgSSBjYW4gZXZlbiAqY29uc2lkZXIqIGVuYWJsaW5nIGEgcGFydGljdWxhciBJUEEgZmVhdHVyZS4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGtleSB0byBhdm9pZGluZyBjb25maWd1cmF0aW9uIGNvbmZsaWN0cyBhbmQgYnVpbGRpbmcgYSB3b3JraW5nIHN5c3RlbS5cblxuSSdtIGFsc28gZXhwZWN0aW5nIHRvIHNlZSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCB3aGljaCBhdXRvbWF0aWNhbGx5IGVuYWJsZSBvdGhlciBjb25maWd1cmF0aW9uIHN5bWJvbHMgaWYgdGhlIGN1cnJlbnQgb25lIGlzIGNob3Nlbi4gVGhpcyBpcyBjb21tb24gZm9yIGVuYWJsaW5nIGRlcGVuZGVudCBjb21wb25lbnRzIGxpa2UgaGVscGVyIGZ1bmN0aW9ucywgaGVhZGVyIGZpbGVzLCBvciBjb3JlIGRyaXZlciBtb2R1bGVzLlxuXG5BcyBhbiBleHBlcnQgaW4gZW1iZWRkZWQgbmV0d29ya2luZywgSSdsbCBhbHNvIGJlIG9uIHRoZSBsb29rb3V0IGZvciBkZWZhdWx0IHZhbHVlcyAoYGRlZmF1bHRgKSBmb3IgdGhlIHZhcmlvdXMgb3B0aW9ucy4gVGhlc2UgZ2l2ZSBtZSBhIHNlbnNlIG9mIHdoYXQgdGhlIGRldmVsb3BlcnMgY29uc2lkZXIgdGhlIFwiY29tbW9uIGNhc2VcIiBjb25maWd1cmF0aW9uLiBJJ2xsIG5lZWQgdG8gdGhpbmsgYWJvdXQgd2hldGhlciB0aG9zZSBkZWZhdWx0cyBhcmUgYXBwcm9wcmlhdGUgZm9yIG15IHRhcmdldCBzeXN0ZW0uXG5cbkZpbmFsbHksIEknbGwgYmUgc2Nhbm5pbmcgZm9yIGFueSBgaGVscGAgdGV4dC4gV2hpbGUgaXQgd29uJ3QgcmVwbGFjZSBhIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZGVlcCBkaXZlLCB0aGUgaGVscCB0ZXh0IG9mdGVuIHByb3ZpZGVzIHZhbHVhYmxlIGNsdWVzIGFzIHRvIHRoZSBwdXJwb3NlIG9mIGEgY29uZmlndXJhdGlvbiBvcHRpb24sIGl0cyBpbnRlbmRlZCB1c2FnZSwgYW5kIHBvc3NpYmxlIHRyYWRlLW9mZnMuIEl0IGNhbiBvZnRlbiBoaWdobGlnaHQgdGhlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBvZiBjZXJ0YWluIGNob2ljZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMjgyLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6MzQuMTM0NDIzMzUzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg4NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvaXBhL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRjb25maWcgUUNPTV9JUEFcXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBJUEEgc3VwcG9ydFxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gTkVUIFxcdTAwMjZcXHUwMDI2IFFDT01fU01FTVxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX1FDT00gfHwgQ09NUElMRV9URVNUXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIElOVEVSQ09OTkVDVFxcbiAgIDY6XFx0XFx0ZGVwZW5kcyBvbiBRQ09NX1JQUk9DX0NPTU1PTiB8fCAoUUNPTV9SUFJPQ19DT01NT049biBcXHUwMDI2XFx1MDAyNiBDT01QSUxFX1RFU1QpXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIFFDT01fQU9TU19RTVAgfHwgUUNPTV9BT1NTX1FNUD1uXFxuICAgODpcXHRcXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuICAgOTpcXHRcXHRzZWxlY3QgUUNPTV9QQVNcXG4gIDEwOlxcdFxcdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXFxuICAxMTpcXHRcXHRoZWxwXFxuICAxMjpcXHRcXHQgIENob29zZSBZIG9yIE0gaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBRdWFsY29tbVxcbiAgMTM6XFx0XFx0ICBJUCBBY2NlbGVyYXRvciAoSVBBKSwgYSBoYXJkd2FyZSBibG9jayBwcmVzZW50IGluIHNvbWVcXG4gIDE0OlxcdFxcdCAgUXVhbGNvbW0gU29Dcy4gIFRoZSBJUEEgaXMgYSBwcm9ncmFtbWFibGUgcHJvdG9jb2wgcHJvY2Vzc29yXFxuICAxNTpcXHRcXHQgIHRoYXQgaXMgY2FwYWJsZSBvZiBnZW5lcmljIGhhcmR3YXJlIGhhbmRsaW5nIG9mIElQIHBhY2tldHMsXFxuICAxNjpcXHRcXHQgIGluY2x1ZGluZyByb3V0aW5nLCBmaWx0ZXJpbmcsIGFuZCBOQVQuICBDdXJyZW50bHkgdGhlIElQQVxcbiAgMTc6XFx0XFx0ICBkcml2ZXIgc3VwcG9ydHMgb25seSBiYXNpYyB0cmFuc3BvcnQgb2YgbmV0d29yayB0cmFmZmljXFxuICAxODpcXHRcXHQgIGJldHdlZW4gdGhlIEFQIGFuZCBtb2RlbS5cXG4gIDE5OlxcdFxcbiAgMjA6XFx0XFx0ICBOb3RlIHRoYXQgaWYgc2VsZWN0ZWQsIHRoZSBzZWxlY3Rpb24gdHlwZSBtdXN0IG1hdGNoIHRoYXRcXG4gIDIxOlxcdFxcdCAgb2YgUUNPTV9RNlY1X0NPTU1PTiAoWSBvciBNKS5cXG4gIDIyOlxcdFxcbiAgMjM6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjozNC4xMzQ0ODM4ODRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMzA4NzI1Nzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFRyaWFnZSBBc3Nlc3NtZW50KipcblxuT2theSwgdGltZSB0byBtYWtlIGEgZGVjaXNpb24uIExldCdzIHJldmlzaXQgU2VjdGlvbiAyIG9mIHRoZSB0cmlhZ2UgcGhpbG9zb3BoeSwgc3BlY2lmaWNhbGx5IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSDigJMgd2hlbiB3ZSAqZG9uJ3QqIGNvbnNpZGVyIHNvbWV0aGluZyB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgUXVhbGNvbW0gSVBBIGNvZGUgZG9lc24ndCBmYWxsIGludG8gb25lIG9mIHRob3NlIGNhdGVnb3JpZXMuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgY2hhbmdlcyBhcmUgbm90IHJlbGF0ZWQgdG8gYW55IG9mIHRoZSBmb2xsb3dpbmcgdG8gbm90IGJlIHdvcnRoIGZ1enppbmc6XG4qICAgTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlcyAoZG9jdW1lbnRhdGlvbiwgdXNlci1zcGFjZSB0b29scywgbG9nZ2luZyB0aGF0IGRvZXNuJ3QgYWZmZWN0IGNvbnRyb2wgZmxvdywgZXRjLilcbiogICBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUgKHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIGZvciBoYXJkd2FyZSB3ZSBjYW4ndCBlbXVsYXRlKVxuKiAgIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocyAodGVhcmRvd24gY2FsbGJhY2tzIG9ubHkgdHJpZ2dlcmVkIGJ5IGhvdC11bnBsdWcsIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlKS5cblxuVGhlIHRhcmdldCBpcyBhbWQ2NCwgc28gbGV0J3MgZ2V0IHRoYXQgY2xlYXIgaW4gbWluZC4gTm93LCBJIGhhdmUgdG8gY29uc2lkZXIgUXVhbGNvbW0gSVBBLCB3aGljaCBmcm9tIG15IHVuZGVyc3RhbmRpbmcgaXMgdGllZCB0byBRdWFsY29tbSBTb0MgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBBUk02NCBwbGF0Zm9ybXMgYW5kIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoZSBEZXZpY2UgVHJlZSwgcGFydGljdWxhcmx5IG9uIHRoZSBTbmFwZHJhZ29uIFNNODQ1MC4gVGhlIHF1ZXN0aW9uIHRoYXQgcmVtYWlucyBpczogSXMgUUNPTVxcX0lQQSBhIHN0YW5kYXJkIHBsYXRmb3JtIGRyaXZlciB0aGF0IGlzIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoZSBEZXZpY2UgVHJlZSBvbiBRdWFsY29tbSBTbmFwZHJhZ29uIFNvQ3M/IFRpbWUgdG8gZGl2ZSBpbnRvIGBpcGFfbWFpbi5jYCBhbmQgbWFrZSBhIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTM4LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzY5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6MzcuNDQzMjExOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTczODQ0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfcGxhdGZvcm1fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2lwYVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYz0xMDE1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlwYV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYy0xMDI2LVxcbmRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jOjEwMjc6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpcGFfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYy0xMDI4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjozNy40ODg5NTQ5NTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0MTM2MjE4MTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipEaXZpbmcgaW50byB0aGUgSVBBIERyaXZlcioqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gaG93IHRoaXMgYWxsIHdvcmtzLCBzbyBsZXQncyBzdGFydCB3aXRoIHRoZSBgaXBhX2RyaXZlcmAgc3BlY2lmaWNhbGx5LCBhbmQgdGhlIGBpcGFfbWFpbi5jYCBmaWxlIHdoZXJlIGl0IHNob3VsZCBiZSBkZWZpbmVkLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBsb29rIHRocm91Z2ggdGhlIGNvZGUgaW4gdGhhdCBmaWxlLCBjb25maXJtIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSwgYW5kIHRoZW4gbWFwIG91dCBhbnkgcmVsZXZhbnQgaW50ZXJhY3Rpb24gcG9pbnRzLiBJJ20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gc2VlaW5nIGhvdyB0aGUgSVBBIGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0sIHdoYXQgaXRzIGVudHJ5IHBvaW50cyBhcmUsIGFuZCBpZiBhbnl0aGluZyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIEkgbG9va2VkIGF0IGl0LiBMZXQncyBzZWUgaWYgdGhlIGNvcmUgY29uY2VwdHMgcmVtYWluIHRoZSBzYW1lIG9yIGlmIHRoZXJlIGFyZSBhbnkgc3VidGxlIGJ1dCBpbXBvcnRhbnQgaW1wbGVtZW50YXRpb24gZGlmZmVyZW5jZXMuIFRpbWUgdG8gcHVsbCB1cCB0aGUgY29kZSBhbmQgZ2V0IHN0YXJ0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzOTEwLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6NDEuNjI1MTc1Mjc3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2OTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEwMDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEwMDA6XFx0XFx0a2ZyZWUoaXBhKTtcXG4xMDAxOlxcdFxcdGlwYV9wb3dlcl9leGl0KHBvd2VyKTtcXG4xMDAyOlxcdFxcdGlwYV9pbnRlcnJ1cHRfZXhpdChpbnRlcnJ1cHQpO1xcbjEwMDM6XFx0XFxuMTAwNDpcXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCJJUEEgZHJpdmVyIHJlbW92ZWRcXFwiKTtcXG4xMDA1OlxcdH1cXG4xMDA2OlxcdFxcbjEwMDc6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmlwYV9hdHRyaWJ1dGVfZ3JvdXBzW10gPSB7XFxuMTAwODpcXHRcXHRcXHUwMDI2aXBhX2F0dHJpYnV0ZV9ncm91cCxcXG4xMDA5OlxcdFxcdFxcdTAwMjZpcGFfZmVhdHVyZV9hdHRyaWJ1dGVfZ3JvdXAsXFxuMTAxMDpcXHRcXHRcXHUwMDI2aXBhX2VuZHBvaW50X2lkX2F0dHJpYnV0ZV9ncm91cCxcXG4xMDExOlxcdFxcdFxcdTAwMjZpcGFfbW9kZW1fYXR0cmlidXRlX2dyb3VwLFxcbjEwMTI6XFx0XFx0TlVMTCxcXG4xMDEzOlxcdH07XFxuMTAxNDpcXHRcXG4xMDE1OlxcdHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlwYV9kcml2ZXIgPSB7XFxuMTAxNjpcXHRcXHQucHJvYmVcXHRcXHQ9IGlwYV9wcm9iZSxcXG4xMDE3OlxcdFxcdC5yZW1vdmVcXHRcXHQ9IGlwYV9yZW1vdmUsXFxuMTAxODpcXHRcXHQuc2h1dGRvd25cXHQ9IGlwYV9yZW1vdmUsXFxuMTAxOTpcXHRcXHQuZHJpdmVyXFx0PSB7XFxuMTAyMDpcXHRcXHRcXHQubmFtZVxcdFxcdD0gXFxcImlwYVxcXCIsXFxuMTAyMTpcXHRcXHRcXHQucG1cXHRcXHQ9IFxcdTAwMjZpcGFfcG1fb3BzLFxcbjEwMjI6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlXFx0PSBpcGFfbWF0Y2gsXFxuMTAyMzpcXHRcXHRcXHQuZGV2X2dyb3Vwc1xcdD0gaXBhX2F0dHJpYnV0ZV9ncm91cHMsXFxuMTAyNDpcXHRcXHR9LFxcbjEwMjU6XFx0fTtcXG4xMDI2OlxcdFxcbjEwMjc6XFx0bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpcGFfZHJpdmVyKTtcXG4xMDI4OlxcdFxcbjEwMjk6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbjEwMzA6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJRdWFsY29tbSBJUCBBY2NlbGVyYXRvciBkZXZpY2UgZHJpdmVyXFxcIik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjQxLjYyNTI2NTA4N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NjcwMDU2MjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQ6IElQQSBEcml2ZXIgRnV6emluZyBFeGNsdXNpb24qKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFdlJ3JlIGxvb2tpbmcgYXQgdGhlIGBpcGFfZHJpdmVyYCBhbmQgd2hldGhlciBpdCdzIHN1aXRhYmxlIGZvciBmdXp6aW5nLiAgTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQncyAqbm90Ki5cblxuVGhlIGBpcGFfZHJpdmVyYCBpcyBhIHBsYXRmb3JtIGRyaXZlciB0aGF0IHJlbGllcyBvbiBhIGRldmljZSB0cmVlIG1hdGNoIChgb2ZfbWF0Y2hfdGFibGUgPSBpcGFfbWF0Y2hgKS4gVGhlIHRhcmdldCBhcmNoaXRlY3R1cmUsIGhvd2V2ZXIsIGlzIGFtZDY0LiAgVGhlIGNvZGUgbW9kaWZpY2F0aW9ucyByZWxhdGUgdG8gUXVhbGNvbW0ncyBJUEEgKElQIEFjY2VsZXJhdG9yKSB2NS4xIGhhcmR3YXJlIGJsb2NrLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBTTTg0NTAgKFNuYXBkcmFnb24gOCBHZW4gMSkgd2hpY2ggaXMgYW4gQVJNNjQgU29DLiBDcnVjaWFsbHksIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgaXMgKipub3QqKiBlbXVsYXRlZCB3aXRoaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuICBJdCBkZW1hbmRzICpwaHlzaWNhbCogaGFyZHdhcmUgb3Igc3BlY2lhbGl6ZWQgZW11bGF0aW9uIHRoYXQgaXNuJ3QgYWNjZXNzaWJsZSBpbiB0aGVzZSBzdGFuZGFyZCBlbnZpcm9ubWVudHMuXG5cbk15IGFuYWx5c2lzIHJldmVhbHMgdGhyZWUga2V5IGVsZW1lbnRzOlxuXG4xLiAgKipBcmNoaXRlY3R1cmUgTWlzbWF0Y2g6KiogIFRoZSB0YXJnZXQgaXMgYW1kNjQsIGJ1dCB0aGUgY2hhbmdlcyBkaXJlY3RseSBpbXBhY3QgQVJNNjQtc3BlY2lmaWMgZmlsZXM6IGBhcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lgIChEVFNJKSBhbmQgdGhlIElQQSBkcml2ZXIgZGF0YSBkZWZpbml0aW9ucyBpbiBgZHJpdmVycy9uZXQvaXBhL2AgdGFpbG9yZWQgdG8gdGhlIFNNODQ1MCBwbGF0Zm9ybS5cbjIuICAqKlVucmVhY2hhYmxlIEhhcmR3YXJlOioqIFRoZSBJUEEgaGFyZHdhcmUgYmxvY2sgaXMgdmVuZG9yLXNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoZSBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMuXG4zLiAgKipEb2N1bWVudGF0aW9uIFRvdWNoOioqIFRoZSBlZGl0cyB0byBgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sYCBjb25jZXJuIG9ubHkgZG9jdW1lbnRhdGlvbiwgd2hpY2ggaXMgYSBuZWdhdGl2ZSBjcml0ZXJpb24uXG5cblRoZXJlZm9yZSwgdGhlIGNvZGUncyByZWFjaGFiaWxpdHkgaXMgdGhlIGRlY2lkaW5nIGZhY3RvciwgYmFzZWQgb24gdGhlIGZ1enppbmcgY3JpdGVyaWEuIFRoZSBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4gR2l2ZW4gdGhpcywgaXQgTVVTVCBOT1QgYmUgZnV6emVkLlxuXG5NeSByZWFzb25pbmcsIGluIHByZXBhcmF0aW9uIGZvciB0aGUgYHNldC1yZXN1bHRzYCBjYWxsLCBpcyBjbGVhcjpcblxuMS4gIFRoZSBhcmNoaXRlY3R1cmUgdGFyZ2V0IGlzIGFtZDY0LCB3aGlsZSB0aGUgbW9kaWZpZWQgY29kZSBwZXJ0YWlucyB0byB0aGUgUXVhbGNvbW0gSVBBIHY1LjEgaGFyZHdhcmUgb24gQVJNNjQgU004NDUwIFNvQ3MuIFRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBhcmUgYWxzbyBzcGVjaWZpYyB0byB0aGlzIHBsYXRmb3JtLlxuMi4gIFRoZSBRdWFsY29tbSBJUEEgaGFyZHdhcmUgaXMgcGh5c2ljYWwgU29DIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRodXMsIHRoZSBjb2RlIHBhdGggaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlxuXG5GaW5hbGx5LCBiZWNhdXNlIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAsICBgRm9jdXNTeW1ib2xzYCBhbmQgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBhbiBlbXB0eSBsaXN0IChgW11gKS4gTm93LCBJJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDU4NCwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NDMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjo0Ny4yOTUzMjQzOTRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzZXJpZXMgYWRkcyBEZXZpY2UgVHJlZSBiaW5kaW5ncywgRFRTIG5vZGVzLCBhbmQgZHJpdmVyIGNvbmZpZ3VyYXRpb24gdGFibGVzIGZvciB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSB2NS4xKSBvbiBTbmFwZHJhZ29uIFNNODQ1MCBTb0NzLiBUaGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIG9uIGFtZDY0IGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFNvQyBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6NDcuMjk1MzQ2NTI0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowfc5gd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-09 03:19:45 +0000 UTC FinishedAt: 2026-09-09 03:22:48 +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+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggc2VyaWVzIGFkZHMgRGV2aWNlIFRyZWUgYmluZGluZ3MsIERUUyBub2RlcywgYW5kIGRyaXZlciBjb25maWd1cmF0aW9uIHRhYmxlcyBmb3IgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEgdjUuMSkgb24gU25hcGRyYWdvbiBTTTg0NTAgU29Dcy4gVGhpcyBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBvbiBhbWQ2NCBhcyBpdCByZXF1aXJlcyBwaHlzaWNhbCBRdWFsY29tbSBTb0MgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYWE0N2RhYjA0OTAzNTI4NzUzNGNiMzRmOWE2OTY5Njc5NmQ1YWJiZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgU2VwIDkgMDM6MjI6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG5pbmRleCA2OGVjNzZmZTQ0NzM1Li5kYjkxYmZhYWY4MzMyIDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcbkBAIC01Myw2ICYjNDM7NTMsNyBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXG4mIzQzOyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxuICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbmluZGV4IGI4NzkzNDgyYjE4MTUuLjk1YjZmZDIyYTg0NjUgMTAwNjQ0XG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuQEAgLTI2MjUsNiAmIzQzOzI2MjUsNDcgQEAgYWRyZW5vX3NtbXU6IGlvbW11QDNkYTAwMDAge1xuIFx0XHRcdGRtYS1jb2hlcmVudDtcbiBcdFx0fTtcbiBcbiYjNDM7XHRcdGlwYTogaXBhQDNmNDAwMDAge1xuJiM0MztcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7cWNvbSxzbTg0NTAtaXBhXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMCAweDNmNDAwMDAgMCAweDEwMDAwXHUwMDNlLFxuJiM0MztcdFx0XHQgICAgICBcdTAwM2MwIDB4M2Y1MDAwMCAwIDB4NTAwMFx1MDAzZSxcbiYjNDM7XHRcdFx0ICAgICAgXHUwMDNjMCAweDNlMDQwMDAgMCAweGZjMDAwXHUwMDNlO1xuJiM0MztcdFx0XHRyZWctbmFtZXMgPSBcJiMzNDtpcGEtcmVnXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDtpcGEtc2hhcmVkXCYjMzQ7LFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDtnc2lcJiMzNDs7XG4mIzQzO1x0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMCAweDBcdTAwM2UsXG4mIzQzO1x0XHRcdFx0IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMiAweDBcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0XHRpbnRlcnJ1cHRzLWV4dGVuZGVkID0gXHUwMDNjXHUwMDI2aW50YyBHSUNfU1BJIDY1NCBJUlFfVFlQRV9FREdFX1JJU0lOR1x1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9pbiAwIElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlLFxuJiM0MztcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDEgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2U7XG4mIzQzO1x0XHRcdGludGVycnVwdC1uYW1lcyA9IFwmIzM0O2lwYVwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdCAgXCYjMzQ7Z3NpXCYjMzQ7LFxuJiM0MztcdFx0XHRcdFx0ICBcJiMzNDtpcGEtY2xvY2stcXVlcnlcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHQgIFwmIzM0O2lwYS1zZXR1cC1yZWFkeVwmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdGNsb2NrcyA9IFx1MDAzY1x1MDAyNnJwbWhjYyBSUE1IX0lQQV9DTEtcdTAwM2U7XG4mIzQzO1x0XHRcdGNsb2NrLW5hbWVzID0gXCYjMzQ7Y29yZVwmIzM0OztcbiYjNDM7XG4mIzQzO1x0XHRcdGludGVyY29ubmVjdHMgPSBcdTAwM2NcdTAwMjZhZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCBcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFx1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdFx1MDAzY1x1MDAyNmdlbV9ub2MgTUFTVEVSX0FQUFNTX1BST0MgMCBcdTAwMjZjb25maWdfbm9jIFNMQVZFX0lQQV9DRkcgMFx1MDAzZTtcbiYjNDM7XHRcdFx0aW50ZXJjb25uZWN0LW5hbWVzID0gXCYjMzQ7bWVtb3J5XCYjMzQ7LFxuJiM0MztcdFx0XHRcdFx0ICAgICBcJiMzNDtjb25maWdcJiMzNDs7XG4mIzQzO1xuJiM0MztcdFx0XHRxY29tLHFtcCA9IFx1MDAzY1x1MDAyNmFvc3NfcW1wXHUwMDNlO1xuJiM0MztcbiYjNDM7XHRcdFx0cWNvbSxzbWVtLXN0YXRlcyA9IFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMFx1MDAzZSxcbiYjNDM7XHRcdFx0XHRcdCAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMVx1MDAzZTtcbiYjNDM7XHRcdFx0cWNvbSxzbWVtLXN0YXRlLW5hbWVzID0gXCYjMzQ7aXBhLWNsb2NrLWVuYWJsZWQtdmFsaWRcJiMzNDssXG4mIzQzO1x0XHRcdFx0XHRcdFwmIzM0O2lwYS1jbG9jay1lbmFibGVkXCYjMzQ7O1xuJiM0MztcbiYjNDM7XHRcdFx0c3JhbSA9IFx1MDAzY1x1MDAyNmlwYV9tb2RlbV90YWJsZXNcdTAwM2U7XG4mIzQzO1xuJiM0MztcdFx0XHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0OztcbiYjNDM7XHRcdH07XG4mIzQzO1xuIFx0XHR1c2JfMV9oc3BoeTogcGh5QDg4ZTMwMDAge1xuIFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHNtODQ1MC11c2ItaHMtcGh5XCYjMzQ7LFxuIFx0XHRcdFx0ICAgICBcJiMzNDtxY29tLHVzYi1zbnBzLWhzLTdubS1waHlcJiMzNDs7XG5AQCAtNDk1NywyMSAmIzQzOzQ5OTgsMjUgQEAgY3RpQDEzOTAwMDAwIHtcbiBcdFx0XHRjbG9jay1uYW1lcyA9IFwmIzM0O2FwYl9wY2xrXCYjMzQ7O1xuIFx0XHR9O1xuIFxuLVx0XHRzcmFtQDE0NmFhMDAwIHtcbiYjNDM7XHRcdHNyYW1AMTQ2ODAwMDAge1xuIFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHNtODQ1MC1pbWVtXCYjMzQ7LCBcJiMzNDtzeXNjb25cJiMzNDssIFwmIzM0O3NpbXBsZS1tZmRcJiMzNDs7XG4tXHRcdFx0cmVnID0gXHUwMDNjMCAweDE0NmFhMDAwIDAgMHgxMDAwXHUwMDNlO1xuLVx0XHRcdHJhbmdlcyA9IFx1MDAzYzAgMCAweDE0NmFhMDAwIDB4MTAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0cmVnID0gXHUwMDNjMCAweDE0NjgwMDAwIDAgMHg0MDAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2ODAwMDAgMHg0MDAwMFx1MDAzZTtcbiBcbiBcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4gXHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFxuLVx0XHRcdG1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAxYyB7XG4tXHRcdFx0XHRyZWcgPSBcdTAwM2MweDFjIDB4NFx1MDAzZTtcbiYjNDM7XHRcdFx0aXBhX21vZGVtX3RhYmxlczogbW9kZW0tdGFibGVzQDI4MDAwIHtcbiYjNDM7XHRcdFx0XHRyZWcgPSBcdTAwM2MweDI4MDAwIDB4MjAwMFx1MDAzZTtcbiYjNDM7XHRcdFx0fTtcbiYjNDM7XG4mIzQzO1x0XHRcdG1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAyYTAxYyB7XG4mIzQzO1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyYTAxYyAweDRcdTAwM2U7XG4gXHRcdFx0fTtcbiBcbi1cdFx0XHRwaWwtcmVsb2NAOTRjIHtcbiYjNDM7XHRcdFx0cGlsLXJlbG9jQDJhOTRjIHtcbiBcdFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtxY29tLHBpbC1yZWxvYy1pbmZvXCYjMzQ7O1xuLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg5NGMgMHhjOFx1MDAzZTtcbiYjNDM7XHRcdFx0XHRyZWcgPSBcdTAwM2MweDJhOTRjIDB4YzhcdTAwM2U7XG4gXHRcdFx0fTtcbiBcdFx0fTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbmluZGV4IGUxNDhlYzNjMWExMDEuLmQ0OTk1YzJlOGNhMDIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuQEAgLTcsNyAmIzQzOzcsNyBAQCBJUEFfUkVHX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcbiAjIFNvbWUgSVBBIHZlcnNpb25zIGNhbiByZXVzZSBhbm90aGVyIHNldCBvZiBHU0kgcmVnaXN0ZXIgZGVmaW5pdGlvbnMuXG4gR1NJX1JFR19WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjAgNC41IDQuOSA0LjExIDUuMFxuIFxuLUlQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjIgNS41XG4mIzQzO0lQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxuIFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcdCYjNDM7PVx0aXBhLm9cbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XG5pbmRleCAwMDAwMDAwMDAwMDAwLi43ZDdiYzE5M2I3NzRjXG4tLS0gL2Rldi9udWxsXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcbkBAIC0wLDAgJiM0MzsxLDQ3NiBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MztcbiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDIzLTIwMjQgTGluYXJvIEx0ZC4gKi9cbiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDI2IE5hemFyIEtvbXBhbmV0cyBcdTAwM2N4bGllNzY2OUBnbWFpbC5jb21cdTAwM2UgKi9cbiYjNDM7LyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSBcdTAwM2Nlc3RldXd1QHByb3Rvbi5tZVx1MDAzZSAqL1xuJiM0MztcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L2xvZzIuaFx1MDAzZVxuJiM0MztcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX2RhdGEuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDsuLi9pcGFfZW5kcG9pbnQuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDsuLi9pcGFfbWVtLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7Li4vaXBhX3ZlcnNpb24uaFwmIzM0O1xuJiM0MztcbiYjNDM7LyoqIGVudW0gaXBhX3Jlc291cmNlX3R5cGUgLSBJUEEgcmVzb3VyY2UgdHlwZXMgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7ZW51bSBpcGFfcmVzb3VyY2VfdHlwZSB7XG4mIzQzO1x0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFNcdFx0PSAwLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0xJU1RTLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkYsXG4mIzQzO1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSUyxcbiYjNDM7XHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVMsXG4mIzQzO1xuJiM0MztcdC8qIERlc3RpbmF0aW9uIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcdFx0PSAwLFxuJiM0MztcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXG4mIzQzO1x0SVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFMsXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBSZXNvdXJjZSBncm91cHMgdXNlZCBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztlbnVtIGlwYV9yc3JjX2dyb3VwX2lkIHtcbiYjNDM7XHQvKiBTb3VyY2UgcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi9cbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfVUxcdFx0XHRcdD0gMCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfREwsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RNQSxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfUURTUyxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTEMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULFx0LyogTGFzdCBpbiBzZXQ7IG5vdCBhIHNvdXJjZSBncm91cCAqL1xuJiM0MztcbiYjNDM7XHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9VTFx0XHRcdFx0PSAwLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzIsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8zLFxuJiM0MztcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfVUMsXG4mIzQzO1x0SVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUCxcbiYjNDM7XHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXHQvKiBMYXN0OyBub3QgYSBkZXN0aW5hdGlvbiBncm91cCAqL1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogUVNCIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9xc2JfZGF0YSBpcGFfcXNiX2RhdGFbXSA9IHtcbiYjNDM7XHRbSVBBX1FTQl9NQVNURVJfRERSXSA9IHtcbiYjNDM7XHRcdC5tYXhfd3JpdGVzXHRcdD0gMCxcbiYjNDM7XHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbiYjNDM7XHRcdC5tYXhfcmVhZHNfYmVhdHNcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfUVNCX01BU1RFUl9QQ0lFXSA9IHtcbiYjNDM7XHRcdC5tYXhfd3JpdGVzXHRcdD0gMCxcbiYjNDM7XHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbiYjNDM7XHRcdC5tYXhfcmVhZHNfYmVhdHNcdD0gMCxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogRW5kcG9pbnQgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2dzaV9lbmRwb2ludF9kYXRhIGlwYV9nc2lfZW5kcG9pbnRfZGF0YVtdID0ge1xuJiM0MztcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAxMixcbiYjNDM7XHRcdC5lbmRwb2ludF9pZFx0PSAxNCxcbiYjNDM7XHRcdC50b3dhcmRfaXBhXHQ9IHRydWUsXG4mIzQzO1x0XHQuY2hhbm5lbCA9IHtcbiYjNDM7XHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC5ldmVudF9jb3VudFx0PSAyNTYsXG4mIzQzO1x0XHRcdC50bHZfY291bnRcdD0gMjAsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmVuZHBvaW50ID0ge1xuJiM0MztcdFx0XHQuY29uZmlnID0ge1xuJiM0MztcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXG4mIzQzO1x0XHRcdFx0LmRtYV9tb2RlXHQ9IHRydWUsXG4mIzQzO1x0XHRcdFx0LmRtYV9lbmRwb2ludFx0PSBJUEFfRU5EUE9JTlRfQVBfTEFOX1JYLFxuJiM0MztcdFx0XHRcdC50eCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5zZXFfdHlwZSA9IElQQV9TRVFfRE1BLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xuJiM0MztcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuJiM0MztcdFx0LmNoYW5uZWxfaWRcdD0gMTMsXG4mIzQzO1x0XHQuZW5kcG9pbnRfaWRcdD0gMTYsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSBmYWxzZSxcbiYjNDM7XHRcdC5jaGFubmVsID0ge1xuJiM0MztcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LmV2ZW50X2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmNvbmZpZyA9IHtcbiYjNDM7XHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuJiM0MztcdFx0XHRcdC5hZ2dyZWdhdGlvblx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5zdGF0dXNfZW5hYmxlXHQ9IHRydWUsXG4mIzQzO1x0XHRcdFx0LnJ4ID0ge1xuJiM0MztcdFx0XHRcdFx0LmJ1ZmZlcl9zaXplXHQ9IDgxOTIsXG4mIzQzO1x0XHRcdFx0XHQucGFkX2FsaWduXHQ9IGlsb2cyKHNpemVvZih1MzIpKSxcbiYjNDM7XHRcdFx0XHRcdC5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsXG4mIzQzO1x0XHRcdFx0fSxcbiYjNDM7XHRcdFx0fSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcbiYjNDM7XHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbiYjNDM7XHRcdC5jaGFubmVsX2lkXHQ9IDExLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDIsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuJiM0MztcdFx0LmNoYW5uZWwgPSB7XG4mIzQzO1x0XHRcdC50cmVfY291bnRcdD0gNTEyLFxuJiM0MztcdFx0XHQuZXZlbnRfY291bnRcdD0gNTEyLFxuJiM0MztcdFx0XHQudGx2X2NvdW50XHQ9IDI1LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4mIzQzO1x0XHRcdC5jb25maWcgPSB7XG4mIzQzO1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19VTCxcbiYjNDM7XHRcdFx0XHQuY2hlY2tzdW0gICAgICAgPSB0cnVlLFxuJiM0MztcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbiYjNDM7XHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC50eCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5zZXFfdHlwZSA9IElQQV9TRVFfMl9QQVNTX1NLSVBfTEFTVF9VQyxcbiYjNDM7XHRcdFx0XHRcdC5zdGF0dXNfZW5kcG9pbnQgPVxuJiM0MztcdFx0XHRcdFx0XHRJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlgsXG4mIzQzO1x0XHRcdFx0fSxcbiYjNDM7XHRcdFx0fSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1JYXSA9IHtcbiYjNDM7XHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbiYjNDM7XHRcdC5jaGFubmVsX2lkXHQ9IDEsXG4mIzQzO1x0XHQuZW5kcG9pbnRfaWRcdD0gMjMsXG4mIzQzO1x0XHQudG93YXJkX2lwYVx0PSBmYWxzZSxcbiYjNDM7XHRcdC5jaGFubmVsID0ge1xuJiM0MztcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LmV2ZW50X2NvdW50XHQ9IDI1NixcbiYjNDM7XHRcdFx0LnRsdl9jb3VudFx0PSA5LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmNvbmZpZyA9IHtcbiYjNDM7XHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuJiM0MztcdFx0XHRcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXG4mIzQzO1x0XHRcdFx0LnFtYXBcdFx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5hZ2dyZWdhdGlvblx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdC5yeCA9IHtcbiYjNDM7XHRcdFx0XHRcdC5idWZmZXJfc2l6ZVx0PSA4MTkyLFxuJiM0MztcdFx0XHRcdFx0LmFnZ3JfdGltZV9saW1pdCA9IDUwMCxcbiYjNDM7XHRcdFx0XHRcdC5hZ2dyX2Nsb3NlX2VvZlx0PSB0cnVlLFxuJiM0MztcdFx0XHRcdH0sXG4mIzQzO1x0XHRcdH0sXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfTU9ERU0sXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAwLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDEyLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfTU9ERU0sXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSA3LFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDIxLFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gZmFsc2UsXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XG4mIzQzO1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfTU9ERU0sXG4mIzQzO1x0XHQuY2hhbm5lbF9pZFx0PSAyLFxuJiM0MztcdFx0LmVuZHBvaW50X2lkXHQ9IDE1LFxuJiM0MztcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbiYjNDM7XHRcdC5lbmRwb2ludCA9IHtcbiYjNDM7XHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBTb3VyY2UgcmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9zcmNbXSA9IHtcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX1BLVF9DT05URVhUU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSA3LFx0Lm1heCA9IDEyLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDEsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0MztcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAyMSxcdC5tYXggPSAyMSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxMCxcdC5tYXggPSAxMCxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRl0gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAzMyxcdC5tYXggPSAzMyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAyMCxcdC5tYXggPSAyMCxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC8qIE1hcmtlZCBhcyB1bnVzZWQgZG93bnN0cmVhbSAqL1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfRE1BXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19RRFNTXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0ge1xuJiM0MztcdFx0XHQubWluID0gMSxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19BQ0tfRU5UUklFU10gPSB7XG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAzOCxcdC5tYXggPSAzOCxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAxNixcdC5tYXggPSAxNixcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIERlc3RpbmF0aW9uIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7XG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gNixcdC5tYXggPSA2LFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDUsXHQubWF4ID0gNSxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0ge1xuJiM0MztcdFx0XHQubWluID0gMzksXHQubWF4ID0gMzksXG4mIzQzO1x0XHR9LFxuJiM0MztcdH0sXG4mIzQzO1x0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbiYjNDM7XHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gMyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0fSxcbiYjNDM7XHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFNdID0ge1xuJiM0MztcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuJiM0MztcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbiYjNDM7XHRcdH0sXG4mIzQzO1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7XG4mIzQzO1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuJiM0MztcdFx0fSxcbiYjNDM7XHR9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogUmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7XG4mIzQzO1x0LnJzcmNfZ3JvdXBfZHN0X2NvdW50XHQ9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCxcbiYjNDM7XHQucnNyY19ncm91cF9zcmNfY291bnRcdD0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULFxuJiM0MztcdC5yZXNvdXJjZV9zcmNfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSxcbiYjNDM7XHQucmVzb3VyY2Vfc3JjXHRcdD0gaXBhX3Jlc291cmNlX3NyYyxcbiYjNDM7XHQucmVzb3VyY2VfZHN0X2NvdW50XHQ9IEFSUkFZX1NJWkUoaXBhX3Jlc291cmNlX2RzdCksXG4mIzQzO1x0LnJlc291cmNlX2RzdFx0XHQ9IGlwYV9yZXNvdXJjZV9kc3QsXG4mIzQzO307XG4mIzQzO1xuJiM0MzsvKiBJUEEtcmVzaWRlbnQgbWVtb3J5IHJlZ2lvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHtcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX0VWRU5UX1JJTkcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgwMDAwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDEwMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX1NIQVJFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDEwMDAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA4MCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVUNfSU5GTyxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDEwODAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDIwMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSX0hBU0hFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDEyODgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfRklMVEVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTMwOCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVJfSEFTSEVELFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTM4OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9GSUxURVIsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxNDA4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE0ODgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjRfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxNTI4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X1JPVVRFX0hBU0hFRCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE1YzgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgxNjY4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwOTgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX0hFQURFUixcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDE3MDgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDI0MCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfSEVBREVSLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MTk0OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMWUwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDFiNDAsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MGIyMCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMixcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fQVBfUFJPQ19DVFgsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyNjYwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAyMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1FVT1RBX01PREVNLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4Mjg2OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwMDYwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCxcbiYjNDM7XHRcdC5vZmZzZXRcdFx0PSAweDI4YzgsXG4mIzQzO1x0XHQuc2l6ZVx0XHQ9IDB4MDA0OCxcbiYjNDM7XHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbiYjNDM7XHR9LFxuJiM0MztcdHtcbiYjNDM7XHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfVEVUSEVSSU5HLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4MjkxMCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwM2MwLFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19GSUxURVJfUk9VVEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDBiYTAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX0RST1AsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwMjAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNLFxuJiM0MztcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbiYjNDM7XHRcdC5zaXplXHRcdD0gMHgwZDQ4LFxuJiM0MztcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuJiM0MztcdH0sXG4mIzQzO1x0e1xuJiM0MztcdFx0LmlkXHRcdD0gSVBBX01FTV9OQVRfVEFCTEUsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDA5MDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX1BETl9DT05GSUcsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAxMDAsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4mIzQzO1x0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuaWRcdFx0PSBJUEFfTUVNX01PREVNX1NUQVRTX0RST1AsXG4mIzQzO1x0XHQub2Zmc2V0XHRcdD0gMHg0ZmU4LFxuJiM0MztcdFx0LnNpemVcdFx0PSAweDAwMTgsXG4mIzQzO1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtX2RhdGEgaXBhX21lbV9kYXRhID0ge1xuJiM0MztcdC5sb2NhbF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9tZW1fbG9jYWxfZGF0YSksXG4mIzQzO1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuJiM0MztcdC5pbWVtX2FkZHJcdD0gMHgxNDZhODAwMCxcbiYjNDM7XHQuaW1lbV9zaXplXHQ9IDB4MDAwMDIwMDAsXG4mIzQzO1x0LnNtZW1fc2l6ZVx0PSAweDAwMDA5MDAwLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7LyogSW50ZXJjb25uZWN0IHJhdGVzIGFyZSBpbiAxMDAwIGJ5dGUvc2Vjb25kIHVuaXRzICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0ge1xuJiM0MztcdHtcbiYjNDM7XHRcdC5uYW1lXHRcdFx0PSBcJiMzNDttZW1vcnlcJiMzNDssXG4mIzQzO1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSAxOTAwMDAwLFx0LyogMS45IEdCcHMgKi9cbiYjNDM7XHRcdC5hdmVyYWdlX2JhbmR3aWR0aFx0PSA1OTAwMDAsXHQvKiA1OTAgTUJwcyAqL1xuJiM0MztcdH0sXG4mIzQzO1x0LyogQXZlcmFnZSByYXRlIGlzIHVudXNlZCBmb3IgdGhlIG5leHQgaW50ZXJjb25uZWN0ICovXG4mIzQzO1x0e1xuJiM0MztcdFx0Lm5hbWVcdFx0XHQ9IFwmIzM0O2NvbmZpZ1wmIzM0OyxcbiYjNDM7XHRcdC5wZWFrX2JhbmR3aWR0aFx0XHQ9IDc2ODAwLFx0LyogNzYuOCBNQnBzICovXG4mIzQzO1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gMCxcdFx0LyogdW51c2VkICovXG4mIzQzO1x0fSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XG4mIzQzO1x0LmNvcmVfY2xvY2tfcmF0ZVx0PSAxMjAgKiAxMDAwICogMTAwMCxcdC8qIEh6ICovXG4mIzQzO1x0LmludGVyY29ubmVjdF9jb3VudFx0PSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksXG4mIzQzO1x0LmludGVyY29ubmVjdF9kYXRhXHQ9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi9cbiYjNDM7Y29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzEgPSB7XG4mIzQzO1x0LnZlcnNpb25cdFx0PSBJUEFfVkVSU0lPTl81XzEsXG4mIzQzO1x0LnFzYl9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSxcbiYjNDM7XHQucXNiX2RhdGFcdFx0PSBpcGFfcXNiX2RhdGEsXG4mIzQzO1x0Lm1vZGVtX3JvdXRlX2NvdW50XHQ9IDExLFxuJiM0MztcdC5lbmRwb2ludF9jb3VudFx0XHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcbiYjNDM7XHQuZW5kcG9pbnRfZGF0YVx0XHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcbiYjNDM7XHQucmVzb3VyY2VfZGF0YVx0XHQ9IFx1MDAyNmlwYV9yZXNvdXJjZV9kYXRhLFxuJiM0MztcdC5tZW1fZGF0YVx0XHQ9IFx1MDAyNmlwYV9tZW1fZGF0YSxcbiYjNDM7XHQucG93ZXJfZGF0YVx0XHQ9IFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxuJiM0Mzt9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5pbmRleCBlMTNjZjgzNWEwMTNjLi5hNTcwNzJiYTRiZWY2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xuQEAgLTExMCw2ICYjNDM7MTEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICpnc2lfcmVncyhzdHJ1Y3QgZ3NpICpnc2kpXG4gXHRcdHJldHVybiBcdTAwMjZnc2lfcmVnc192NF8xMTtcbiBcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxuJiM0MztcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y1XzA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuaW5kZXggM2ViOWRjMmNlMzM5OC4uZmU2ZjdkNWJmZTg4YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuQEAgLTI1Myw2ICYjNDM7MjUzLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF83O1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfOTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0XzExO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMDtcbiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xO1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMjtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzU7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuaW5kZXggMTRhYzJkMmZhZjdjMi4uODRiZWM0NjFkMjJjZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuQEAgLTY3Miw2ICYjNDM7NjcyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwYV9tYXRjaFtdID0ge1xuIFx0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNkeDY1LWlwYVwmIzM0OyxcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8wLFxuIFx0fSxcbiYjNDM7XHR7XG4mIzQzO1x0XHQuY29tcGF0aWJsZVx0PSBcJiMzNDtxY29tLHNtODQ1MC1pcGFcJiMzNDssXG4mIzQzO1x0XHQuZGF0YVx0XHQ9IFx1MDAyNmlwYV9kYXRhX3Y1XzEsXG4mIzQzO1x0fSxcbiBcdHtcbiBcdFx0LmNvbXBhdGlibGVcdD0gXCYjMzQ7cWNvbSxtaWxvcy1pcGFcJiMzNDssXG4gXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMixcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuaW5kZXggMzBiZDY5ZjRjMTQ3Yy4uNWYyMmNhNjI5NWIxNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcbkBAIC0xMjUsNiAmIzQzOzEyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqaXBhX3JlZ3MoZW51bSBpcGFfdmVyc2lvbiB2ZXJzaW9uKVxuIFx0Y2FzZSBJUEFfVkVSU0lPTl80XzExOlxuIFx0XHRyZXR1cm4gXHUwMDI2aXBhX3JlZ3NfdjRfMTE7XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMDpcbiYjNDM7XHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxuIFx0XHRyZXR1cm4gXHUwMDI2aXBhX3JlZ3NfdjVfMDtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV81OlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGFhNDdkYWIwNDkwMzUyODc1MzRjYjM0ZjlhNjk2OTY3OTZkNWFiYmYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIFNlcCA5IDAzOjIyOjIxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sCmluZGV4IDY4ZWM3NmZlNDQ3MzUuLmRiOTFiZmFhZjgzMzIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbAomIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWwKQEAgLTUzLDYgJiM0Mzs1Myw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYQogICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhCiAgICAgICAgICAgLSBxY29tLHNtODM1MC1pcGEKJiM0MzsgICAgICAgICAgLSBxY29tLHNtODQ1MC1pcGEKICAgICAgICAgICAtIHFjb20sc204NTUwLWlwYQogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGVudW06CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2kKaW5kZXggYjg3OTM0ODJiMTgxNS4uOTViNmZkMjJhODQ2NSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpCiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaQpAQCAtMjYyNSw2ICYjNDM7MjYyNSw0NyBAQCBhZHJlbm9fc21tdTogaW9tbXVAM2RhMDAwMCB7CiAJCQlkbWEtY29oZXJlbnQ7CiAJCX07CiAKJiM0MzsJCWlwYTogaXBhQDNmNDAwMDAgewomIzQzOwkJCWNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7OwomIzQzOwomIzQzOwkJCXJlZyA9ICZsdDswIDB4M2Y0MDAwMCAwIDB4MTAwMDAmZ3Q7LAomIzQzOwkJCSAgICAgICZsdDswIDB4M2Y1MDAwMCAwIDB4NTAwMCZndDssCiYjNDM7CQkJICAgICAgJmx0OzAgMHgzZTA0MDAwIDAgMHhmYzAwMCZndDs7CiYjNDM7CQkJcmVnLW5hbWVzID0gJiMzNDtpcGEtcmVnJiMzNDssCiYjNDM7CQkJCSAgICAmIzM0O2lwYS1zaGFyZWQmIzM0OywKJiM0MzsJCQkJICAgICYjMzQ7Z3NpJiMzNDs7CiYjNDM7CQkJaW9tbXVzID0gJmx0OyZhbXA7YXBwc19zbW11IDB4NWMwIDB4MCZndDssCiYjNDM7CQkJCSAmbHQ7JmFtcDthcHBzX3NtbXUgMHg1YzIgMHgwJmd0OzsKJiM0MzsKJiM0MzsJCQlpbnRlcnJ1cHRzLWV4dGVuZGVkID0gJmx0OyZhbXA7aW50YyBHSUNfU1BJIDY1NCBJUlFfVFlQRV9FREdFX1JJU0lORyZndDssCiYjNDM7CQkJCQkgICAgICAmbHQ7JmFtcDtpbnRjIEdJQ19TUEkgNDMyIElSUV9UWVBFX0xFVkVMX0hJR0gmZ3Q7LAomIzQzOwkJCQkJICAgICAgJmx0OyZhbXA7aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkcmZ3Q7LAomIzQzOwkJCQkJICAgICAgJmx0OyZhbXA7aXBhX3NtcDJwX2luIDEgSVJRX1RZUEVfRURHRV9SSVNJTkcmZ3Q7OwomIzQzOwkJCWludGVycnVwdC1uYW1lcyA9ICYjMzQ7aXBhJiMzNDssCiYjNDM7CQkJCQkgICYjMzQ7Z3NpJiMzNDssCiYjNDM7CQkJCQkgICYjMzQ7aXBhLWNsb2NrLXF1ZXJ5JiMzNDssCiYjNDM7CQkJCQkgICYjMzQ7aXBhLXNldHVwLXJlYWR5JiMzNDs7CiYjNDM7CiYjNDM7CQkJY2xvY2tzID0gJmx0OyZhbXA7cnBtaGNjIFJQTUhfSVBBX0NMSyZndDs7CiYjNDM7CQkJY2xvY2stbmFtZXMgPSAmIzM0O2NvcmUmIzM0OzsKJiM0MzsKJiM0MzsJCQlpbnRlcmNvbm5lY3RzID0gJmx0OyZhbXA7YWdncmUyX25vYyBNQVNURVJfSVBBIDAgJmFtcDttY192aXJ0IFNMQVZFX0VCSTEgMCZndDssCiYjNDM7CQkJCQkmbHQ7JmFtcDtnZW1fbm9jIE1BU1RFUl9BUFBTU19QUk9DIDAgJmFtcDtjb25maWdfbm9jIFNMQVZFX0lQQV9DRkcgMCZndDs7CiYjNDM7CQkJaW50ZXJjb25uZWN0LW5hbWVzID0gJiMzNDttZW1vcnkmIzM0OywKJiM0MzsJCQkJCSAgICAgJiMzNDtjb25maWcmIzM0OzsKJiM0MzsKJiM0MzsJCQlxY29tLHFtcCA9ICZsdDsmYW1wO2Fvc3NfcW1wJmd0OzsKJiM0MzsKJiM0MzsJCQlxY29tLHNtZW0tc3RhdGVzID0gJmx0OyZhbXA7aXBhX3NtcDJwX291dCAwJmd0OywKJiM0MzsJCQkJCSAgICZsdDsmYW1wO2lwYV9zbXAycF9vdXQgMSZndDs7CiYjNDM7CQkJcWNvbSxzbWVtLXN0YXRlLW5hbWVzID0gJiMzNDtpcGEtY2xvY2stZW5hYmxlZC12YWxpZCYjMzQ7LAomIzQzOwkJCQkJCSYjMzQ7aXBhLWNsb2NrLWVuYWJsZWQmIzM0OzsKJiM0MzsKJiM0MzsJCQlzcmFtID0gJmx0OyZhbXA7aXBhX21vZGVtX3RhYmxlcyZndDs7CiYjNDM7CiYjNDM7CQkJc3RhdHVzID0gJiMzNDtkaXNhYmxlZCYjMzQ7OwomIzQzOwkJfTsKJiM0MzsKIAkJdXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLXVzYi1ocy1waHkmIzM0OywKIAkJCQkgICAgICYjMzQ7cWNvbSx1c2Itc25wcy1ocy03bm0tcGh5JiMzNDs7CkBAIC00OTU3LDIxICYjNDM7NDk5OCwyNSBAQCBjdGlAMTM5MDAwMDAgewogCQkJY2xvY2stbmFtZXMgPSAmIzM0O2FwYl9wY2xrJiMzNDs7CiAJCX07CiAKLQkJc3JhbUAxNDZhYTAwMCB7CiYjNDM7CQlzcmFtQDE0NjgwMDAwIHsKIAkJCWNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLWltZW0mIzM0OywgJiMzNDtzeXNjb24mIzM0OywgJiMzNDtzaW1wbGUtbWZkJiMzNDs7Ci0JCQlyZWcgPSAmbHQ7MCAweDE0NmFhMDAwIDAgMHgxMDAwJmd0OzsKLQkJCXJhbmdlcyA9ICZsdDswIDAgMHgxNDZhYTAwMCAweDEwMDAmZ3Q7OwomIzQzOwkJCXJlZyA9ICZsdDswIDB4MTQ2ODAwMDAgMCAweDQwMDAwJmd0OzsKJiM0MzsJCQlyYW5nZXMgPSAmbHQ7MCAwIDB4MTQ2ODAwMDAgMHg0MDAwMCZndDs7CiAKIAkJCSNhZGRyZXNzLWNlbGxzID0gJmx0OzEmZ3Q7OwogCQkJI3NpemUtY2VsbHMgPSAmbHQ7MSZndDs7CiAKLQkJCW1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAxYyB7Ci0JCQkJcmVnID0gJmx0OzB4MWMgMHg0Jmd0OzsKJiM0MzsJCQlpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMjgwMDAgewomIzQzOwkJCQlyZWcgPSAmbHQ7MHgyODAwMCAweDIwMDAmZ3Q7OwomIzQzOwkJCX07CiYjNDM7CiYjNDM7CQkJbWluaWR1bXBfY29uZmlnOiBtaW5pZHVtcC1zcmFtQDJhMDFjIHsKJiM0MzsJCQkJcmVnID0gJmx0OzB4MmEwMWMgMHg0Jmd0OzsKIAkJCX07CiAKLQkJCXBpbC1yZWxvY0A5NGMgewomIzQzOwkJCXBpbC1yZWxvY0AyYTk0YyB7CiAJCQkJY29tcGF0aWJsZSA9ICYjMzQ7cWNvbSxwaWwtcmVsb2MtaW5mbyYjMzQ7OwotCQkJCXJlZyA9ICZsdDsweDk0YyAweGM4Jmd0OzsKJiM0MzsJCQkJcmVnID0gJmx0OzB4MmE5NGMgMHhjOCZndDs7CiAJCQl9OwogCQl9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGUKaW5kZXggZTE0OGVjM2MxYTEwMS4uZDQ5OTVjMmU4Y2EwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZQpAQCAtNyw3ICYjNDM7Nyw3IEBAIElQQV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjUKICMgU29tZSBJUEEgdmVyc2lvbnMgY2FuIHJldXNlIGFub3RoZXIgc2V0IG9mIEdTSSByZWdpc3RlciBkZWZpbml0aW9ucy4KIEdTSV9SRUdfVkVSU0lPTlMJOj0JMy4xIDMuNS4xIDQuMCA0LjUgNC45IDQuMTEgNS4wCiAKLUlQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4yIDUuNQomIzQzO0lQQV9EQVRBX1ZFUlNJT05TCTo9CTMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjUKIAogb2JqLSQoQ09ORklHX1FDT01fSVBBKQkmIzQzOz0JaXBhLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAuLjdkN2JjMTkzYjc3NGMKLS0tIC9kZXYvbnVsbAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMKQEAgLTAsMCAmIzQzOzEsNDc2IEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKJiM0MzsKJiM0MzsvKiBDb3B5cmlnaHQgKEMpIDIwMjMtMjAyNCBMaW5hcm8gTHRkLiAqLwomIzQzOy8qIENvcHlyaWdodCAoQykgMjAyNiBOYXphciBLb21wYW5ldHMgJmx0O3hsaWU3NjY5QGdtYWlsLmNvbSZndDsgKi8KJiM0MzsvKiBDb3B5cmlnaHQgKEMpIDIwMjYgRXN0ZWJhbiBVcnJ1dGlhICZsdDtlc3RldXd1QHByb3Rvbi5tZSZndDsgKi8KJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvYXJyYXlfc2l6ZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9sb2cyLmgmZ3Q7CiYjNDM7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfZGF0YS5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0Oy4uL2lwYV9lbmRwb2ludC5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0Oy4uL2lwYV9tZW0uaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDsuLi9pcGFfdmVyc2lvbi5oJiMzNDsKJiM0MzsKJiM0MzsvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO2VudW0gaXBhX3Jlc291cmNlX3R5cGUgewomIzQzOwkvKiBTb3VyY2UgcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19QS1RfQ09OVEVYVFMJCT0gMCwKJiM0MzsJSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFMsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkYsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlMsCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX1NSQ19BQ0tfRU5UUklFUywKJiM0MzsKJiM0MzsJLyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovCiYjNDM7CUlQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlMJCT0gMCwKJiM0MzsJSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSUywKJiM0MzsJSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFMsCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBSZXNvdXJjZSBncm91cHMgdXNlZCBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO2VudW0gaXBhX3JzcmNfZ3JvdXBfaWQgewomIzQzOwkvKiBTb3VyY2UgcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi8KJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VMCQkJCT0gMCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX0RMLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfRE1BLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfUURTUywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQywKJiM0MzsJSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULAkvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovCiYjNDM7CiYjNDM7CS8qIERlc3RpbmF0aW9uIHJlc291cmNlIGdyb3VwIGlkZW50aWZpZXJzICovCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VTAkJCQk9IDAsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9ETCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsCiYjNDM7CUlQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCwKJiM0MzsJSVBBX1JTUkNfR1JPVVBfRFNUX1VDLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLAomIzQzOwlJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsCS8qIExhc3Q7IG5vdCBhIGRlc3RpbmF0aW9uIGdyb3VwICovCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBRU0IgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7CiYjNDM7CVtJUEFfUVNCX01BU1RFUl9ERFJdID0gewomIzQzOwkJLm1heF93cml0ZXMJCT0gMCwKJiM0MzsJCS5tYXhfcmVhZHMJCT0gMCwJLyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi8KJiM0MzsJCS5tYXhfcmVhZHNfYmVhdHMJPSAwLAomIzQzOwl9LAomIzQzOwlbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7CiYjNDM7CQkubWF4X3dyaXRlcwkJPSAwLAomIzQzOwkJLm1heF9yZWFkcwkJPSAwLAkvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqLwomIzQzOwkJLm1heF9yZWFkc19iZWF0cwk9IDAsCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSBpcGFfZ3NpX2VuZHBvaW50X2RhdGFbXSA9IHsKJiM0MzsJW0lQQV9FTkRQT0lOVF9BUF9DT01NQU5EX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfQVAsCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDEyLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMTQsCiYjNDM7CQkudG93YXJkX2lwYQk9IHRydWUsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gMjU2LAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDI1NiwKJiM0MzsJCQkudGx2X2NvdW50CT0gMjAsCiYjNDM7CQl9LAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5jb25maWcgPSB7CiYjNDM7CQkJCS5yZXNvdXJjZV9ncm91cAk9IElQQV9SU1JDX0dST1VQX1NSQ19VTCwKJiM0MzsJCQkJLmRtYV9tb2RlCT0gdHJ1ZSwKJiM0MzsJCQkJLmRtYV9lbmRwb2ludAk9IElQQV9FTkRQT0lOVF9BUF9MQU5fUlgsCiYjNDM7CQkJCS50eCA9IHsKJiM0MzsJCQkJCS5zZXFfdHlwZSA9IElQQV9TRVFfRE1BLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX0FQX0xBTl9SWF0gPSB7CiYjNDM7CQkuZWVfaWQJCT0gR1NJX0VFX0FQLAomIzQzOwkJLmNoYW5uZWxfaWQJPSAxMywKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDE2LAomIzQzOwkJLnRvd2FyZF9pcGEJPSBmYWxzZSwKJiM0MzsJCS5jaGFubmVsID0gewomIzQzOwkJCS50cmVfY291bnQJPSAyNTYsCiYjNDM7CQkJLmV2ZW50X2NvdW50CT0gMjU2LAomIzQzOwkJCS50bHZfY291bnQJPSA5LAomIzQzOwkJfSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuY29uZmlnID0gewomIzQzOwkJCQkucmVzb3VyY2VfZ3JvdXAJPSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsCiYjNDM7CQkJCS5hZ2dyZWdhdGlvbgk9IHRydWUsCiYjNDM7CQkJCS5zdGF0dXNfZW5hYmxlCT0gdHJ1ZSwKJiM0MzsJCQkJLnJ4ID0gewomIzQzOwkJCQkJLmJ1ZmZlcl9zaXplCT0gODE5MiwKJiM0MzsJCQkJCS5wYWRfYWxpZ24JPSBpbG9nMihzaXplb2YodTMyKSksCiYjNDM7CQkJCQkuYWdncl90aW1lX2xpbWl0ID0gNTAwLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfQVAsCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDExLAomIzQzOwkJLmVuZHBvaW50X2lkCT0gMiwKJiM0MzsJCS50b3dhcmRfaXBhCT0gdHJ1ZSwKJiM0MzsJCS5jaGFubmVsID0gewomIzQzOwkJCS50cmVfY291bnQJPSA1MTIsCiYjNDM7CQkJLmV2ZW50X2NvdW50CT0gNTEyLAomIzQzOwkJCS50bHZfY291bnQJPSAyNSwKJiM0MzsJCX0sCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmZpbHRlcl9zdXBwb3J0CT0gdHJ1ZSwKJiM0MzsJCQkuY29uZmlnID0gewomIzQzOwkJCQkucmVzb3VyY2VfZ3JvdXAJPSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsCiYjNDM7CQkJCS5jaGVja3N1bSAgICAgICA9IHRydWUsCiYjNDM7CQkJCS5xbWFwCQk9IHRydWUsCiYjNDM7CQkJCS5zdGF0dXNfZW5hYmxlCT0gdHJ1ZSwKJiM0MzsJCQkJLnR4ID0gewomIzQzOwkJCQkJLnNlcV90eXBlID0gSVBBX1NFUV8yX1BBU1NfU0tJUF9MQVNUX1VDLAomIzQzOwkJCQkJLnN0YXR1c19lbmRwb2ludCA9CiYjNDM7CQkJCQkJSVBBX0VORFBPSU5UX01PREVNX0FQX1JYLAomIzQzOwkJCQl9LAomIzQzOwkJCX0sCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX0FQX01PREVNX1JYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfQVAsCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDEsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAyMywKJiM0MzsJCS50b3dhcmRfaXBhCT0gZmFsc2UsCiYjNDM7CQkuY2hhbm5lbCA9IHsKJiM0MzsJCQkudHJlX2NvdW50CT0gMjU2LAomIzQzOwkJCS5ldmVudF9jb3VudAk9IDI1NiwKJiM0MzsJCQkudGx2X2NvdW50CT0gOSwKJiM0MzsJCX0sCiYjNDM7CQkuZW5kcG9pbnQgPSB7CiYjNDM7CQkJLmNvbmZpZyA9IHsKJiM0MzsJCQkJLnJlc291cmNlX2dyb3VwCT0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLAomIzQzOwkJCQkuY2hlY2tzdW0gICAgICAgPSB0cnVlLAomIzQzOwkJCQkucW1hcAkJPSB0cnVlLAomIzQzOwkJCQkuYWdncmVnYXRpb24JPSB0cnVlLAomIzQzOwkJCQkucnggPSB7CiYjNDM7CQkJCQkuYnVmZmVyX3NpemUJPSA4MTkyLAomIzQzOwkJCQkJLmFnZ3JfdGltZV9saW1pdCA9IDUwMCwKJiM0MzsJCQkJCS5hZ2dyX2Nsb3NlX2VvZgk9IHRydWUsCiYjNDM7CQkJCX0sCiYjNDM7CQkJfSwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0gewomIzQzOwkJLmVlX2lkCQk9IEdTSV9FRV9NT0RFTSwKJiM0MzsJCS5jaGFubmVsX2lkCT0gMCwKJiM0MzsJCS5lbmRwb2ludF9pZAk9IDEyLAomIzQzOwkJLnRvd2FyZF9pcGEJPSB0cnVlLAomIzQzOwkJLmVuZHBvaW50ID0gewomIzQzOwkJCS5maWx0ZXJfc3VwcG9ydAk9IHRydWUsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX0VORFBPSU5UX01PREVNX0FQX1JYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfTU9ERU0sCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDcsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAyMSwKJiM0MzsJCS50b3dhcmRfaXBhCT0gZmFsc2UsCiYjNDM7CX0sCiYjNDM7CVtJUEFfRU5EUE9JTlRfTU9ERU1fRExfTkxPX1RYXSA9IHsKJiM0MzsJCS5lZV9pZAkJPSBHU0lfRUVfTU9ERU0sCiYjNDM7CQkuY2hhbm5lbF9pZAk9IDIsCiYjNDM7CQkuZW5kcG9pbnRfaWQJPSAxNSwKJiM0MzsJCS50b3dhcmRfaXBhCT0gdHJ1ZSwKJiM0MzsJCS5lbmRwb2ludCA9IHsKJiM0MzsJCQkuZmlsdGVyX3N1cHBvcnQJPSB0cnVlLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIFNvdXJjZSByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7CiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHsKJiM0MzsJCQkubWluID0gNywJLm1heCA9IDEyLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMSwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAyMSwJLm1heCA9IDIxLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMTAsCS5tYXggPSAxMCwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9CVUZGXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMzMsCS5tYXggPSAzMywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDIwLAkubWF4ID0gMjAsCiYjNDM7CQl9LAomIzQzOwl9LAomIzQzOwlbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSU10gPSB7CiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CQkvKiBNYXJrZWQgYXMgdW51c2VkIGRvd25zdHJlYW0gKi8KJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX0RNQV0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CQkvKiBNYXJrZWQgYXMgdW51c2VkIGRvd25zdHJlYW0gKi8KJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1FEU1NdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVVJMTENdID0gewomIzQzOwkJCS5taW4gPSAxLAkubWF4ID0gNjMsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVV9SWF9RQ10gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSA2MywKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0gewomIzQzOwkJCS5taW4gPSAzOCwJLm1heCA9IDM4LAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHsKJiM0MzsJCQkubWluID0gMTYsCS5tYXggPSAxNiwKJiM0MzsJCX0sCiYjNDM7CX0sCiYjNDM7fTsKJiM0MzsKJiM0MzsvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2VfZHN0W10gPSB7CiYjNDM7CVtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gNiwJLm1heCA9IDYsCiYjNDM7CQl9LAomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0gewomIzQzOwkJCS5taW4gPSA1LAkubWF4ID0gNSwKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0gewomIzQzOwkJCS5taW4gPSAzOSwJLm1heCA9IDM5LAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlNdID0gewomIzQzOwkJLmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0gewomIzQzOwkJCS5taW4gPSAwLAkubWF4ID0gMywKJiM0MzsJCX0sCiYjNDM7CQkubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7CiYjNDM7CQkJLm1pbiA9IDAsCS5tYXggPSAzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0MzsJW0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTXSA9IHsKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJCS5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHsKJiM0MzsJCQkubWluID0gMCwJLm1heCA9IDYzLAomIzQzOwkJfSwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIFJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7CiYjNDM7CS5yc3JjX2dyb3VwX2RzdF9jb3VudAk9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCwKJiM0MzsJLnJzcmNfZ3JvdXBfc3JjX2NvdW50CT0gSVBBX1JTUkNfR1JPVVBfU1JDX0NPVU5ULAomIzQzOwkucmVzb3VyY2Vfc3JjX2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSwKJiM0MzsJLnJlc291cmNlX3NyYwkJPSBpcGFfcmVzb3VyY2Vfc3JjLAomIzQzOwkucmVzb3VyY2VfZHN0X2NvdW50CT0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSwKJiM0MzsJLnJlc291cmNlX2RzdAkJPSBpcGFfcmVzb3VyY2VfZHN0LAomIzQzO307CiYjNDM7CiYjNDM7LyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHsKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVUNfRVZFTlRfUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgwMDAwLAomIzQzOwkJLnNpemUJCT0gMHgxMDAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX1NIQVJFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMDAwLAomIzQzOwkJLnNpemUJCT0gMHgwMDgwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1VDX0lORk8sCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTA4MCwKJiM0MzsJCS5zaXplCQk9IDB4MDIwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9WNF9GSUxURVJfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDEyODgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjRfRklMVEVSLAomIzQzOwkJLm9mZnNldAkJPSAweDEzMDgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwNzgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxMzg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y2X0ZJTFRFUiwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDA4LAomIzQzOwkJLnNpemUJCT0gMHgwMDc4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxNDg4LAomIzQzOwkJLnNpemUJCT0gMHgwMDk4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1Y0X1JPVVRFLAomIzQzOwkJLm9mZnNldAkJPSAweDE1MjgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEVfSEFTSEVELAomIzQzOwkJLm9mZnNldAkJPSAweDE1YzgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwOTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMiwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fVjZfUk9VVEUsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTY2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA5OCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTcwOCwKJiM0MzsJCS5zaXplCQk9IDB4MDI0MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9BUF9IRUFERVIsCiYjNDM7CQkub2Zmc2V0CQk9IDB4MTk0OCwKJiM0MzsJCS5zaXplCQk9IDB4MDFlMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgxYjQwLAomIzQzOwkJLnNpemUJCT0gMHgwYjIwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX0FQX1BST0NfQ1RYLAomIzQzOwkJLm9mZnNldAkJPSAweDI2NjAsCiYjNDM7CQkuc2l6ZQkJPSAweDAyMDAsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMCwKJiM0MzsJfSwKJiM0MzsJewomIzQzOwkJLmlkCQk9IElQQV9NRU1fU1RBVFNfUVVPVEFfTU9ERU0sCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mjg2OCwKJiM0MzsJCS5zaXplCQk9IDB4MDA2MCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOGM4LAomIzQzOwkJLnNpemUJCT0gMHgwMDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORywKJiM0MzsJCS5vZmZzZXQJCT0gMHgyOTEwLAomIzQzOwkJLnNpemUJCT0gMHgwM2MwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0ZJTFRFUl9ST1VURSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgyY2QwLAomIzQzOwkJLnNpemUJCT0gMHgwYmEwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1NUQVRTX0RST1AsCiYjNDM7CQkub2Zmc2V0CQk9IDB4Mzg3MCwKJiM0MzsJCS5zaXplCQk9IDB4MDAyMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAwLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTSwKJiM0MzsJCS5vZmZzZXQJCT0gMHgzODk4LAomIzQzOwkJLnNpemUJCT0gMHgwZDQ4LAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDIsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX05BVF9UQUJMRSwKJiM0MzsJCS5vZmZzZXQJCT0gMHg0NWUwLAomIzQzOwkJLnNpemUJCT0gMHgwOTAwLAomIzQzOwkJLmNhbmFyeV9jb3VudAk9IDAsCiYjNDM7CX0sCiYjNDM7CXsKJiM0MzsJCS5pZAkJPSBJUEFfTUVNX1BETl9DT05GSUcsCiYjNDM7CQkub2Zmc2V0CQk9IDB4NGVlOCwKJiM0MzsJCS5zaXplCQk9IDB4MDEwMCwKJiM0MzsJCS5jYW5hcnlfY291bnQJPSAyLAomIzQzOwl9LAomIzQzOwl7CiYjNDM7CQkuaWQJCT0gSVBBX01FTV9NT0RFTV9TVEFUU19EUk9QLAomIzQzOwkJLm9mZnNldAkJPSAweDRmZTgsCiYjNDM7CQkuc2l6ZQkJPSAweDAwMTgsCiYjNDM7CQkuY2FuYXJ5X2NvdW50CT0gMCwKJiM0MzsJfSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7CiYjNDM7CS5sb2NhbF9jb3VudAk9IEFSUkFZX1NJWkUoaXBhX21lbV9sb2NhbF9kYXRhKSwKJiM0MzsJLmxvY2FsCQk9IGlwYV9tZW1fbG9jYWxfZGF0YSwKJiM0MzsJLmltZW1fYWRkcgk9IDB4MTQ2YTgwMDAsCiYjNDM7CS5pbWVtX3NpemUJPSAweDAwMDAyMDAwLAomIzQzOwkuc21lbV9zaXplCT0gMHgwMDAwOTAwMCwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqLwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX2ludGVyY29ubmVjdF9kYXRhIGlwYV9pbnRlcmNvbm5lY3RfZGF0YVtdID0gewomIzQzOwl7CiYjNDM7CQkubmFtZQkJCT0gJiMzNDttZW1vcnkmIzM0OywKJiM0MzsJCS5wZWFrX2JhbmR3aWR0aAkJPSAxOTAwMDAwLAkvKiAxLjkgR0JwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gNTkwMDAwLAkvKiA1OTAgTUJwcyAqLwomIzQzOwl9LAomIzQzOwkvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi8KJiM0MzsJewomIzQzOwkJLm5hbWUJCQk9ICYjMzQ7Y29uZmlnJiMzNDssCiYjNDM7CQkucGVha19iYW5kd2lkdGgJCT0gNzY4MDAsCS8qIDc2LjggTUJwcyAqLwomIzQzOwkJLmF2ZXJhZ2VfYmFuZHdpZHRoCT0gMCwJCS8qIHVudXNlZCAqLwomIzQzOwl9LAomIzQzO307CiYjNDM7CiYjNDM7LyogQ2xvY2sgYW5kIGludGVyY29ubmVjdCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi8KJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9wb3dlcl9kYXRhIGlwYV9wb3dlcl9kYXRhID0gewomIzQzOwkuY29yZV9jbG9ja19yYXRlCT0gMTIwICogMTAwMCAqIDEwMDAsCS8qIEh6ICovCiYjNDM7CS5pbnRlcmNvbm5lY3RfY291bnQJPSBBUlJBWV9TSVpFKGlwYV9pbnRlcmNvbm5lY3RfZGF0YSksCiYjNDM7CS5pbnRlcmNvbm5lY3RfZGF0YQk9IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSwKJiM0Mzt9OwomIzQzOwomIzQzOy8qIENvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMS4gKi8KJiM0Mztjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMSA9IHsKJiM0MzsJLnZlcnNpb24JCT0gSVBBX1ZFUlNJT05fNV8xLAomIzQzOwkucXNiX2NvdW50CQk9IEFSUkFZX1NJWkUoaXBhX3FzYl9kYXRhKSwKJiM0MzsJLnFzYl9kYXRhCQk9IGlwYV9xc2JfZGF0YSwKJiM0MzsJLm1vZGVtX3JvdXRlX2NvdW50CT0gMTEsCiYjNDM7CS5lbmRwb2ludF9jb3VudAkJPSBBUlJBWV9TSVpFKGlwYV9nc2lfZW5kcG9pbnRfZGF0YSksCiYjNDM7CS5lbmRwb2ludF9kYXRhCQk9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSwKJiM0MzsJLnJlc291cmNlX2RhdGEJCT0gJmFtcDtpcGFfcmVzb3VyY2VfZGF0YSwKJiM0MzsJLm1lbV9kYXRhCQk9ICZhbXA7aXBhX21lbV9kYXRhLAomIzQzOwkucG93ZXJfZGF0YQkJPSAmYW1wO2lwYV9wb3dlcl9kYXRhLAomIzQzO307CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYwppbmRleCBlMTNjZjgzNWEwMTNjLi5hNTcwNzJiYTRiZWY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmMKQEAgLTExMCw2ICYjNDM7MTEwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCByZWdzICpnc2lfcmVncyhzdHJ1Y3QgZ3NpICpnc2kpCiAJCXJldHVybiAmYW1wO2dzaV9yZWdzX3Y0XzExOwogCiAJY2FzZSBJUEFfVkVSU0lPTl81XzA6CiYjNDM7CWNhc2UgSVBBX1ZFUlNJT05fNV8xOgogCWNhc2UgSVBBX1ZFUlNJT05fNV8yOgogCWNhc2UgSVBBX1ZFUlNJT05fNV81OgogCQlyZXR1cm4gJmFtcDtnc2lfcmVnc192NV8wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaAppbmRleCAzZWI5ZGMyY2UzMzk4Li5mZTZmN2Q1YmZlODhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaApAQCAtMjUzLDYgJiM0MzsyNTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzc7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzk7CiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0XzExOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8wOwomIzQzO2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMjsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfNTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwppbmRleCAxNGFjMmQyZmFmN2MyLi44NGJlYzQ2MWQyMmNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYwpAQCAtNjcyLDYgJiM0Mzs2NzIsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaXBhX21hdGNoW10gPSB7CiAJCS5jb21wYXRpYmxlCT0gJiMzNDtxY29tLHNkeDY1LWlwYSYjMzQ7LAogCQkuZGF0YQkJPSAmYW1wO2lwYV9kYXRhX3Y1XzAsCiAJfSwKJiM0MzsJewomIzQzOwkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7LAomIzQzOwkJLmRhdGEJCT0gJmFtcDtpcGFfZGF0YV92NV8xLAomIzQzOwl9LAogCXsKIAkJLmNvbXBhdGlibGUJPSAmIzM0O3Fjb20sbWlsb3MtaXBhJiMzNDssCiAJCS5kYXRhCQk9ICZhbXA7aXBhX2RhdGFfdjVfMiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jCmluZGV4IDMwYmQ2OWY0YzE0N2MuLjVmMjJjYTYyOTViMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuYwpAQCAtMTI1LDYgJiM0MzsxMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmlwYV9yZWdzKGVudW0gaXBhX3ZlcnNpb24gdmVyc2lvbikKIAljYXNlIElQQV9WRVJTSU9OXzRfMTE6CiAJCXJldHVybiAmYW1wO2lwYV9yZWdzX3Y0XzExOwogCWNhc2UgSVBBX1ZFUlNJT05fNV8wOgomIzQzOwljYXNlIElQQV9WRVJTSU9OXzVfMToKIAljYXNlIElQQV9WRVJTSU9OXzVfMjoKIAkJcmV0dXJuICZhbXA7aXBhX3JlZ3NfdjVfMDsKIAljYXNlIElQQV9WRVJTSU9OXzVfNToKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEyODcKCQkJCQkJCW91dHB1dDogMTkKCQkJCQkJCXRob3VnaHRzOiAzNDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJUCBBY2NlbGVyYXRvciBQYXRjaCBmb3IgU004NDUwKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaCBzZXJpZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBkb3duIGVhY2ggcGllY2UgYW5kIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCYjMzk7cyBiZWluZyBpbnRyb2R1Y2VkIGZvciB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgZHJpdmVyLCB0YXJnZXRpbmcgdGhlIGFtZDY0IGFyY2hpdGVjdHVyZSDigJMgaXQmIzM5O3MgaW1wb3J0YW50IHRvIGtlZXAgdGhhdCBjb250ZXh0IGluIG1pbmQuCgpGaXJzdCwgdGhlIERldmljZSBUcmVlIGJpbmRpbmdzIGZpbGUsIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgLCBoYXMgYSBuZXcgY29tcGF0aWJsZSBzdHJpbmcsIGBxY29tLHNtODQ1MC1pcGFgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGZvciB0aGUgU004NDUwIHBsYXRmb3JtLiBNYWtlcyBzZW5zZS4gVGhlbiwgdGhlIFNNODQ1MCBEVFMgaXRzZWxmLCBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYCwgbm93IGluY2x1ZGVzIGFuIGBpcGFgIG5vZGUgYW5kIHVwZGF0ZXMgdG8gdGhlIGBzcmFtYCBub2RlLiBUaGF0JiMzOTtzIHdoZXJlIHRoZSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBnZXRzIGRlZmluZWQuCgpOZXh0LCB0aGUgTWFrZWZpbGUgaW4gdGhlIGBkcml2ZXJzL25ldC9pcGFgIGRpcmVjdG9yeSBpcyB1cGRhdGVkIHRvIGluY2x1ZGUgdmVyc2lvbiA1LjEgaW4gYElQQV9EQVRBX1ZFUlNJT05TYCwgd2hpY2ggdGVsbHMgbWUgdGhlcmUmIzM5O3MgYSBuZXcgZGF0YSB2ZXJzaW9uIGJlaW5nIGFkZGVkLiBGb2xsb3dpbmcgdGhhdCwgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2AgZGVmaW5lcyB0aGUgYWN0dWFsIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgdGhlIElQIEFjY2VsZXJhdG9yIGZvciB0aGUgU004NDUwLiBHb29kLCBub3cgSSBrbm93IHRoZSBkZXRhaWxzLgoKVGhlIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmNgIGFuZCBgZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY2AgaW5jbHVkZXMgaGFuZGxpbmcgZm9yIGBJUEFfVkVSU0lPTl81XzFgLiBUaGVzZSBmaWxlcyBhcmUgY2xlYXJseSBjb25jZXJuZWQgd2l0aCB0aGUgcmVnaXN0ZXIgaW50ZXJhY3Rpb24gYW5kIHZlcnNpb24tc3BlY2lmaWMgbG9naWMuIFRoZSBpbmNsdWRlIGZpbGUsIGBkcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaGAsIGNvbnRhaW5zIHRoZSBleHRlcm4gZGVjbGFyYXRpb24gZm9yIHRoZSBuZXcgZGF0YSBzdHJ1Y3R1cmUsIGBpcGFfZGF0YV92NV8xYCwgd2hpY2ggbWFrZXMgc2Vuc2UgYXMgdGhpcyBpcyB0aGUgbmV3IGRhdGEuCgpGaW5hbGx5LCBpbiBgZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNgLCB0aGVyZSYjMzk7cyBhIG5ldyBlbnRyeSBpbiBgaXBhX21hdGNoYDogYHsgLmNvbXBhdGlibGUgPSAmIzM0O3Fjb20sc204NDUwLWlwYSYjMzQ7LCAuZGF0YSA9ICZhbXA7aXBhX2RhdGFfdjVfMSB9YC4gVGhpcyBpcyB0aGUgY3JpdGljYWwgcGllY2UgdGhhdCB0aWVzIGl0IGFsbCB0b2dldGhlciDigJMgYXNzb2NpYXRpbmcgdGhlIG5ldyBjb21wYXRpYmxlIHN0cmluZyB3aXRoIHRoZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIHRoaXMgc3BlY2lmaWMgU004NDUwIGhhcmR3YXJlLiBJdCBhbHNvIGxvb2tzIGxpa2UgdGhlIGNvbXBhdGlibGUgdmFsdWUgaXMgc2V0IGJ5IHRoZSBwbGF0Zm9ybSBvciBib2FyZC4KCkJlZm9yZSBJIGdvIGZ1cnRoZXIsIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBDT05GSUdfUUNPTV9JUEFgLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHRoZSBjb25kaXRpb25zIGZvciBpdHMgY29tcGlsYXRpb24sIGFuZCB3aGF0IGJpbmRpbmdzIHRoaXMgY29uZmlndXJhdGlvbiBmbGFnIHJlbGllcyBvbi4gVGhpcyBoZWxwcyB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IGFuZCBhbnkgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBmb3IgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMgb3Igb3RoZXIgUXVhbGNvbW0tcmVsYXRlZCBkcml2ZXJzLiBJdCYjMzk7cyBhbHNvIHBvc3NpYmxlIHRvIGRpc2NvdmVyIG90aGVyIGludGVyYWN0aW9ucyBiYXNlZCBvbiBkZXBlbmRlbmN5IGNoZWNrcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUUNPTV9JUEEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXBhL0tjb25maWc6MTpjb25maWcgUUNPTV9JUEFcbmRyaXZlcnMvbmV0L2lwYS9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtRdWFsY29tbSBJUEEgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA5IDAzOjIyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyMjgyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IEtjb25maWcgZmlsZToKCioqRGl2aW5nIGludG8gdGhlIElQQSBOZXR3b3JrIENvbmZpZ3VyYXRpb24qKgoKT2theSwgdGltZSB0byBjcmFjayBvcGVuIGBkcml2ZXJzL25ldC9pcGEvS2NvbmZpZ2AuIFRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgb2YgdGhlIElQQSAobGlrZWx5LCBJbi1Qcm9jZXNzIEFjY2VsZXJhdG9yLCBvciBzb21ldGhpbmcgc2ltaWxhciBpbiBuZXR3b3JraW5nKSBuZXR3b3JrIGRyaXZlciBjb25maWd1cmF0aW9uIGxpdmVzLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHdoYXQgZmVhdHVyZXMgYXJlIGVuYWJsZWQsIHdoYXQgZGVwZW5kZW5jaWVzIHRoZXkgaGF2ZSwgYW5kIGhvdyBpdCBhbGwgZml0cyBpbnRvIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB0aGUgbmV0d29ya2luZyBzdWJzeXN0ZW0uCgpGaXJzdCwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgdGhlIG1haW4gYGNvbmZpZ2Agc3ltYm9sIHRoYXQgY29udHJvbHMgdGhlIGVudGlyZSBJUEEgZHJpdmVyLiBJdCYjMzk7bGwgcHJvYmFibHkgaGF2ZSBhIG5hbWUgbGlrZSBgQ09ORklHX0lQQWAgb3Igc29tZXRoaW5nIGVxdWFsbHkgZGVzY3JpcHRpdmUuIE9uY2UgSSBmaW5kIHRoYXQsIEkgY2FuIHdvcmsgbXkgd2F5IGRvd24gdGhlIHRyZWUuIEkgZXhwZWN0IHRvIHNlZSBuZXN0ZWQgYGNvbmZpZ2Agb3B0aW9ucyBmb3IgaW5kaXZpZHVhbCBmZWF0dXJlcywgbWF5YmUgcmVsYXRlZCB0byBkaWZmZXJlbnQgSVBBIGhhcmR3YXJlIHJldmlzaW9ucywgdmFyaW91cyBvZmZsb2FkIGNhcGFiaWxpdGllcyAoY2hlY2tzdW0sIHNlZ21lbnRhdGlvbiwgZXRjLiksIHNwZWNpZmljIFBIWSBzdXBwb3J0IGlmIGFwcGxpY2FibGUsIG9yIGV2ZW4gZGlmZmVyZW50IG9wZXJhdGlvbmFsIG1vZGVzLgoKSSYjMzk7bGwgYmUgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBhbnkgYGRlcGVuZHMgb25gIGNsYXVzZXMuIFRoZXNlIGFyZSBjcnVjaWFsLiBUaGV5IHRlbGwgbWUgdGhlIHByZXJlcXVpc2l0ZXMg4oCTIG90aGVyIGtlcm5lbCBtb2R1bGVzLCBmZWF0dXJlcywgb3IgaGFyZHdhcmUgc3VwcG9ydCDigJMgdGhhdCBuZWVkIHRvIGJlIGVuYWJsZWQgYmVmb3JlIEkgY2FuIGV2ZW4gKmNvbnNpZGVyKiBlbmFibGluZyBhIHBhcnRpY3VsYXIgSVBBIGZlYXR1cmUuIFVuZGVyc3RhbmRpbmcgdGhlIGRlcGVuZGVuY2llcyBpcyBrZXkgdG8gYXZvaWRpbmcgY29uZmlndXJhdGlvbiBjb25mbGljdHMgYW5kIGJ1aWxkaW5nIGEgd29ya2luZyBzeXN0ZW0uCgpJJiMzOTttIGFsc28gZXhwZWN0aW5nIHRvIHNlZSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCB3aGljaCBhdXRvbWF0aWNhbGx5IGVuYWJsZSBvdGhlciBjb25maWd1cmF0aW9uIHN5bWJvbHMgaWYgdGhlIGN1cnJlbnQgb25lIGlzIGNob3Nlbi4gVGhpcyBpcyBjb21tb24gZm9yIGVuYWJsaW5nIGRlcGVuZGVudCBjb21wb25lbnRzIGxpa2UgaGVscGVyIGZ1bmN0aW9ucywgaGVhZGVyIGZpbGVzLCBvciBjb3JlIGRyaXZlciBtb2R1bGVzLgoKQXMgYW4gZXhwZXJ0IGluIGVtYmVkZGVkIG5ldHdvcmtpbmcsIEkmIzM5O2xsIGFsc28gYmUgb24gdGhlIGxvb2tvdXQgZm9yIGRlZmF1bHQgdmFsdWVzIChgZGVmYXVsdGApIGZvciB0aGUgdmFyaW91cyBvcHRpb25zLiBUaGVzZSBnaXZlIG1lIGEgc2Vuc2Ugb2Ygd2hhdCB0aGUgZGV2ZWxvcGVycyBjb25zaWRlciB0aGUgJiMzNDtjb21tb24gY2FzZSYjMzQ7IGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIG5lZWQgdG8gdGhpbmsgYWJvdXQgd2hldGhlciB0aG9zZSBkZWZhdWx0cyBhcmUgYXBwcm9wcmlhdGUgZm9yIG15IHRhcmdldCBzeXN0ZW0uCgpGaW5hbGx5LCBJJiMzOTtsbCBiZSBzY2FubmluZyBmb3IgYW55IGBoZWxwYCB0ZXh0LiBXaGlsZSBpdCB3b24mIzM5O3QgcmVwbGFjZSBhIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZGVlcCBkaXZlLCB0aGUgaGVscCB0ZXh0IG9mdGVuIHByb3ZpZGVzIHZhbHVhYmxlIGNsdWVzIGFzIHRvIHRoZSBwdXJwb3NlIG9mIGEgY29uZmlndXJhdGlvbiBvcHRpb24sIGl0cyBpbnRlbmRlZCB1c2FnZSwgYW5kIHBvc3NpYmxlIHRyYWRlLW9mZnMuIEl0IGNhbiBvZnRlbiBoaWdobGlnaHQgdGhlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBvZiBjZXJ0YWluIGNob2ljZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdGNvbmZpZyBRQ09NX0lQQVxuICAgMjpcdFx0dHJpc3RhdGUgXCYjMzQ7UXVhbGNvbW0gSVBBIHN1cHBvcnRcJiMzNDtcbiAgIDM6XHRcdGRlcGVuZHMgb24gTkVUIFx1MDAyNlx1MDAyNiBRQ09NX1NNRU1cbiAgIDQ6XHRcdGRlcGVuZHMgb24gQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVFxuICAgNTpcdFx0ZGVwZW5kcyBvbiBJTlRFUkNPTk5FQ1RcbiAgIDY6XHRcdGRlcGVuZHMgb24gUUNPTV9SUFJPQ19DT01NT04gfHwgKFFDT01fUlBST0NfQ09NTU9OPW4gXHUwMDI2XHUwMDI2IENPTVBJTEVfVEVTVClcbiAgIDc6XHRcdGRlcGVuZHMgb24gUUNPTV9BT1NTX1FNUCB8fCBRQ09NX0FPU1NfUU1QPW5cbiAgIDg6XHRcdHNlbGVjdCBRQ09NX01EVF9MT0FERVJcbiAgIDk6XHRcdHNlbGVjdCBRQ09NX1BBU1xuICAxMDpcdFx0c2VsZWN0IFFDT01fUU1JX0hFTFBFUlNcbiAgMTE6XHRcdGhlbHBcbiAgMTI6XHRcdCAgQ2hvb3NlIFkgb3IgTSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIFF1YWxjb21tXG4gIDEzOlx0XHQgIElQIEFjY2VsZXJhdG9yIChJUEEpLCBhIGhhcmR3YXJlIGJsb2NrIHByZXNlbnQgaW4gc29tZVxuICAxNDpcdFx0ICBRdWFsY29tbSBTb0NzLiAgVGhlIElQQSBpcyBhIHByb2dyYW1tYWJsZSBwcm90b2NvbCBwcm9jZXNzb3JcbiAgMTU6XHRcdCAgdGhhdCBpcyBjYXBhYmxlIG9mIGdlbmVyaWMgaGFyZHdhcmUgaGFuZGxpbmcgb2YgSVAgcGFja2V0cyxcbiAgMTY6XHRcdCAgaW5jbHVkaW5nIHJvdXRpbmcsIGZpbHRlcmluZywgYW5kIE5BVC4gIEN1cnJlbnRseSB0aGUgSVBBXG4gIDE3Olx0XHQgIGRyaXZlciBzdXBwb3J0cyBvbmx5IGJhc2ljIHRyYW5zcG9ydCBvZiBuZXR3b3JrIHRyYWZmaWNcbiAgMTg6XHRcdCAgYmV0d2VlbiB0aGUgQVAgYW5kIG1vZGVtLlxuICAxOTpcdFxuICAyMDpcdFx0ICBOb3RlIHRoYXQgaWYgc2VsZWN0ZWQsIHRoZSBzZWxlY3Rpb24gdHlwZSBtdXN0IG1hdGNoIHRoYXRcbiAgMjE6XHRcdCAgb2YgUUNPTV9RNlY1X0NPTU1PTiAoWSBvciBNKS5cbiAgMjI6XHRcbiAgMjM6XHRcdCAgSWYgdW5zdXJlLCBzYXkgTi5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzEzOAoJCQkJCQkJb3V0cHV0OiAzMAoJCQkJCQkJdGhvdWdodHM6IDM2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBUcmlhZ2UgQXNzZXNzbWVudCoqCgpPa2F5LCB0aW1lIHRvIG1ha2UgYSBkZWNpc2lvbi4gTGV0JiMzOTtzIHJldmlzaXQgU2VjdGlvbiAyIG9mIHRoZSB0cmlhZ2UgcGhpbG9zb3BoeSwgc3BlY2lmaWNhbGx5IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSDigJMgd2hlbiB3ZSAqZG9uJiMzOTt0KiBjb25zaWRlciBzb21ldGhpbmcgd29ydGggZnV6emluZy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIFF1YWxjb21tIElQQSBjb2RlIGRvZXNuJiMzOTt0IGZhbGwgaW50byBvbmUgb2YgdGhvc2UgY2F0ZWdvcmllcy4gSSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBjaGFuZ2VzIGFyZSBub3QgcmVsYXRlZCB0byBhbnkgb2YgdGhlIGZvbGxvd2luZyB0byBub3QgYmUgd29ydGggZnV6emluZzoKKiAgIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXMgKGRvY3VtZW50YXRpb24sIHVzZXItc3BhY2UgdG9vbHMsIGxvZ2dpbmcgdGhhdCBkb2VzbiYjMzk7dCBhZmZlY3QgY29udHJvbCBmbG93LCBldGMuKQoqICAgU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlICh2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyBmb3IgaGFyZHdhcmUgd2UgY2FuJiMzOTt0IGVtdWxhdGUpCiogICBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHMgKHRlYXJkb3duIGNhbGxiYWNrcyBvbmx5IHRyaWdnZXJlZCBieSBob3QtdW5wbHVnLCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29kZSkuCgpUaGUgdGFyZ2V0IGlzIGFtZDY0LCBzbyBsZXQmIzM5O3MgZ2V0IHRoYXQgY2xlYXIgaW4gbWluZC4gTm93LCBJIGhhdmUgdG8gY29uc2lkZXIgUXVhbGNvbW0gSVBBLCB3aGljaCBmcm9tIG15IHVuZGVyc3RhbmRpbmcgaXMgdGllZCB0byBRdWFsY29tbSBTb0MgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBBUk02NCBwbGF0Zm9ybXMgYW5kIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoZSBEZXZpY2UgVHJlZSwgcGFydGljdWxhcmx5IG9uIHRoZSBTbmFwZHJhZ29uIFNNODQ1MC4gVGhlIHF1ZXN0aW9uIHRoYXQgcmVtYWlucyBpczogSXMgUUNPTVxfSVBBIGEgc3RhbmRhcmQgcGxhdGZvcm0gZHJpdmVyIHRoYXQgaXMgaW5zdGFudGlhdGVkIHRocm91Z2ggdGhlIERldmljZSBUcmVlIG9uIFF1YWxjb21tIFNuYXBkcmFnb24gU29Dcz8gVGltZSB0byBkaXZlIGludG8gYGlwYV9tYWluLmNgIGFuZCBtYWtlIGEgY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfcGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaXBhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jPTEwMTU9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaXBhX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYy0xMDI2LVxuZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmM6MTAyNzptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGlwYV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmMtMTAyOC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wOSAwMzoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzkxMAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKkRpdmluZyBpbnRvIHRoZSBJUEEgRHJpdmVyKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gaG93IHRoaXMgYWxsIHdvcmtzLCBzbyBsZXQmIzM5O3Mgc3RhcnQgd2l0aCB0aGUgYGlwYV9kcml2ZXJgIHNwZWNpZmljYWxseSwgYW5kIHRoZSBgaXBhX21haW4uY2AgZmlsZSB3aGVyZSBpdCBzaG91bGQgYmUgZGVmaW5lZC4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGxvb2sgdGhyb3VnaCB0aGUgY29kZSBpbiB0aGF0IGZpbGUsIGNvbmZpcm0gdGhlIGRyaXZlciYjMzk7cyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSwgYW5kIHRoZW4gbWFwIG91dCBhbnkgcmVsZXZhbnQgaW50ZXJhY3Rpb24gcG9pbnRzLiBJJiMzOTttIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIHNlZWluZyBob3cgdGhlIElQQSBpbnRlcmFjdHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLCB3aGF0IGl0cyBlbnRyeSBwb2ludHMgYXJlLCBhbmQgaWYgYW55dGhpbmcgaGFzIGNoYW5nZWQgc2luY2UgdGhlIGxhc3QgdGltZSBJIGxvb2tlZCBhdCBpdC4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgY29yZSBjb25jZXB0cyByZW1haW4gdGhlIHNhbWUgb3IgaWYgdGhlcmUgYXJlIGFueSBzdWJ0bGUgYnV0IGltcG9ydGFudCBpbXBsZW1lbnRhdGlvbiBkaWZmZXJlbmNlcy4gVGltZSB0byBwdWxsIHVwIHRoZSBjb2RlIGFuZCBnZXQgc3RhcnRlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEwMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTAwMDpcdFx0a2ZyZWUoaXBhKTtcbjEwMDE6XHRcdGlwYV9wb3dlcl9leGl0KHBvd2VyKTtcbjEwMDI6XHRcdGlwYV9pbnRlcnJ1cHRfZXhpdChpbnRlcnJ1cHQpO1xuMTAwMzpcdFxuMTAwNDpcdFx0ZGV2X2luZm8oZGV2LCBcJiMzNDtJUEEgZHJpdmVyIHJlbW92ZWRcJiMzNDspO1xuMTAwNTpcdH1cbjEwMDY6XHRcbjEwMDc6XHRzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqaXBhX2F0dHJpYnV0ZV9ncm91cHNbXSA9IHtcbjEwMDg6XHRcdFx1MDAyNmlwYV9hdHRyaWJ1dGVfZ3JvdXAsXG4xMDA5Olx0XHRcdTAwMjZpcGFfZmVhdHVyZV9hdHRyaWJ1dGVfZ3JvdXAsXG4xMDEwOlx0XHRcdTAwMjZpcGFfZW5kcG9pbnRfaWRfYXR0cmlidXRlX2dyb3VwLFxuMTAxMTpcdFx0XHUwMDI2aXBhX21vZGVtX2F0dHJpYnV0ZV9ncm91cCxcbjEwMTI6XHRcdE5VTEwsXG4xMDEzOlx0fTtcbjEwMTQ6XHRcbjEwMTU6XHRzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpcGFfZHJpdmVyID0ge1xuMTAxNjpcdFx0LnByb2JlXHRcdD0gaXBhX3Byb2JlLFxuMTAxNzpcdFx0LnJlbW92ZVx0XHQ9IGlwYV9yZW1vdmUsXG4xMDE4Olx0XHQuc2h1dGRvd25cdD0gaXBhX3JlbW92ZSxcbjEwMTk6XHRcdC5kcml2ZXJcdD0ge1xuMTAyMDpcdFx0XHQubmFtZVx0XHQ9IFwmIzM0O2lwYVwmIzM0OyxcbjEwMjE6XHRcdFx0LnBtXHRcdD0gXHUwMDI2aXBhX3BtX29wcyxcbjEwMjI6XHRcdFx0Lm9mX21hdGNoX3RhYmxlXHQ9IGlwYV9tYXRjaCxcbjEwMjM6XHRcdFx0LmRldl9ncm91cHNcdD0gaXBhX2F0dHJpYnV0ZV9ncm91cHMsXG4xMDI0Olx0XHR9LFxuMTAyNTpcdH07XG4xMDI2Olx0XG4xMDI3Olx0bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpcGFfZHJpdmVyKTtcbjEwMjg6XHRcbjEwMjk6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUEwgdjJcJiMzNDspO1xuMTAzMDpcdE1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtRdWFsY29tbSBJUCBBY2NlbGVyYXRvciBkZXZpY2UgZHJpdmVyXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTQ1ODQKCQkJCQkJCW91dHB1dDogMTA1CgkJCQkJCQl0aG91Z2h0czogNjQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IElQQSBEcml2ZXIgRnV6emluZyBFeGNsdXNpb24qKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gV2UmIzM5O3JlIGxvb2tpbmcgYXQgdGhlIGBpcGFfZHJpdmVyYCBhbmQgd2hldGhlciBpdCYjMzk7cyBzdWl0YWJsZSBmb3IgZnV6emluZy4gIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IGl0JiMzOTtzICpub3QqLgoKVGhlIGBpcGFfZHJpdmVyYCBpcyBhIHBsYXRmb3JtIGRyaXZlciB0aGF0IHJlbGllcyBvbiBhIGRldmljZSB0cmVlIG1hdGNoIChgb2ZfbWF0Y2hfdGFibGUgPSBpcGFfbWF0Y2hgKS4gVGhlIHRhcmdldCBhcmNoaXRlY3R1cmUsIGhvd2V2ZXIsIGlzIGFtZDY0LiAgVGhlIGNvZGUgbW9kaWZpY2F0aW9ucyByZWxhdGUgdG8gUXVhbGNvbW0mIzM5O3MgSVBBIChJUCBBY2NlbGVyYXRvcikgdjUuMSBoYXJkd2FyZSBibG9jaywgc3BlY2lmaWNhbGx5IGZvciB0aGUgU004NDUwIChTbmFwZHJhZ29uIDggR2VuIDEpIHdoaWNoIGlzIGFuIEFSTTY0IFNvQy4gQ3J1Y2lhbGx5LCB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIGlzICoqbm90KiogZW11bGF0ZWQgd2l0aGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiAgSXQgZGVtYW5kcyAqcGh5c2ljYWwqIGhhcmR3YXJlIG9yIHNwZWNpYWxpemVkIGVtdWxhdGlvbiB0aGF0IGlzbiYjMzk7dCBhY2Nlc3NpYmxlIGluIHRoZXNlIHN0YW5kYXJkIGVudmlyb25tZW50cy4KCk15IGFuYWx5c2lzIHJldmVhbHMgdGhyZWUga2V5IGVsZW1lbnRzOgoKMS4gICoqQXJjaGl0ZWN0dXJlIE1pc21hdGNoOioqICBUaGUgdGFyZ2V0IGlzIGFtZDY0LCBidXQgdGhlIGNoYW5nZXMgZGlyZWN0bHkgaW1wYWN0IEFSTTY0LXNwZWNpZmljIGZpbGVzOiBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYCAoRFRTSSkgYW5kIHRoZSBJUEEgZHJpdmVyIGRhdGEgZGVmaW5pdGlvbnMgaW4gYGRyaXZlcnMvbmV0L2lwYS9gIHRhaWxvcmVkIHRvIHRoZSBTTTg0NTAgcGxhdGZvcm0uCjIuICAqKlVucmVhY2hhYmxlIEhhcmR3YXJlOioqIFRoZSBJUEEgaGFyZHdhcmUgYmxvY2sgaXMgdmVuZG9yLXNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoZSBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMuCjMuICAqKkRvY3VtZW50YXRpb24gVG91Y2g6KiogVGhlIGVkaXRzIHRvIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgIGNvbmNlcm4gb25seSBkb2N1bWVudGF0aW9uLCB3aGljaCBpcyBhIG5lZ2F0aXZlIGNyaXRlcmlvbi4KClRoZXJlZm9yZSwgdGhlIGNvZGUmIzM5O3MgcmVhY2hhYmlsaXR5IGlzIHRoZSBkZWNpZGluZyBmYWN0b3IsIGJhc2VkIG9uIHRoZSBmdXp6aW5nIGNyaXRlcmlhLiBUaGUgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuIEdpdmVuIHRoaXMsIGl0IE1VU1QgTk9UIGJlIGZ1enplZC4KCk15IHJlYXNvbmluZywgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSBgc2V0LXJlc3VsdHNgIGNhbGwsIGlzIGNsZWFyOgoKMS4gIFRoZSBhcmNoaXRlY3R1cmUgdGFyZ2V0IGlzIGFtZDY0LCB3aGlsZSB0aGUgbW9kaWZpZWQgY29kZSBwZXJ0YWlucyB0byB0aGUgUXVhbGNvbW0gSVBBIHY1LjEgaGFyZHdhcmUgb24gQVJNNjQgU004NDUwIFNvQ3MuIFRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBhcmUgYWxzbyBzcGVjaWZpYyB0byB0aGlzIHBsYXRmb3JtLgoyLiAgVGhlIFF1YWxjb21tIElQQSBoYXJkd2FyZSBpcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cy4gVGh1cywgdGhlIGNvZGUgcGF0aCBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuCgpGaW5hbGx5LCBiZWNhdXNlIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAsICBgRm9jdXNTeW1ib2xzYCBhbmQgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBhbiBlbXB0eSBsaXN0IChgW11gKS4gTm93LCBJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBzZXJpZXMgYWRkcyBEZXZpY2UgVHJlZSBiaW5kaW5ncywgRFRTIG5vZGVzLCBhbmQgZHJpdmVyIGNvbmZpZ3VyYXRpb24gdGFibGVzIGZvciB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSB2NS4xKSBvbiBTbmFwZHJhZ29uIFNNODQ1MCBTb0NzLiBUaGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIG9uIGFtZDY0IGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFNvQyBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDkgMDM6MjI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjIzLjE4NTk3NTE0N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI0MTA5MzgyOTQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggc2VyaWVzIGFkZHMgRGV2aWNlIFRyZWUgYmluZGluZ3MsIERUUyBub2RlcywgYW5kIGRyaXZlciBjb25maWd1cmF0aW9uIHRhYmxlcyBmb3IgdGhlIFF1YWxjb21tIElQIEFjY2VsZXJhdG9yIChJUEEgdjUuMSkgb24gU25hcGRyYWdvbiBTTTg0NTAgU29Dcy4gVGhpcyBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBvbiBhbWQ2NCBhcyBpdCByZXF1aXJlcyBwaHlzaWNhbCBRdWFsY29tbSBTb0MgaGFyZHdhcmUgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjoyMy4xODU5Nzk3OTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NDEzNzY4OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBhYTQ3ZGFiMDQ5MDM1Mjg3NTM0Y2IzNGY5YTY5Njk2Nzk2ZDVhYmJmXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgU2VwIDkgMDM6MjI6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXFxuaW5kZXggNjhlYzc2ZmU0NDczNS4uZGI5MWJmYWFmODMzMiAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxcXG5AQCAtNTMsNiArNTMsNyBAQCBwcm9wZXJ0aWVzOlxcbiAgICAgICAgICAgLSBxY29tLHNkeDY1LWlwYVxcbiAgICAgICAgICAgLSBxY29tLHNtNjM1MC1pcGFcXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXFxuKyAgICAgICAgICAtIHFjb20sc204NDUwLWlwYVxcbiAgICAgICAgICAgLSBxY29tLHNtODU1MC1pcGFcXG4gICAgICAgLSBpdGVtczpcXG4gICAgICAgICAgIC0gZW51bTpcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXFxuaW5kZXggYjg3OTM0ODJiMTgxNS4uOTViNmZkMjJhODQ2NSAxMDA2NDRcXG4tLS0gYS9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lcXG5AQCAtMjYyNSw2ICsyNjI1LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHtcXG4gXFx0XFx0XFx0ZG1hLWNvaGVyZW50O1xcbiBcXHRcXHR9O1xcbiBcXG4rXFx0XFx0aXBhOiBpcGFAM2Y0MDAwMCB7XFxuK1xcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxzbTg0NTAtaXBhXFxcIjtcXG4rXFxuK1xcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4M2Y0MDAwMCAwIDB4MTAwMDBcXHUwMDNlLFxcbitcXHRcXHRcXHQgICAgICBcXHUwMDNjMCAweDNmNTAwMDAgMCAweDUwMDBcXHUwMDNlLFxcbitcXHRcXHRcXHQgICAgICBcXHUwMDNjMCAweDNlMDQwMDAgMCAweGZjMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0cmVnLW5hbWVzID0gXFxcImlwYS1yZWdcXFwiLFxcbitcXHRcXHRcXHRcXHQgICAgXFxcImlwYS1zaGFyZWRcXFwiLFxcbitcXHRcXHRcXHRcXHQgICAgXFxcImdzaVxcXCI7XFxuK1xcdFxcdFxcdGlvbW11cyA9IFxcdTAwM2NcXHUwMDI2YXBwc19zbW11IDB4NWMwIDB4MFxcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdCBcXHUwMDNjXFx1MDAyNmFwcHNfc21tdSAweDVjMiAweDBcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0aW50ZXJydXB0cy1leHRlbmRlZCA9IFxcdTAwM2NcXHUwMDI2aW50YyBHSUNfU1BJIDY1NCBJUlFfVFlQRV9FREdFX1JJU0lOR1xcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwM2NcXHUwMDI2aW50YyBHSUNfU1BJIDQzMiBJUlFfVFlQRV9MRVZFTF9ISUdIXFx1MDAzZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgICAgXFx1MDAzY1xcdTAwMjZpcGFfc21wMnBfaW4gMCBJUlFfVFlQRV9FREdFX1JJU0lOR1xcdTAwM2UsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX2luIDEgSVJRX1RZUEVfRURHRV9SSVNJTkdcXHUwMDNlO1xcbitcXHRcXHRcXHRpbnRlcnJ1cHQtbmFtZXMgPSBcXFwiaXBhXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiZ3NpXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiaXBhLWNsb2NrLXF1ZXJ5XFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICBcXFwiaXBhLXNldHVwLXJlYWR5XFxcIjtcXG4rXFxuK1xcdFxcdFxcdGNsb2NrcyA9IFxcdTAwM2NcXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1xcdTAwM2U7XFxuK1xcdFxcdFxcdGNsb2NrLW5hbWVzID0gXFxcImNvcmVcXFwiO1xcbitcXG4rXFx0XFx0XFx0aW50ZXJjb25uZWN0cyA9IFxcdTAwM2NcXHUwMDI2YWdncmUyX25vYyBNQVNURVJfSVBBIDAgXFx1MDAyNm1jX3ZpcnQgU0xBVkVfRUJJMSAwXFx1MDAzZSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx1MDAzY1xcdTAwMjZnZW1fbm9jIE1BU1RFUl9BUFBTU19QUk9DIDAgXFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0aW50ZXJjb25uZWN0LW5hbWVzID0gXFxcIm1lbW9yeVxcXCIsXFxuK1xcdFxcdFxcdFxcdFxcdCAgICAgXFxcImNvbmZpZ1xcXCI7XFxuK1xcbitcXHRcXHRcXHRxY29tLHFtcCA9IFxcdTAwM2NcXHUwMDI2YW9zc19xbXBcXHUwMDNlO1xcbitcXG4rXFx0XFx0XFx0cWNvbSxzbWVtLXN0YXRlcyA9IFxcdTAwM2NcXHUwMDI2aXBhX3NtcDJwX291dCAwXFx1MDAzZSxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFx1MDAzY1xcdTAwMjZpcGFfc21wMnBfb3V0IDFcXHUwMDNlO1xcbitcXHRcXHRcXHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcXFwiaXBhLWNsb2NrLWVuYWJsZWQtdmFsaWRcXFwiLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXFwiaXBhLWNsb2NrLWVuYWJsZWRcXFwiO1xcbitcXG4rXFx0XFx0XFx0c3JhbSA9IFxcdTAwM2NcXHUwMDI2aXBhX21vZGVtX3RhYmxlc1xcdTAwM2U7XFxuK1xcbitcXHRcXHRcXHRzdGF0dXMgPSBcXFwiZGlzYWJsZWRcXFwiO1xcbitcXHRcXHR9O1xcbitcXG4gXFx0XFx0dXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHtcXG4gXFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJxY29tLHNtODQ1MC11c2ItaHMtcGh5XFxcIixcXG4gXFx0XFx0XFx0XFx0ICAgICBcXFwicWNvbSx1c2Itc25wcy1ocy03bm0tcGh5XFxcIjtcXG5AQCAtNDk1NywyMSArNDk5OCwyNSBAQCBjdGlAMTM5MDAwMDAge1xcbiBcXHRcXHRcXHRjbG9jay1uYW1lcyA9IFxcXCJhcGJfcGNsa1xcXCI7XFxuIFxcdFxcdH07XFxuIFxcbi1cXHRcXHRzcmFtQDE0NmFhMDAwIHtcXG4rXFx0XFx0c3JhbUAxNDY4MDAwMCB7XFxuIFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwicWNvbSxzbTg0NTAtaW1lbVxcXCIsIFxcXCJzeXNjb25cXFwiLCBcXFwic2ltcGxlLW1mZFxcXCI7XFxuLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcXHUwMDNlO1xcbi1cXHRcXHRcXHRyYW5nZXMgPSBcXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXFx1MDAzZTtcXG4rXFx0XFx0XFx0cmVnID0gXFx1MDAzYzAgMHgxNDY4MDAwMCAwIDB4NDAwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHRyYW5nZXMgPSBcXHUwMDNjMCAwIDB4MTQ2ODAwMDAgMHg0MDAwMFxcdTAwM2U7XFxuIFxcbiBcXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4gXFx0XFx0XFx0I3NpemUtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuIFxcbi1cXHRcXHRcXHRtaW5pZHVtcF9jb25maWc6IG1pbmlkdW1wLXNyYW1AMWMge1xcbi1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgxYyAweDRcXHUwMDNlO1xcbitcXHRcXHRcXHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMjgwMDAge1xcbitcXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHgyODAwMCAweDIwMDBcXHUwMDNlO1xcbitcXHRcXHRcXHR9O1xcbitcXG4rXFx0XFx0XFx0bWluaWR1bXBfY29uZmlnOiBtaW5pZHVtcC1zcmFtQDJhMDFjIHtcXG4rXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4MmEwMWMgMHg0XFx1MDAzZTtcXG4gXFx0XFx0XFx0fTtcXG4gXFxuLVxcdFxcdFxcdHBpbC1yZWxvY0A5NGMge1xcbitcXHRcXHRcXHRwaWwtcmVsb2NAMmE5NGMge1xcbiBcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcInFjb20scGlsLXJlbG9jLWluZm9cXFwiO1xcbi1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg5NGMgMHhjOFxcdTAwM2U7XFxuK1xcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDJhOTRjIDB4YzhcXHUwMDNlO1xcbiBcXHRcXHRcXHR9O1xcbiBcXHRcXHR9O1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXFxuaW5kZXggZTE0OGVjM2MxYTEwMS4uZDQ5OTVjMmU4Y2EwMiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvTWFrZWZpbGVcXG5AQCAtNyw3ICs3LDcgQEAgSVBBX1JFR19WRVJTSU9OU1xcdDo9XFx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjVcXG4gIyBTb21lIElQQSB2ZXJzaW9ucyBjYW4gcmV1c2UgYW5vdGhlciBzZXQgb2YgR1NJIHJlZ2lzdGVyIGRlZmluaXRpb25zLlxcbiBHU0lfUkVHX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4wIDQuNSA0LjkgNC4xMSA1LjBcXG4gXFxuLUlQQV9EQVRBX1ZFUlNJT05TXFx0Oj1cXHQzLjEgMy41LjEgNC4yIDQuNSA0LjcgNC45IDQuMTEgNS4wIDUuMiA1LjVcXG4rSVBBX0RBVEFfVkVSU0lPTlNcXHQ6PVxcdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4xIDUuMiA1LjVcXG4gXFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcXHQrPVxcdGlwYS5vXFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmMgYi9kcml2ZXJzL25ldC9pcGEvZGF0YS9pcGFfZGF0YS12NS4xLmNcXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjdkN2JjMTkzYjc3NGNcXG4tLS0gL2Rldi9udWxsXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2RhdGEvaXBhX2RhdGEtdjUuMS5jXFxuQEAgLTAsMCArMSw0NzYgQEBcXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4rXFxuKy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovXFxuKy8qIENvcHlyaWdodCAoQykgMjAyNiBOYXphciBLb21wYW5ldHMgXFx1MDAzY3hsaWU3NjY5QGdtYWlsLmNvbVxcdTAwM2UgKi9cXG4rLyogQ29weXJpZ2h0IChDKSAyMDI2IEVzdGViYW4gVXJydXRpYSBcXHUwMDNjZXN0ZXV3dUBwcm90b24ubWVcXHUwMDNlICovXFxuK1xcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbG9nMi5oXFx1MDAzZVxcbitcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9kYXRhLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCIuLi9pcGFfZW5kcG9pbnQuaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV9tZW0uaFxcXCJcXG4rI2luY2x1ZGUgXFxcIi4uL2lwYV92ZXJzaW9uLmhcXFwiXFxuK1xcbisvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitlbnVtIGlwYV9yZXNvdXJjZV90eXBlIHtcXG4rXFx0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXFx0XFx0PSAwLFxcbitcXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfQlVGRixcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0hQU19ETUFSUyxcXG4rXFx0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxcbitcXG4rXFx0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EQVRBX1NFQ1RPUlNcXHRcXHQ9IDAsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXFxuK1xcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTLFxcbit9O1xcbitcXG4rLyogUmVzb3VyY2UgZ3JvdXBzIHVzZWQgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XFxuK1xcdC8qIFNvdXJjZSByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9TUkNfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX0RNQSxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1FEU1MsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19VUkxMQyxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXFxuK1xcdElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcXHQvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovXFxuK1xcbitcXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUxcXHRcXHRcXHRcXHQ9IDAsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9ETCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VOVVNFRF8yLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsXFxuK1xcdElQQV9SU1JDX0dST1VQX0RTVF9VTlVTRURfNCxcXG4rXFx0SVBBX1JTUkNfR1JPVVBfRFNUX1VDLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLFxcbitcXHRJUEFfUlNSQ19HUk9VUF9EU1RfQ09VTlQsXFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cXG4rfTtcXG4rXFxuKy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcXNiX2RhdGEgaXBhX3FzYl9kYXRhW10gPSB7XFxuK1xcdFtJUEFfUVNCX01BU1RFUl9ERFJdID0ge1xcbitcXHRcXHQubWF4X3dyaXRlc1xcdFxcdD0gMCxcXG4rXFx0XFx0Lm1heF9yZWFkc1xcdFxcdD0gMCxcXHQvKiBubyBsaW1pdCAoaGFyZHdhcmUgbWF4KSAqL1xcbitcXHRcXHQubWF4X3JlYWRzX2JlYXRzXFx0PSAwLFxcbitcXHR9LFxcbitcXHRbSVBBX1FTQl9NQVNURVJfUENJRV0gPSB7XFxuK1xcdFxcdC5tYXhfd3JpdGVzXFx0XFx0PSAwLFxcbitcXHRcXHQubWF4X3JlYWRzXFx0XFx0PSAwLFxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXFxuK1xcdFxcdC5tYXhfcmVhZHNfYmVhdHNcXHQ9IDAsXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfZ3NpX2VuZHBvaW50X2RhdGEgaXBhX2dzaV9lbmRwb2ludF9kYXRhW10gPSB7XFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX0FQLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMTIsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTQsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuY2hhbm5lbCA9IHtcXG4rXFx0XFx0XFx0LnRyZV9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQuZXZlbnRfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LnRsdl9jb3VudFxcdD0gMjAsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5kbWFfbW9kZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LmRtYV9lbmRwb2ludFxcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRX0RNQSxcXG4rXFx0XFx0XFx0XFx0fSxcXG4rXFx0XFx0XFx0fSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEzLFxcbitcXHRcXHQuZW5kcG9pbnRfaWRcXHQ9IDE2LFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gZmFsc2UsXFxuK1xcdFxcdC5jaGFubmVsID0ge1xcbitcXHRcXHRcXHQudHJlX2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC5ldmVudF9jb3VudFxcdD0gMjU2LFxcbitcXHRcXHRcXHQudGx2X2NvdW50XFx0PSA5LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5jb25maWcgPSB7XFxuK1xcdFxcdFxcdFxcdC5yZXNvdXJjZV9ncm91cFxcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5zdGF0dXNfZW5hYmxlXFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQucnggPSB7XFxuK1xcdFxcdFxcdFxcdFxcdC5idWZmZXJfc2l6ZVxcdD0gODE5MixcXG4rXFx0XFx0XFx0XFx0XFx0LnBhZF9hbGlnblxcdD0gaWxvZzIoc2l6ZW9mKHUzMikpLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHR9LFxcbitcXHRcXHRcXHR9LFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1RYXSA9IHtcXG4rXFx0XFx0LmVlX2lkXFx0XFx0PSBHU0lfRUVfQVAsXFxuK1xcdFxcdC5jaGFubmVsX2lkXFx0PSAxMSxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyLFxcbitcXHRcXHQudG93YXJkX2lwYVxcdD0gdHJ1ZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDUxMixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSA1MTIsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDI1LFxcbitcXHRcXHR9LFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuc3RhdHVzX2VuYWJsZVxcdD0gdHJ1ZSxcXG4rXFx0XFx0XFx0XFx0LnR4ID0ge1xcbitcXHRcXHRcXHRcXHRcXHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXFxuK1xcdFxcdFxcdFxcdFxcdC5zdGF0dXNfZW5kcG9pbnQgPVxcbitcXHRcXHRcXHRcXHRcXHRcXHRJUEFfRU5EUE9JTlRfTU9ERU1fQVBfUlgsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfQVBfTU9ERU1fUlhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9BUCxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDEsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMjMsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSBmYWxzZSxcXG4rXFx0XFx0LmNoYW5uZWwgPSB7XFxuK1xcdFxcdFxcdC50cmVfY291bnRcXHQ9IDI1NixcXG4rXFx0XFx0XFx0LmV2ZW50X2NvdW50XFx0PSAyNTYsXFxuK1xcdFxcdFxcdC50bHZfY291bnRcXHQ9IDksXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmNvbmZpZyA9IHtcXG4rXFx0XFx0XFx0XFx0LnJlc291cmNlX2dyb3VwXFx0PSBJUEFfUlNSQ19HUk9VUF9EU1RfVUwsXFxuK1xcdFxcdFxcdFxcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5xbWFwXFx0XFx0PSB0cnVlLFxcbitcXHRcXHRcXHRcXHQuYWdncmVnYXRpb25cXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdC5yeCA9IHtcXG4rXFx0XFx0XFx0XFx0XFx0LmJ1ZmZlcl9zaXplXFx0PSA4MTkyLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl90aW1lX2xpbWl0ID0gNTAwLFxcbitcXHRcXHRcXHRcXHRcXHQuYWdncl9jbG9zZV9lb2ZcXHQ9IHRydWUsXFxuK1xcdFxcdFxcdFxcdH0sXFxuK1xcdFxcdFxcdH0sXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfRU5EUE9JTlRfTU9ERU1fQVBfVFhdID0ge1xcbitcXHRcXHQuZWVfaWRcXHRcXHQ9IEdTSV9FRV9NT0RFTSxcXG4rXFx0XFx0LmNoYW5uZWxfaWRcXHQ9IDAsXFxuK1xcdFxcdC5lbmRwb2ludF9pZFxcdD0gMTIsXFxuK1xcdFxcdC50b3dhcmRfaXBhXFx0PSB0cnVlLFxcbitcXHRcXHQuZW5kcG9pbnQgPSB7XFxuK1xcdFxcdFxcdC5maWx0ZXJfc3VwcG9ydFxcdD0gdHJ1ZSxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gNyxcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAyMSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IGZhbHNlLFxcbitcXHR9LFxcbitcXHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XFxuK1xcdFxcdC5lZV9pZFxcdFxcdD0gR1NJX0VFX01PREVNLFxcbitcXHRcXHQuY2hhbm5lbF9pZFxcdD0gMixcXG4rXFx0XFx0LmVuZHBvaW50X2lkXFx0PSAxNSxcXG4rXFx0XFx0LnRvd2FyZF9pcGFcXHQ9IHRydWUsXFxuK1xcdFxcdC5lbmRwb2ludCA9IHtcXG4rXFx0XFx0XFx0LmZpbHRlcl9zdXBwb3J0XFx0PSB0cnVlLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZSBpcGFfcmVzb3VyY2Vfc3JjW10gPSB7XFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gNyxcXHQubWF4ID0gMTIsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0RFU0NSSVBUT1JfTElTVFNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAyMSxcXHQubWF4ID0gMjEsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEwLFxcdC5tYXggPSAxMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzMyxcXHQubWF4ID0gMzMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDIwLFxcdC5tYXggPSAyMCxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19IUFNfRE1BUlNdID0ge1xcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX0RNQV0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAwLFxcdC5tYXggPSA2MyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1FEU1NdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDEsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VX1JYX1FDXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gMzgsXFx0Lm1heCA9IDM4LFxcbitcXHRcXHR9LFxcbitcXHRcXHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAxNixcXHQubWF4ID0gMTYsXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK307XFxuK1xcbisvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfcmVzb3VyY2UgaXBhX3Jlc291cmNlX2RzdFtdID0ge1xcbitcXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RBVEFfU0VDVE9SU10gPSB7XFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDYsXFx0Lm1heCA9IDYsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDUsXFx0Lm1heCA9IDUsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RSQl9JUF0gPSB7XFxuK1xcdFxcdFxcdC5taW4gPSAzOSxcXHQubWF4ID0gMzksXFxuK1xcdFxcdH0sXFxuK1xcdH0sXFxuK1xcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfRFBTX0RNQVJTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gMyxcXG4rXFx0XFx0fSxcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfRExdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gMyxcXG4rXFx0XFx0fSxcXG4rXFx0fSxcXG4rXFx0W0lQQV9SRVNPVVJDRV9UWVBFX0RTVF9VTFNPX1NFR01FTlRTXSA9IHtcXG4rXFx0XFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xcbitcXHRcXHRcXHQubWluID0gMCxcXHQubWF4ID0gNjMsXFxuK1xcdFxcdH0sXFxuK1xcdFxcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcXG4rXFx0XFx0XFx0Lm1pbiA9IDAsXFx0Lm1heCA9IDYzLFxcbitcXHRcXHR9LFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogUmVzb3VyY2UgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlX2RhdGEgaXBhX3Jlc291cmNlX2RhdGEgPSB7XFxuK1xcdC5yc3JjX2dyb3VwX2RzdF9jb3VudFxcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFxcbitcXHQucnNyY19ncm91cF9zcmNfY291bnRcXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19DT1VOVCxcXG4rXFx0LnJlc291cmNlX3NyY19jb3VudFxcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2Vfc3JjKSxcXG4rXFx0LnJlc291cmNlX3NyY1xcdFxcdD0gaXBhX3Jlc291cmNlX3NyYyxcXG4rXFx0LnJlc291cmNlX2RzdF9jb3VudFxcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSxcXG4rXFx0LnJlc291cmNlX2RzdFxcdFxcdD0gaXBhX3Jlc291cmNlX2RzdCxcXG4rfTtcXG4rXFxuKy8qIElQQS1yZXNpZGVudCBtZW1vcnkgcmVnaW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfbWVtIGlwYV9tZW1fbG9jYWxfZGF0YVtdID0ge1xcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9VQ19FVkVOVF9SSU5HLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDAwMDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDEwMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1VDX1NIQVJFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxMDAwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDgwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9VQ19JTkZPLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDEwODAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyMDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y0X0ZJTFRFUl9IQVNIRUQsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTI4OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjRfRklMVEVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDEzMDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNzgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y2X0ZJTFRFUl9IQVNIRUQsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTM4OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA3OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjZfRklMVEVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE0MDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAwNzgsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1Y0X1JPVVRFX0hBU0hFRCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNDg4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNF9ST1VURSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxNTI4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDk4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9WNl9ST1VURV9IQVNIRUQsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTVjOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA5OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fVjZfUk9VVEUsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MTY2OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDA5OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTU9ERU1fSEVBREVSLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDE3MDgsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDAyNDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX0FQX0hFQURFUixcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxOTQ4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMWUwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9NT0RFTV9QUk9DX0NUWCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgxYjQwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwYjIwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9BUF9QUk9DX0NUWCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyNjYwLFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMjAwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9NT0RFTSxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyODY4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDYwLFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAyLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9BUCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHgyOGM4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDQ4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbitcXHR7XFxuK1xcdFxcdC5pZFxcdFxcdD0gSVBBX01FTV9TVEFUU19URVRIRVJJTkcsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4MjkxMCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDNjMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fU1RBVFNfRklMVEVSX1JPVVRFLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDJjZDAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDBiYTAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDIsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1NUQVRTX0RST1AsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4Mzg3MCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDAyMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMCxcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTU9ERU0sXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4Mzg5OCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MGQ0OCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTkFUX1RBQkxFLFxcbitcXHRcXHQub2Zmc2V0XFx0XFx0PSAweDQ1ZTAsXFxuK1xcdFxcdC5zaXplXFx0XFx0PSAweDA5MDAsXFxuK1xcdFxcdC5jYW5hcnlfY291bnRcXHQ9IDAsXFxuK1xcdH0sXFxuK1xcdHtcXG4rXFx0XFx0LmlkXFx0XFx0PSBJUEFfTUVNX1BETl9DT05GSUcsXFxuK1xcdFxcdC5vZmZzZXRcXHRcXHQ9IDB4NGVlOCxcXG4rXFx0XFx0LnNpemVcXHRcXHQ9IDB4MDEwMCxcXG4rXFx0XFx0LmNhbmFyeV9jb3VudFxcdD0gMixcXG4rXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuaWRcXHRcXHQ9IElQQV9NRU1fTU9ERU1fU1RBVFNfRFJPUCxcXG4rXFx0XFx0Lm9mZnNldFxcdFxcdD0gMHg0ZmU4LFxcbitcXHRcXHQuc2l6ZVxcdFxcdD0gMHgwMDE4LFxcbitcXHRcXHQuY2FuYXJ5X2NvdW50XFx0PSAwLFxcbitcXHR9LFxcbit9O1xcbitcXG4rLyogTWVtb3J5IGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7XFxuK1xcdC5sb2NhbF9jb3VudFxcdD0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLFxcbitcXHQubG9jYWxcXHRcXHQ9IGlwYV9tZW1fbG9jYWxfZGF0YSxcXG4rXFx0LmltZW1fYWRkclxcdD0gMHgxNDZhODAwMCxcXG4rXFx0LmltZW1fc2l6ZVxcdD0gMHgwMDAwMjAwMCxcXG4rXFx0LnNtZW1fc2l6ZVxcdD0gMHgwMDAwOTAwMCxcXG4rfTtcXG4rXFxuKy8qIEludGVyY29ubmVjdCByYXRlcyBhcmUgaW4gMTAwMCBieXRlL3NlY29uZCB1bml0cyAqL1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9pbnRlcmNvbm5lY3RfZGF0YSBpcGFfaW50ZXJjb25uZWN0X2RhdGFbXSA9IHtcXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm1lbW9yeVxcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gMTkwMDAwMCxcXHQvKiAxLjkgR0JwcyAqL1xcbitcXHRcXHQuYXZlcmFnZV9iYW5kd2lkdGhcXHQ9IDU5MDAwMCxcXHQvKiA1OTAgTUJwcyAqL1xcbitcXHR9LFxcbitcXHQvKiBBdmVyYWdlIHJhdGUgaXMgdW51c2VkIGZvciB0aGUgbmV4dCBpbnRlcmNvbm5lY3QgKi9cXG4rXFx0e1xcbitcXHRcXHQubmFtZVxcdFxcdFxcdD0gXFxcImNvbmZpZ1xcXCIsXFxuK1xcdFxcdC5wZWFrX2JhbmR3aWR0aFxcdFxcdD0gNzY4MDAsXFx0LyogNzYuOCBNQnBzICovXFxuK1xcdFxcdC5hdmVyYWdlX2JhbmR3aWR0aFxcdD0gMCxcXHRcXHQvKiB1bnVzZWQgKi9cXG4rXFx0fSxcXG4rfTtcXG4rXFxuKy8qIENsb2NrIGFuZCBpbnRlcmNvbm5lY3QgY29uZmlndXJhdGlvbiBkYXRhIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Bvd2VyX2RhdGEgaXBhX3Bvd2VyX2RhdGEgPSB7XFxuK1xcdC5jb3JlX2Nsb2NrX3JhdGVcXHQ9IDEyMCAqIDEwMDAgKiAxMDAwLFxcdC8qIEh6ICovXFxuK1xcdC5pbnRlcmNvbm5lY3RfY291bnRcXHQ9IEFSUkFZX1NJWkUoaXBhX2ludGVyY29ubmVjdF9kYXRhKSxcXG4rXFx0LmludGVyY29ubmVjdF9kYXRhXFx0PSBpcGFfaW50ZXJjb25uZWN0X2RhdGEsXFxuK307XFxuK1xcbisvKiBDb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEuICovXFxuK2NvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xID0ge1xcbitcXHQudmVyc2lvblxcdFxcdD0gSVBBX1ZFUlNJT05fNV8xLFxcbitcXHQucXNiX2NvdW50XFx0XFx0PSBBUlJBWV9TSVpFKGlwYV9xc2JfZGF0YSksXFxuK1xcdC5xc2JfZGF0YVxcdFxcdD0gaXBhX3FzYl9kYXRhLFxcbitcXHQubW9kZW1fcm91dGVfY291bnRcXHQ9IDExLFxcbitcXHQuZW5kcG9pbnRfY291bnRcXHRcXHQ9IEFSUkFZX1NJWkUoaXBhX2dzaV9lbmRwb2ludF9kYXRhKSxcXG4rXFx0LmVuZHBvaW50X2RhdGFcXHRcXHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcXG4rXFx0LnJlc291cmNlX2RhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfcmVzb3VyY2VfZGF0YSxcXG4rXFx0Lm1lbV9kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX21lbV9kYXRhLFxcbitcXHQucG93ZXJfZGF0YVxcdFxcdD0gXFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxcbit9O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbmluZGV4IGUxM2NmODM1YTAxM2MuLmE1NzA3MmJhNGJlZjYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmNcXG5AQCAtMTEwLDYgKzExMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqZ3NpX3JlZ3Moc3RydWN0IGdzaSAqZ3NpKVxcbiBcXHRcXHRyZXR1cm4gXFx1MDAyNmdzaV9yZWdzX3Y0XzExO1xcbiBcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XFxuK1xcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzVfMjpcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XFxuIFxcdFxcdHJldHVybiBcXHUwMDI2Z3NpX3JlZ3NfdjVfMDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxcbmluZGV4IDNlYjlkYzJjZTMzOTguLmZlNmY3ZDViZmU4OGMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmhcXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxcbkBAIC0yNTMsNiArMjUzLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF83O1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzk7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfMTE7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMDtcXG4rZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8xO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfNTtcXG4gXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcXG5pbmRleCAxNGFjMmQyZmFmN2MyLi44NGJlYzQ2MWQyMmNkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcXG5AQCAtNjcyLDYgKzY3MiwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpcGFfbWF0Y2hbXSA9IHtcXG4gXFx0XFx0LmNvbXBhdGlibGVcXHQ9IFxcXCJxY29tLHNkeDY1LWlwYVxcXCIsXFxuIFxcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMCxcXG4gXFx0fSxcXG4rXFx0e1xcbitcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sc204NDUwLWlwYVxcXCIsXFxuK1xcdFxcdC5kYXRhXFx0XFx0PSBcXHUwMDI2aXBhX2RhdGFfdjVfMSxcXG4rXFx0fSxcXG4gXFx0e1xcbiBcXHRcXHQuY29tcGF0aWJsZVxcdD0gXFxcInFjb20sbWlsb3MtaXBhXFxcIixcXG4gXFx0XFx0LmRhdGFcXHRcXHQ9IFxcdTAwMjZpcGFfZGF0YV92NV8yLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbmluZGV4IDMwYmQ2OWY0YzE0N2MuLjVmMjJjYTYyOTViMTYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmNcXG5AQCAtMTI1LDYgKzEyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqaXBhX3JlZ3MoZW51bSBpcGFfdmVyc2lvbiB2ZXJzaW9uKVxcbiBcXHRjYXNlIElQQV9WRVJTSU9OXzRfMTE6XFxuIFxcdFxcdHJldHVybiBcXHUwMDI2aXBhX3JlZ3NfdjRfMTE7XFxuIFxcdGNhc2UgSVBBX1ZFUlNJT05fNV8wOlxcbitcXHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XFxuIFxcdFxcdHJldHVybiBcXHUwMDI2aXBhX3JlZ3NfdjVfMDtcXG4gXFx0Y2FzZSBJUEFfVkVSU0lPTl81XzU6XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjI0LjYyODAzNTQ3NVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MjI2NjczMDk0ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhYTQ3ZGFiMDQ5MDM1Mjg3NTM0Y2IzNGY5YTY5Njk2Nzk2ZDVhYmJmXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBTZXAgOSAwMzoyMjoyMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuaW5kZXggNjhlYzc2ZmU0NDczNS4uZGI5MWJmYWFmODMzMiAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvcWNvbSxpcGEueWFtbFxuKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sXG5AQCAtNTMsNiArNTMsNyBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIHFjb20sc2R4NjUtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTYzNTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTgzNTAtaXBhXG4rICAgICAgICAgIC0gcWNvbSxzbTg0NTAtaXBhXG4gICAgICAgICAgIC0gcWNvbSxzbTg1NTAtaXBhXG4gICAgICAgLSBpdGVtczpcbiAgICAgICAgICAgLSBlbnVtOlxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuaW5kZXggYjg3OTM0ODJiMTgxNS4uOTViNmZkMjJhODQ2NSAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvcWNvbS9zbTg0NTAuZHRzaVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpXG5AQCAtMjYyNSw2ICsyNjI1LDQ3IEBAIGFkcmVub19zbW11OiBpb21tdUAzZGEwMDAwIHtcbiBcdFx0XHRkbWEtY29oZXJlbnQ7XG4gXHRcdH07XG4gXG4rXHRcdGlwYTogaXBhQDNmNDAwMDAge1xuK1x0XHRcdGNvbXBhdGlibGUgPSBcInFjb20sc204NDUwLWlwYVwiO1xuK1xuK1x0XHRcdHJlZyA9IFx1MDAzYzAgMHgzZjQwMDAwIDAgMHgxMDAwMFx1MDAzZSxcbitcdFx0XHQgICAgICBcdTAwM2MwIDB4M2Y1MDAwMCAwIDB4NTAwMFx1MDAzZSxcbitcdFx0XHQgICAgICBcdTAwM2MwIDB4M2UwNDAwMCAwIDB4ZmMwMDBcdTAwM2U7XG4rXHRcdFx0cmVnLW5hbWVzID0gXCJpcGEtcmVnXCIsXG4rXHRcdFx0XHQgICAgXCJpcGEtc2hhcmVkXCIsXG4rXHRcdFx0XHQgICAgXCJnc2lcIjtcbitcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZhcHBzX3NtbXUgMHg1YzAgMHgwXHUwMDNlLFxuK1x0XHRcdFx0IFx1MDAzY1x1MDAyNmFwcHNfc21tdSAweDVjMiAweDBcdTAwM2U7XG4rXG4rXHRcdFx0aW50ZXJydXB0cy1leHRlbmRlZCA9IFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA2NTQgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmludGMgR0lDX1NQSSA0MzIgSVJRX1RZUEVfTEVWRUxfSElHSFx1MDAzZSxcbitcdFx0XHRcdFx0ICAgICAgXHUwMDNjXHUwMDI2aXBhX3NtcDJwX2luIDAgSVJRX1RZUEVfRURHRV9SSVNJTkdcdTAwM2UsXG4rXHRcdFx0XHRcdCAgICAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9pbiAxIElSUV9UWVBFX0VER0VfUklTSU5HXHUwMDNlO1xuK1x0XHRcdGludGVycnVwdC1uYW1lcyA9IFwiaXBhXCIsXG4rXHRcdFx0XHRcdCAgXCJnc2lcIixcbitcdFx0XHRcdFx0ICBcImlwYS1jbG9jay1xdWVyeVwiLFxuK1x0XHRcdFx0XHQgIFwiaXBhLXNldHVwLXJlYWR5XCI7XG4rXG4rXHRcdFx0Y2xvY2tzID0gXHUwMDNjXHUwMDI2cnBtaGNjIFJQTUhfSVBBX0NMS1x1MDAzZTtcbitcdFx0XHRjbG9jay1uYW1lcyA9IFwiY29yZVwiO1xuK1xuK1x0XHRcdGludGVyY29ubmVjdHMgPSBcdTAwM2NcdTAwMjZhZ2dyZTJfbm9jIE1BU1RFUl9JUEEgMCBcdTAwMjZtY192aXJ0IFNMQVZFX0VCSTEgMFx1MDAzZSxcbitcdFx0XHRcdFx0XHUwMDNjXHUwMDI2Z2VtX25vYyBNQVNURVJfQVBQU1NfUFJPQyAwIFx1MDAyNmNvbmZpZ19ub2MgU0xBVkVfSVBBX0NGRyAwXHUwMDNlO1xuK1x0XHRcdGludGVyY29ubmVjdC1uYW1lcyA9IFwibWVtb3J5XCIsXG4rXHRcdFx0XHRcdCAgICAgXCJjb25maWdcIjtcbitcbitcdFx0XHRxY29tLHFtcCA9IFx1MDAzY1x1MDAyNmFvc3NfcW1wXHUwMDNlO1xuK1xuK1x0XHRcdHFjb20sc21lbS1zdGF0ZXMgPSBcdTAwM2NcdTAwMjZpcGFfc21wMnBfb3V0IDBcdTAwM2UsXG4rXHRcdFx0XHRcdCAgIFx1MDAzY1x1MDAyNmlwYV9zbXAycF9vdXQgMVx1MDAzZTtcbitcdFx0XHRxY29tLHNtZW0tc3RhdGUtbmFtZXMgPSBcImlwYS1jbG9jay1lbmFibGVkLXZhbGlkXCIsXG4rXHRcdFx0XHRcdFx0XCJpcGEtY2xvY2stZW5hYmxlZFwiO1xuK1xuK1x0XHRcdHNyYW0gPSBcdTAwM2NcdTAwMjZpcGFfbW9kZW1fdGFibGVzXHUwMDNlO1xuK1xuK1x0XHRcdHN0YXR1cyA9IFwiZGlzYWJsZWRcIjtcbitcdFx0fTtcbitcbiBcdFx0dXNiXzFfaHNwaHk6IHBoeUA4OGUzMDAwIHtcbiBcdFx0XHRjb21wYXRpYmxlID0gXCJxY29tLHNtODQ1MC11c2ItaHMtcGh5XCIsXG4gXHRcdFx0XHQgICAgIFwicWNvbSx1c2Itc25wcy1ocy03bm0tcGh5XCI7XG5AQCAtNDk1NywyMSArNDk5OCwyNSBAQCBjdGlAMTM5MDAwMDAge1xuIFx0XHRcdGNsb2NrLW5hbWVzID0gXCJhcGJfcGNsa1wiO1xuIFx0XHR9O1xuIFxuLVx0XHRzcmFtQDE0NmFhMDAwIHtcbitcdFx0c3JhbUAxNDY4MDAwMCB7XG4gXHRcdFx0Y29tcGF0aWJsZSA9IFwicWNvbSxzbTg0NTAtaW1lbVwiLCBcInN5c2NvblwiLCBcInNpbXBsZS1tZmRcIjtcbi1cdFx0XHRyZWcgPSBcdTAwM2MwIDB4MTQ2YWEwMDAgMCAweDEwMDBcdTAwM2U7XG4tXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2YWEwMDAgMHgxMDAwXHUwMDNlO1xuK1x0XHRcdHJlZyA9IFx1MDAzYzAgMHgxNDY4MDAwMCAwIDB4NDAwMDBcdTAwM2U7XG4rXHRcdFx0cmFuZ2VzID0gXHUwMDNjMCAwIDB4MTQ2ODAwMDAgMHg0MDAwMFx1MDAzZTtcbiBcbiBcdFx0XHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4gXHRcdFx0I3NpemUtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuIFxuLVx0XHRcdG1pbmlkdW1wX2NvbmZpZzogbWluaWR1bXAtc3JhbUAxYyB7XG4tXHRcdFx0XHRyZWcgPSBcdTAwM2MweDFjIDB4NFx1MDAzZTtcbitcdFx0XHRpcGFfbW9kZW1fdGFibGVzOiBtb2RlbS10YWJsZXNAMjgwMDAge1xuK1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyODAwMCAweDIwMDBcdTAwM2U7XG4rXHRcdFx0fTtcbitcbitcdFx0XHRtaW5pZHVtcF9jb25maWc6IG1pbmlkdW1wLXNyYW1AMmEwMWMge1xuK1x0XHRcdFx0cmVnID0gXHUwMDNjMHgyYTAxYyAweDRcdTAwM2U7XG4gXHRcdFx0fTtcbiBcbi1cdFx0XHRwaWwtcmVsb2NAOTRjIHtcbitcdFx0XHRwaWwtcmVsb2NAMmE5NGMge1xuIFx0XHRcdFx0Y29tcGF0aWJsZSA9IFwicWNvbSxwaWwtcmVsb2MtaW5mb1wiO1xuLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg5NGMgMHhjOFx1MDAzZTtcbitcdFx0XHRcdHJlZyA9IFx1MDAzYzB4MmE5NGMgMHhjOFx1MDAzZTtcbiBcdFx0XHR9O1xuIFx0XHR9O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZSBiL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuaW5kZXggZTE0OGVjM2MxYTEwMS4uZDQ5OTVjMmU4Y2EwMiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9NYWtlZmlsZVxuKysrIGIvZHJpdmVycy9uZXQvaXBhL01ha2VmaWxlXG5AQCAtNyw3ICs3LDcgQEAgSVBBX1JFR19WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS41XG4gIyBTb21lIElQQSB2ZXJzaW9ucyBjYW4gcmV1c2UgYW5vdGhlciBzZXQgb2YgR1NJIHJlZ2lzdGVyIGRlZmluaXRpb25zLlxuIEdTSV9SRUdfVkVSU0lPTlNcdDo9XHQzLjEgMy41LjEgNC4wIDQuNSA0LjkgNC4xMSA1LjBcbiBcbi1JUEFfREFUQV9WRVJTSU9OU1x0Oj1cdDMuMSAzLjUuMSA0LjIgNC41IDQuNyA0LjkgNC4xMSA1LjAgNS4yIDUuNVxuK0lQQV9EQVRBX1ZFUlNJT05TXHQ6PVx0My4xIDMuNS4xIDQuMiA0LjUgNC43IDQuOSA0LjExIDUuMCA1LjEgNS4yIDUuNVxuIFxuIG9iai0kKENPTkZJR19RQ09NX0lQQSlcdCs9XHRpcGEub1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuYyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAuLjdkN2JjMTkzYjc3NGNcbi0tLSAvZGV2L251bGxcbisrKyBiL2RyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY1xuQEAgLTAsMCArMSw0NzYgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuK1xuKy8qIENvcHlyaWdodCAoQykgMjAyMy0yMDI0IExpbmFybyBMdGQuICovXG4rLyogQ29weXJpZ2h0IChDKSAyMDI2IE5hemFyIEtvbXBhbmV0cyBcdTAwM2N4bGllNzY2OUBnbWFpbC5jb21cdTAwM2UgKi9cbisvKiBDb3B5cmlnaHQgKEMpIDIwMjYgRXN0ZWJhbiBVcnJ1dGlhIFx1MDAzY2VzdGV1d3VAcHJvdG9uLm1lXHUwMDNlICovXG4rXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvYXJyYXlfc2l6ZS5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbG9nMi5oXHUwMDNlXG4rXG4rI2luY2x1ZGUgXCIuLi9pcGFfZGF0YS5oXCJcbisjaW5jbHVkZSBcIi4uL2lwYV9lbmRwb2ludC5oXCJcbisjaW5jbHVkZSBcIi4uL2lwYV9tZW0uaFwiXG4rI2luY2x1ZGUgXCIuLi9pcGFfdmVyc2lvbi5oXCJcbitcbisvKiogZW51bSBpcGFfcmVzb3VyY2VfdHlwZSAtIElQQSByZXNvdXJjZSB0eXBlcyBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK2VudW0gaXBhX3Jlc291cmNlX3R5cGUge1xuK1x0LyogU291cmNlIHJlc291cmNlIHR5cGVzOyBmaXJzdCBtdXN0IGhhdmUgdmFsdWUgMCAqL1xuK1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX1BLVF9DT05URVhUU1x0XHQ9IDAsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUUyxcbitcdElQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkYsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfSFBTX0RNQVJTLFxuK1x0SVBBX1JFU09VUkNFX1RZUEVfU1JDX0FDS19FTlRSSUVTLFxuK1xuK1x0LyogRGVzdGluYXRpb24gcmVzb3VyY2UgdHlwZXM7IGZpcnN0IG11c3QgaGF2ZSB2YWx1ZSAwICovXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXHRcdD0gMCxcbitcdElQQV9SRVNPVVJDRV9UWVBFX0RTVF9EUFNfRE1BUlMsXG4rXHRJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfVUxTT19TRUdNRU5UUyxcbit9O1xuK1xuKy8qIFJlc291cmNlIGdyb3VwcyB1c2VkIGZvciBhbiBTb0MgaGF2aW5nIElQQSB2NS4xICovXG4rZW51bSBpcGFfcnNyY19ncm91cF9pZCB7XG4rXHQvKiBTb3VyY2UgcmVzb3VyY2UgZ3JvdXAgaWRlbnRpZmllcnMgKi9cbitcdElQQV9SU1JDX0dST1VQX1NSQ19VTFx0XHRcdFx0PSAwLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RMLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX0RNQSxcbitcdElQQV9SU1JDX0dST1VQX1NSQ19RRFNTLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDLFxuK1x0SVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUMsXG4rXHRJUEFfUlNSQ19HUk9VUF9TUkNfQ09VTlQsXHQvKiBMYXN0IGluIHNldDsgbm90IGEgc291cmNlIGdyb3VwICovXG4rXG4rXHQvKiBEZXN0aW5hdGlvbiByZXNvdXJjZSBncm91cCBpZGVudGlmaWVycyAqL1xuK1x0SVBBX1JTUkNfR1JPVVBfRFNUX1VMXHRcdFx0XHQ9IDAsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfREwsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzIsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzMsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVU5VU0VEXzQsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfVUMsXG4rXHRJUEFfUlNSQ19HUk9VUF9EU1RfRFJCX0lQLFxuK1x0SVBBX1JTUkNfR1JPVVBfRFNUX0NPVU5ULFx0LyogTGFzdDsgbm90IGEgZGVzdGluYXRpb24gZ3JvdXAgKi9cbit9O1xuK1xuKy8qIFFTQiBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9xc2JfZGF0YSBpcGFfcXNiX2RhdGFbXSA9IHtcbitcdFtJUEFfUVNCX01BU1RFUl9ERFJdID0ge1xuK1x0XHQubWF4X3dyaXRlc1x0XHQ9IDAsXG4rXHRcdC5tYXhfcmVhZHNcdFx0PSAwLFx0Lyogbm8gbGltaXQgKGhhcmR3YXJlIG1heCkgKi9cbitcdFx0Lm1heF9yZWFkc19iZWF0c1x0PSAwLFxuK1x0fSxcbitcdFtJUEFfUVNCX01BU1RFUl9QQ0lFXSA9IHtcbitcdFx0Lm1heF93cml0ZXNcdFx0PSAwLFxuK1x0XHQubWF4X3JlYWRzXHRcdD0gMCxcdC8qIG5vIGxpbWl0IChoYXJkd2FyZSBtYXgpICovXG4rXHRcdC5tYXhfcmVhZHNfYmVhdHNcdD0gMCxcbitcdH0sXG4rfTtcbitcbisvKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSBpcGFfZ3NpX2VuZHBvaW50X2RhdGFbXSA9IHtcbitcdFtJUEFfRU5EUE9JTlRfQVBfQ09NTUFORF9UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMTIsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAxNCxcbitcdFx0LnRvd2FyZF9pcGFcdD0gdHJ1ZSxcbitcdFx0LmNoYW5uZWwgPSB7XG4rXHRcdFx0LnRyZV9jb3VudFx0PSAyNTYsXG4rXHRcdFx0LmV2ZW50X2NvdW50XHQ9IDI1NixcbitcdFx0XHQudGx2X2NvdW50XHQ9IDIwLFxuK1x0XHR9LFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmNvbmZpZyA9IHtcbitcdFx0XHRcdC5yZXNvdXJjZV9ncm91cFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfVUwsXG4rXHRcdFx0XHQuZG1hX21vZGVcdD0gdHJ1ZSxcbitcdFx0XHRcdC5kbWFfZW5kcG9pbnRcdD0gSVBBX0VORFBPSU5UX0FQX0xBTl9SWCxcbitcdFx0XHRcdC50eCA9IHtcbitcdFx0XHRcdFx0LnNlcV90eXBlID0gSVBBX1NFUV9ETUEsXG4rXHRcdFx0XHR9LFxuK1x0XHRcdH0sXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9BUF9MQU5fUlhdID0ge1xuK1x0XHQuZWVfaWRcdFx0PSBHU0lfRUVfQVAsXG4rXHRcdC5jaGFubmVsX2lkXHQ9IDEzLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMTYsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuK1x0XHRcdC50bHZfY291bnRcdD0gOSxcbitcdFx0fSxcbitcdFx0LmVuZHBvaW50ID0ge1xuK1x0XHRcdC5jb25maWcgPSB7XG4rXHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuK1x0XHRcdFx0LmFnZ3JlZ2F0aW9uXHQ9IHRydWUsXG4rXHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuK1x0XHRcdFx0LnJ4ID0ge1xuK1x0XHRcdFx0XHQuYnVmZmVyX3NpemVcdD0gODE5MixcbitcdFx0XHRcdFx0LnBhZF9hbGlnblx0PSBpbG9nMihzaXplb2YodTMyKSksXG4rXHRcdFx0XHRcdC5hZ2dyX3RpbWVfbGltaXQgPSA1MDAsXG4rXHRcdFx0XHR9LFxuK1x0XHRcdH0sXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9BUF9NT0RFTV9UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9BUCxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMTEsXG4rXHRcdC5lbmRwb2ludF9pZFx0PSAyLFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDUxMixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gNTEyLFxuK1x0XHRcdC50bHZfY291bnRcdD0gMjUsXG4rXHRcdH0sXG4rXHRcdC5lbmRwb2ludCA9IHtcbitcdFx0XHQuZmlsdGVyX3N1cHBvcnRcdD0gdHJ1ZSxcbitcdFx0XHQuY29uZmlnID0ge1xuK1x0XHRcdFx0LnJlc291cmNlX2dyb3VwXHQ9IElQQV9SU1JDX0dST1VQX1NSQ19VTCxcbitcdFx0XHRcdC5jaGVja3N1bSAgICAgICA9IHRydWUsXG4rXHRcdFx0XHQucW1hcFx0XHQ9IHRydWUsXG4rXHRcdFx0XHQuc3RhdHVzX2VuYWJsZVx0PSB0cnVlLFxuK1x0XHRcdFx0LnR4ID0ge1xuK1x0XHRcdFx0XHQuc2VxX3R5cGUgPSBJUEFfU0VRXzJfUEFTU19TS0lQX0xBU1RfVUMsXG4rXHRcdFx0XHRcdC5zdGF0dXNfZW5kcG9pbnQgPVxuK1x0XHRcdFx0XHRcdElQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWCxcbitcdFx0XHRcdH0sXG4rXHRcdFx0fSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX0FQX01PREVNX1JYXSA9IHtcbitcdFx0LmVlX2lkXHRcdD0gR1NJX0VFX0FQLFxuK1x0XHQuY2hhbm5lbF9pZFx0PSAxLFxuK1x0XHQuZW5kcG9pbnRfaWRcdD0gMjMsXG4rXHRcdC50b3dhcmRfaXBhXHQ9IGZhbHNlLFxuK1x0XHQuY2hhbm5lbCA9IHtcbitcdFx0XHQudHJlX2NvdW50XHQ9IDI1NixcbitcdFx0XHQuZXZlbnRfY291bnRcdD0gMjU2LFxuK1x0XHRcdC50bHZfY291bnRcdD0gOSxcbitcdFx0fSxcbitcdFx0LmVuZHBvaW50ID0ge1xuK1x0XHRcdC5jb25maWcgPSB7XG4rXHRcdFx0XHQucmVzb3VyY2VfZ3JvdXBcdD0gSVBBX1JTUkNfR1JPVVBfRFNUX1VMLFxuK1x0XHRcdFx0LmNoZWNrc3VtICAgICAgID0gdHJ1ZSxcbitcdFx0XHRcdC5xbWFwXHRcdD0gdHJ1ZSxcbitcdFx0XHRcdC5hZ2dyZWdhdGlvblx0PSB0cnVlLFxuK1x0XHRcdFx0LnJ4ID0ge1xuK1x0XHRcdFx0XHQuYnVmZmVyX3NpemVcdD0gODE5MixcbitcdFx0XHRcdFx0LmFnZ3JfdGltZV9saW1pdCA9IDUwMCxcbitcdFx0XHRcdFx0LmFnZ3JfY2xvc2VfZW9mXHQ9IHRydWUsXG4rXHRcdFx0XHR9LFxuK1x0XHRcdH0sXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9NT0RFTSxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMCxcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDEyLFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9FTkRQT0lOVF9NT0RFTV9BUF9SWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9NT0RFTSxcbitcdFx0LmNoYW5uZWxfaWRcdD0gNyxcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDIxLFxuK1x0XHQudG93YXJkX2lwYVx0PSBmYWxzZSxcbitcdH0sXG4rXHRbSVBBX0VORFBPSU5UX01PREVNX0RMX05MT19UWF0gPSB7XG4rXHRcdC5lZV9pZFx0XHQ9IEdTSV9FRV9NT0RFTSxcbitcdFx0LmNoYW5uZWxfaWRcdD0gMixcbitcdFx0LmVuZHBvaW50X2lkXHQ9IDE1LFxuK1x0XHQudG93YXJkX2lwYVx0PSB0cnVlLFxuK1x0XHQuZW5kcG9pbnQgPSB7XG4rXHRcdFx0LmZpbHRlcl9zdXBwb3J0XHQ9IHRydWUsXG4rXHRcdH0sXG4rXHR9LFxuK307XG4rXG4rLyogU291cmNlIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9zcmNbXSA9IHtcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfUEtUX0NPTlRFWFRTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuK1x0XHRcdC5taW4gPSA3LFx0Lm1heCA9IDEyLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDEsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfREVTQ1JJUFRPUl9MSVNUU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VMXSA9IHtcbitcdFx0XHQubWluID0gMjEsXHQubWF4ID0gMjEsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VSTExDXSA9IHtcbitcdFx0XHQubWluID0gMTAsXHQubWF4ID0gMTAsXG4rXHRcdH0sXG4rXHR9LFxuK1x0W0lQQV9SRVNPVVJDRV9UWVBFX1NSQ19ERVNDUklQVE9SX0JVRkZdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDMzLFx0Lm1heCA9IDMzLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDIwLFx0Lm1heCA9IDIwLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfSFBTX0RNQVJTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfVUxdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0XHQvKiBNYXJrZWQgYXMgdW51c2VkIGRvd25zdHJlYW0gKi9cbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9TUkNfRE1BXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdFx0LyogTWFya2VkIGFzIHVudXNlZCBkb3duc3RyZWFtICovXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1FEU1NdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDEsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfU1JDX1VfUlhfUUNdID0ge1xuK1x0XHRcdC5taW4gPSAwLFx0Lm1heCA9IDYzLFxuK1x0XHR9LFxuK1x0fSxcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9TUkNfQUNLX0VOVFJJRVNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDM4LFx0Lm1heCA9IDM4LFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX1NSQ19VUkxMQ10gPSB7XG4rXHRcdFx0Lm1pbiA9IDE2LFx0Lm1heCA9IDE2LFxuK1x0XHR9LFxuK1x0fSxcbit9O1xuK1xuKy8qIERlc3RpbmF0aW9uIHJlc291cmNlIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX3Jlc291cmNlIGlwYV9yZXNvdXJjZV9kc3RbXSA9IHtcbitcdFtJUEFfUkVTT1VSQ0VfVFlQRV9EU1RfREFUQV9TRUNUT1JTXSA9IHtcbitcdFx0LmxpbWl0c1tJUEFfUlNSQ19HUk9VUF9EU1RfVUxdID0ge1xuK1x0XHRcdC5taW4gPSA2LFx0Lm1heCA9IDYsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbitcdFx0XHQubWluID0gNSxcdC5tYXggPSA1LFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9EUkJfSVBdID0ge1xuK1x0XHRcdC5taW4gPSAzOSxcdC5tYXggPSAzOSxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX0RQU19ETUFSU10gPSB7XG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX1VMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSAzLFxuK1x0XHR9LFxuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9ETF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gMyxcbitcdFx0fSxcbitcdH0sXG4rXHRbSVBBX1JFU09VUkNFX1RZUEVfRFNUX1VMU09fU0VHTUVOVFNdID0ge1xuK1x0XHQubGltaXRzW0lQQV9SU1JDX0dST1VQX0RTVF9VTF0gPSB7XG4rXHRcdFx0Lm1pbiA9IDAsXHQubWF4ID0gNjMsXG4rXHRcdH0sXG4rXHRcdC5saW1pdHNbSVBBX1JTUkNfR1JPVVBfRFNUX0RMXSA9IHtcbitcdFx0XHQubWluID0gMCxcdC5tYXggPSA2MyxcbitcdFx0fSxcbitcdH0sXG4rfTtcbitcbisvKiBSZXNvdXJjZSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9yZXNvdXJjZV9kYXRhIGlwYV9yZXNvdXJjZV9kYXRhID0ge1xuK1x0LnJzcmNfZ3JvdXBfZHN0X2NvdW50XHQ9IElQQV9SU1JDX0dST1VQX0RTVF9DT1VOVCxcbitcdC5yc3JjX2dyb3VwX3NyY19jb3VudFx0PSBJUEFfUlNSQ19HUk9VUF9TUkNfQ09VTlQsXG4rXHQucmVzb3VyY2Vfc3JjX2NvdW50XHQ9IEFSUkFZX1NJWkUoaXBhX3Jlc291cmNlX3NyYyksXG4rXHQucmVzb3VyY2Vfc3JjXHRcdD0gaXBhX3Jlc291cmNlX3NyYyxcbitcdC5yZXNvdXJjZV9kc3RfY291bnRcdD0gQVJSQVlfU0laRShpcGFfcmVzb3VyY2VfZHN0KSxcbitcdC5yZXNvdXJjZV9kc3RcdFx0PSBpcGFfcmVzb3VyY2VfZHN0LFxuK307XG4rXG4rLyogSVBBLXJlc2lkZW50IG1lbW9yeSByZWdpb24gZGF0YSBmb3IgYW4gU29DIGhhdmluZyBJUEEgdjUuMSAqL1xuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXBhX21lbSBpcGFfbWVtX2xvY2FsX2RhdGFbXSA9IHtcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9VQ19FVkVOVF9SSU5HLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgwMDAwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MTAwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9VQ19TSEFSRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDEwMDAsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDgwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1VDX0lORk8sXG4rXHRcdC5vZmZzZXRcdFx0PSAweDEwODAsXG4rXHRcdC5zaXplXHRcdD0gMHgwMjAwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X0ZJTFRFUl9IQVNIRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDEyODgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDc4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X0ZJTFRFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTMwOCxcbitcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfRklMVEVSX0hBU0hFRCxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTM4OCxcbitcdFx0LnNpemVcdFx0PSAweDAwNzgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fVjZfRklMVEVSLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxNDA4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA3OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNF9ST1VURV9IQVNIRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE0ODgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y0X1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxNTI4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9WNl9ST1VURV9IQVNIRUQsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE1YzgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDk4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1Y2X1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgxNjY4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDA5OCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9IRUFERVIsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDE3MDgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMjQwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX0hFQURFUixcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MTk0OCxcbitcdFx0LnNpemVcdFx0PSAweDAxZTAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fTU9ERU1fUFJPQ19DVFgsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDFiNDAsXG4rXHRcdC5zaXplXHRcdD0gMHgwYjIwLFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDIsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX0FQX1BST0NfQ1RYLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyNjYwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDIwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19RVU9UQV9NT0RFTSxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4Mjg2OCxcbitcdFx0LnNpemVcdFx0PSAweDAwNjAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfUVVPVEFfQVAsXG4rXHRcdC5vZmZzZXRcdFx0PSAweDI4YzgsXG4rXHRcdC5zaXplXHRcdD0gMHgwMDQ4LFxuK1x0XHQuY2FuYXJ5X2NvdW50XHQ9IDAsXG4rXHR9LFxuK1x0e1xuK1x0XHQuaWRcdFx0PSBJUEFfTUVNX1NUQVRTX1RFVEhFUklORyxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4MjkxMCxcbitcdFx0LnNpemVcdFx0PSAweDAzYzAsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMCxcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fU1RBVFNfRklMVEVSX1JPVVRFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgyY2QwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MGJhMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9TVEFUU19EUk9QLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHgzODcwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDAyMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTSxcbitcdFx0Lm9mZnNldFx0XHQ9IDB4Mzg5OCxcbitcdFx0LnNpemVcdFx0PSAweDBkNDgsXG4rXHRcdC5jYW5hcnlfY291bnRcdD0gMixcbitcdH0sXG4rXHR7XG4rXHRcdC5pZFx0XHQ9IElQQV9NRU1fTkFUX1RBQkxFLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0NWUwLFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDkwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9QRE5fQ09ORklHLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0ZWU4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDEwMCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAyLFxuK1x0fSxcbitcdHtcbitcdFx0LmlkXHRcdD0gSVBBX01FTV9NT0RFTV9TVEFUU19EUk9QLFxuK1x0XHQub2Zmc2V0XHRcdD0gMHg0ZmU4LFxuK1x0XHQuc2l6ZVx0XHQ9IDB4MDAxOCxcbitcdFx0LmNhbmFyeV9jb3VudFx0PSAwLFxuK1x0fSxcbit9O1xuK1xuKy8qIE1lbW9yeSBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9tZW1fZGF0YSBpcGFfbWVtX2RhdGEgPSB7XG4rXHQubG9jYWxfY291bnRcdD0gQVJSQVlfU0laRShpcGFfbWVtX2xvY2FsX2RhdGEpLFxuK1x0LmxvY2FsXHRcdD0gaXBhX21lbV9sb2NhbF9kYXRhLFxuK1x0LmltZW1fYWRkclx0PSAweDE0NmE4MDAwLFxuK1x0LmltZW1fc2l6ZVx0PSAweDAwMDAyMDAwLFxuK1x0LnNtZW1fc2l6ZVx0PSAweDAwMDA5MDAwLFxuK307XG4rXG4rLyogSW50ZXJjb25uZWN0IHJhdGVzIGFyZSBpbiAxMDAwIGJ5dGUvc2Vjb25kIHVuaXRzICovXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBpcGFfaW50ZXJjb25uZWN0X2RhdGEgaXBhX2ludGVyY29ubmVjdF9kYXRhW10gPSB7XG4rXHR7XG4rXHRcdC5uYW1lXHRcdFx0PSBcIm1lbW9yeVwiLFxuK1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSAxOTAwMDAwLFx0LyogMS45IEdCcHMgKi9cbitcdFx0LmF2ZXJhZ2VfYmFuZHdpZHRoXHQ9IDU5MDAwMCxcdC8qIDU5MCBNQnBzICovXG4rXHR9LFxuK1x0LyogQXZlcmFnZSByYXRlIGlzIHVudXNlZCBmb3IgdGhlIG5leHQgaW50ZXJjb25uZWN0ICovXG4rXHR7XG4rXHRcdC5uYW1lXHRcdFx0PSBcImNvbmZpZ1wiLFxuK1x0XHQucGVha19iYW5kd2lkdGhcdFx0PSA3NjgwMCxcdC8qIDc2LjggTUJwcyAqL1xuK1x0XHQuYXZlcmFnZV9iYW5kd2lkdGhcdD0gMCxcdFx0LyogdW51c2VkICovXG4rXHR9LFxuK307XG4rXG4rLyogQ2xvY2sgYW5kIGludGVyY29ubmVjdCBjb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEgKi9cbitzdGF0aWMgY29uc3Qgc3RydWN0IGlwYV9wb3dlcl9kYXRhIGlwYV9wb3dlcl9kYXRhID0ge1xuK1x0LmNvcmVfY2xvY2tfcmF0ZVx0PSAxMjAgKiAxMDAwICogMTAwMCxcdC8qIEh6ICovXG4rXHQuaW50ZXJjb25uZWN0X2NvdW50XHQ9IEFSUkFZX1NJWkUoaXBhX2ludGVyY29ubmVjdF9kYXRhKSxcbitcdC5pbnRlcmNvbm5lY3RfZGF0YVx0PSBpcGFfaW50ZXJjb25uZWN0X2RhdGEsXG4rfTtcbitcbisvKiBDb25maWd1cmF0aW9uIGRhdGEgZm9yIGFuIFNvQyBoYXZpbmcgSVBBIHY1LjEuICovXG4rY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzEgPSB7XG4rXHQudmVyc2lvblx0XHQ9IElQQV9WRVJTSU9OXzVfMSxcbitcdC5xc2JfY291bnRcdFx0PSBBUlJBWV9TSVpFKGlwYV9xc2JfZGF0YSksXG4rXHQucXNiX2RhdGFcdFx0PSBpcGFfcXNiX2RhdGEsXG4rXHQubW9kZW1fcm91dGVfY291bnRcdD0gMTEsXG4rXHQuZW5kcG9pbnRfY291bnRcdFx0PSBBUlJBWV9TSVpFKGlwYV9nc2lfZW5kcG9pbnRfZGF0YSksXG4rXHQuZW5kcG9pbnRfZGF0YVx0XHQ9IGlwYV9nc2lfZW5kcG9pbnRfZGF0YSxcbitcdC5yZXNvdXJjZV9kYXRhXHRcdD0gXHUwMDI2aXBhX3Jlc291cmNlX2RhdGEsXG4rXHQubWVtX2RhdGFcdFx0PSBcdTAwMjZpcGFfbWVtX2RhdGEsXG4rXHQucG93ZXJfZGF0YVx0XHQ9IFx1MDAyNmlwYV9wb3dlcl9kYXRhLFxuK307XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuYyBiL2RyaXZlcnMvbmV0L2lwYS9nc2lfcmVnLmNcbmluZGV4IGUxM2NmODM1YTAxM2MuLmE1NzA3MmJhNGJlZjYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvZ3NpX3JlZy5jXG5AQCAtMTEwLDYgKzExMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVncyAqZ3NpX3JlZ3Moc3RydWN0IGdzaSAqZ3NpKVxuIFx0XHRyZXR1cm4gXHUwMDI2Z3NpX3JlZ3NfdjRfMTE7XG4gXG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfMDpcbitcdGNhc2UgSVBBX1ZFUlNJT05fNV8xOlxuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzI6XG4gXHRjYXNlIElQQV9WRVJTSU9OXzVfNTpcbiBcdFx0cmV0dXJuIFx1MDAyNmdzaV9yZWdzX3Y1XzA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXBhL2lwYV9kYXRhLmggYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuaW5kZXggM2ViOWRjMmNlMzM5OC4uZmU2ZjdkNWJmZTg4YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oXG4rKysgYi9kcml2ZXJzL25ldC9pcGEvaXBhX2RhdGEuaFxuQEAgLTI1Myw2ICsyNTMsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y0Xzc7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NF85O1xuIGV4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjRfMTE7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV8wO1xuK2V4dGVybiBjb25zdCBzdHJ1Y3QgaXBhX2RhdGEgaXBhX2RhdGFfdjVfMTtcbiBleHRlcm4gY29uc3Qgc3RydWN0IGlwYV9kYXRhIGlwYV9kYXRhX3Y1XzI7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBpcGFfZGF0YSBpcGFfZGF0YV92NV81O1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbmluZGV4IDE0YWMyZDJmYWY3YzIuLjg0YmVjNDYxZDIyY2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9tYWluLmNcbkBAIC02NzIsNiArNjcyLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwYV9tYXRjaFtdID0ge1xuIFx0XHQuY29tcGF0aWJsZVx0PSBcInFjb20sc2R4NjUtaXBhXCIsXG4gXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMCxcbiBcdH0sXG4rXHR7XG4rXHRcdC5jb21wYXRpYmxlXHQ9IFwicWNvbSxzbTg0NTAtaXBhXCIsXG4rXHRcdC5kYXRhXHRcdD0gXHUwMDI2aXBhX2RhdGFfdjVfMSxcbitcdH0sXG4gXHR7XG4gXHRcdC5jb21wYXRpYmxlXHQ9IFwicWNvbSxtaWxvcy1pcGFcIixcbiBcdFx0LmRhdGFcdFx0PSBcdTAwMjZpcGFfZGF0YV92NV8yLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwYS9pcGFfcmVnLmMgYi9kcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jXG5pbmRleCAzMGJkNjlmNGMxNDdjLi41ZjIyY2E2Mjk1YjE2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuKysrIGIvZHJpdmVycy9uZXQvaXBhL2lwYV9yZWcuY1xuQEAgLTEyNSw2ICsxMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ3MgKmlwYV9yZWdzKGVudW0gaXBhX3ZlcnNpb24gdmVyc2lvbilcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNF8xMTpcbiBcdFx0cmV0dXJuIFx1MDAyNmlwYV9yZWdzX3Y0XzExO1xuIFx0Y2FzZSBJUEFfVkVSU0lPTl81XzA6XG4rXHRjYXNlIElQQV9WRVJTSU9OXzVfMTpcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV8yOlxuIFx0XHRyZXR1cm4gXHUwMDI2aXBhX3JlZ3NfdjVfMDtcbiBcdGNhc2UgSVBBX1ZFUlNJT05fNV81OlxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6MjQuNjI4MDM2NTA1WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDIyMTI1NTgyMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIElQIEFjY2VsZXJhdG9yIFBhdGNoIGZvciBTTTg0NTAqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaCBzZXJpZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBicmVhayBkb3duIGVhY2ggcGllY2UgYW5kIGdldCBhIGNsZWFyIHBpY3R1cmUgb2Ygd2hhdCdzIGJlaW5nIGludHJvZHVjZWQgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciBkcml2ZXIsIHRhcmdldGluZyB0aGUgYW1kNjQgYXJjaGl0ZWN0dXJlIOKAkyBpdCdzIGltcG9ydGFudCB0byBrZWVwIHRoYXQgY29udGV4dCBpbiBtaW5kLlxuXG5GaXJzdCwgdGhlIERldmljZSBUcmVlIGJpbmRpbmdzIGZpbGUsIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3Fjb20saXBhLnlhbWxgLCBoYXMgYSBuZXcgY29tcGF0aWJsZSBzdHJpbmcsIGBxY29tLHNtODQ1MC1pcGFgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHRoaXMgaXMgc3BlY2lmaWNhbGx5IGZvciB0aGUgU004NDUwIHBsYXRmb3JtLiBNYWtlcyBzZW5zZS4gVGhlbiwgdGhlIFNNODQ1MCBEVFMgaXRzZWxmLCBgYXJjaC9hcm02NC9ib290L2R0cy9xY29tL3NtODQ1MC5kdHNpYCwgbm93IGluY2x1ZGVzIGFuIGBpcGFgIG5vZGUgYW5kIHVwZGF0ZXMgdG8gdGhlIGBzcmFtYCBub2RlLiBUaGF0J3Mgd2hlcmUgdGhlIGhhcmR3YXJlIGRlc2NyaXB0aW9uIGdldHMgZGVmaW5lZC5cblxuTmV4dCwgdGhlIE1ha2VmaWxlIGluIHRoZSBgZHJpdmVycy9uZXQvaXBhYCBkaXJlY3RvcnkgaXMgdXBkYXRlZCB0byBpbmNsdWRlIHZlcnNpb24gNS4xIGluIGBJUEFfREFUQV9WRVJTSU9OU2AsIHdoaWNoIHRlbGxzIG1lIHRoZXJlJ3MgYSBuZXcgZGF0YSB2ZXJzaW9uIGJlaW5nIGFkZGVkLiBGb2xsb3dpbmcgdGhhdCwgYGRyaXZlcnMvbmV0L2lwYS9kYXRhL2lwYV9kYXRhLXY1LjEuY2AgZGVmaW5lcyB0aGUgYWN0dWFsIGNvbmZpZ3VyYXRpb24gZGF0YSBmb3IgdGhlIElQIEFjY2VsZXJhdG9yIGZvciB0aGUgU004NDUwLiBHb29kLCBub3cgSSBrbm93IHRoZSBkZXRhaWxzLlxuXG5UaGUgY29kZSBpbiBgZHJpdmVycy9uZXQvaXBhL2dzaV9yZWcuY2AgYW5kIGBkcml2ZXJzL25ldC9pcGEvaXBhX3JlZy5jYCBpbmNsdWRlcyBoYW5kbGluZyBmb3IgYElQQV9WRVJTSU9OXzVfMWAuIFRoZXNlIGZpbGVzIGFyZSBjbGVhcmx5IGNvbmNlcm5lZCB3aXRoIHRoZSByZWdpc3RlciBpbnRlcmFjdGlvbiBhbmQgdmVyc2lvbi1zcGVjaWZpYyBsb2dpYy4gVGhlIGluY2x1ZGUgZmlsZSwgYGRyaXZlcnMvbmV0L2lwYS9pcGFfZGF0YS5oYCwgY29udGFpbnMgdGhlIGV4dGVybiBkZWNsYXJhdGlvbiBmb3IgdGhlIG5ldyBkYXRhIHN0cnVjdHVyZSwgYGlwYV9kYXRhX3Y1XzFgLCB3aGljaCBtYWtlcyBzZW5zZSBhcyB0aGlzIGlzIHRoZSBuZXcgZGF0YS5cblxuRmluYWxseSwgaW4gYGRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jYCwgdGhlcmUncyBhIG5ldyBlbnRyeSBpbiBgaXBhX21hdGNoYDogYHsgLmNvbXBhdGlibGUgPSBcInFjb20sc204NDUwLWlwYVwiLCAuZGF0YSA9IFx1MDAyNmlwYV9kYXRhX3Y1XzEgfWAuIFRoaXMgaXMgdGhlIGNyaXRpY2FsIHBpZWNlIHRoYXQgdGllcyBpdCBhbGwgdG9nZXRoZXIg4oCTIGFzc29jaWF0aW5nIHRoZSBuZXcgY29tcGF0aWJsZSBzdHJpbmcgd2l0aCB0aGUgY29uZmlndXJhdGlvbiBkYXRhIGZvciB0aGlzIHNwZWNpZmljIFNNODQ1MCBoYXJkd2FyZS4gSXQgYWxzbyBsb29rcyBsaWtlIHRoZSBjb21wYXRpYmxlIHZhbHVlIGlzIHNldCBieSB0aGUgcGxhdGZvcm0gb3IgYm9hcmQuXG5cbkJlZm9yZSBJIGdvIGZ1cnRoZXIsIEkgc2hvdWxkIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBDT05GSUdfUUNPTV9JUEFgLiBJIG5lZWQgdG8gdmVyaWZ5IGl0cyBkZXBlbmRlbmNpZXMsIHRoZSBjb25kaXRpb25zIGZvciBpdHMgY29tcGlsYXRpb24sIGFuZCB3aGF0IGJpbmRpbmdzIHRoaXMgY29uZmlndXJhdGlvbiBmbGFnIHJlbGllcyBvbi4gVGhpcyBoZWxwcyB1bmRlcnN0YW5kIHRoZSB3aWRlciBjb250ZXh0IGFuZCBhbnkgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBmb3IgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMgb3Igb3RoZXIgUXVhbGNvbW0tcmVsYXRlZCBkcml2ZXJzLiBJdCdzIGFsc28gcG9zc2libGUgdG8gZGlzY292ZXIgb3RoZXIgaW50ZXJhY3Rpb25zIGJhc2VkIG9uIGRlcGVuZGVuY3kgY2hlY2tzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMTI4NywiT3V0cHV0VG9rZW5zIjoxOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjI4Ljg0OTI5NTAzNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjM1OTE2MDg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBRQ09NX0lQQVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcGEvS2NvbmZpZzoxOmNvbmZpZyBRQ09NX0lQQVxcbmRyaXZlcnMvbmV0L2lwYS9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlF1YWxjb21tIElQQSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjozMC40ODUyMTc3MDFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozNjQ5MjAyMTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IEtjb25maWcgZmlsZTpcblxuKipEaXZpbmcgaW50byB0aGUgSVBBIE5ldHdvcmsgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gY3JhY2sgb3BlbiBgZHJpdmVycy9uZXQvaXBhL0tjb25maWdgLiBUaGlzIGlzIHdoZXJlIHRoZSBjb3JlIG9mIHRoZSBJUEEgKGxpa2VseSwgSW4tUHJvY2VzcyBBY2NlbGVyYXRvciwgb3Igc29tZXRoaW5nIHNpbWlsYXIgaW4gbmV0d29ya2luZykgbmV0d29yayBkcml2ZXIgY29uZmlndXJhdGlvbiBsaXZlcy4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB3aGF0IGZlYXR1cmVzIGFyZSBlbmFibGVkLCB3aGF0IGRlcGVuZGVuY2llcyB0aGV5IGhhdmUsIGFuZCBob3cgaXQgYWxsIGZpdHMgaW50byB0aGUgYmlnZ2VyIHBpY3R1cmUgb2YgdGhlIG5ldHdvcmtpbmcgc3Vic3lzdGVtLlxuXG5GaXJzdCwgSSdsbCBiZSBsb29raW5nIGZvciB0aGUgbWFpbiBgY29uZmlnYCBzeW1ib2wgdGhhdCBjb250cm9scyB0aGUgZW50aXJlIElQQSBkcml2ZXIuIEl0J2xsIHByb2JhYmx5IGhhdmUgYSBuYW1lIGxpa2UgYENPTkZJR19JUEFgIG9yIHNvbWV0aGluZyBlcXVhbGx5IGRlc2NyaXB0aXZlLiBPbmNlIEkgZmluZCB0aGF0LCBJIGNhbiB3b3JrIG15IHdheSBkb3duIHRoZSB0cmVlLiBJIGV4cGVjdCB0byBzZWUgbmVzdGVkIGBjb25maWdgIG9wdGlvbnMgZm9yIGluZGl2aWR1YWwgZmVhdHVyZXMsIG1heWJlIHJlbGF0ZWQgdG8gZGlmZmVyZW50IElQQSBoYXJkd2FyZSByZXZpc2lvbnMsIHZhcmlvdXMgb2ZmbG9hZCBjYXBhYmlsaXRpZXMgKGNoZWNrc3VtLCBzZWdtZW50YXRpb24sIGV0Yy4pLCBzcGVjaWZpYyBQSFkgc3VwcG9ydCBpZiBhcHBsaWNhYmxlLCBvciBldmVuIGRpZmZlcmVudCBvcGVyYXRpb25hbCBtb2Rlcy5cblxuSSdsbCBiZSBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvIGFueSBgZGVwZW5kcyBvbmAgY2xhdXNlcy4gVGhlc2UgYXJlIGNydWNpYWwuIFRoZXkgdGVsbCBtZSB0aGUgcHJlcmVxdWlzaXRlcyDigJMgb3RoZXIga2VybmVsIG1vZHVsZXMsIGZlYXR1cmVzLCBvciBoYXJkd2FyZSBzdXBwb3J0IOKAkyB0aGF0IG5lZWQgdG8gYmUgZW5hYmxlZCBiZWZvcmUgSSBjYW4gZXZlbiAqY29uc2lkZXIqIGVuYWJsaW5nIGEgcGFydGljdWxhciBJUEEgZmVhdHVyZS4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGtleSB0byBhdm9pZGluZyBjb25maWd1cmF0aW9uIGNvbmZsaWN0cyBhbmQgYnVpbGRpbmcgYSB3b3JraW5nIHN5c3RlbS5cblxuSSdtIGFsc28gZXhwZWN0aW5nIHRvIHNlZSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCB3aGljaCBhdXRvbWF0aWNhbGx5IGVuYWJsZSBvdGhlciBjb25maWd1cmF0aW9uIHN5bWJvbHMgaWYgdGhlIGN1cnJlbnQgb25lIGlzIGNob3Nlbi4gVGhpcyBpcyBjb21tb24gZm9yIGVuYWJsaW5nIGRlcGVuZGVudCBjb21wb25lbnRzIGxpa2UgaGVscGVyIGZ1bmN0aW9ucywgaGVhZGVyIGZpbGVzLCBvciBjb3JlIGRyaXZlciBtb2R1bGVzLlxuXG5BcyBhbiBleHBlcnQgaW4gZW1iZWRkZWQgbmV0d29ya2luZywgSSdsbCBhbHNvIGJlIG9uIHRoZSBsb29rb3V0IGZvciBkZWZhdWx0IHZhbHVlcyAoYGRlZmF1bHRgKSBmb3IgdGhlIHZhcmlvdXMgb3B0aW9ucy4gVGhlc2UgZ2l2ZSBtZSBhIHNlbnNlIG9mIHdoYXQgdGhlIGRldmVsb3BlcnMgY29uc2lkZXIgdGhlIFwiY29tbW9uIGNhc2VcIiBjb25maWd1cmF0aW9uLiBJJ2xsIG5lZWQgdG8gdGhpbmsgYWJvdXQgd2hldGhlciB0aG9zZSBkZWZhdWx0cyBhcmUgYXBwcm9wcmlhdGUgZm9yIG15IHRhcmdldCBzeXN0ZW0uXG5cbkZpbmFsbHksIEknbGwgYmUgc2Nhbm5pbmcgZm9yIGFueSBgaGVscGAgdGV4dC4gV2hpbGUgaXQgd29uJ3QgcmVwbGFjZSBhIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZGVlcCBkaXZlLCB0aGUgaGVscCB0ZXh0IG9mdGVuIHByb3ZpZGVzIHZhbHVhYmxlIGNsdWVzIGFzIHRvIHRoZSBwdXJwb3NlIG9mIGEgY29uZmlndXJhdGlvbiBvcHRpb24sIGl0cyBpbnRlbmRlZCB1c2FnZSwgYW5kIHBvc3NpYmxlIHRyYWRlLW9mZnMuIEl0IGNhbiBvZnRlbiBoaWdobGlnaHQgdGhlIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucyBvZiBjZXJ0YWluIGNob2ljZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMjgyLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6MzQuMTM0NDIzMzUzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg4NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvaXBhL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHRjb25maWcgUUNPTV9JUEFcXG4gICAyOlxcdFxcdHRyaXN0YXRlIFxcXCJRdWFsY29tbSBJUEEgc3VwcG9ydFxcXCJcXG4gICAzOlxcdFxcdGRlcGVuZHMgb24gTkVUIFxcdTAwMjZcXHUwMDI2IFFDT01fU01FTVxcbiAgIDQ6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX1FDT00gfHwgQ09NUElMRV9URVNUXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIElOVEVSQ09OTkVDVFxcbiAgIDY6XFx0XFx0ZGVwZW5kcyBvbiBRQ09NX1JQUk9DX0NPTU1PTiB8fCAoUUNPTV9SUFJPQ19DT01NT049biBcXHUwMDI2XFx1MDAyNiBDT01QSUxFX1RFU1QpXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIFFDT01fQU9TU19RTVAgfHwgUUNPTV9BT1NTX1FNUD1uXFxuICAgODpcXHRcXHRzZWxlY3QgUUNPTV9NRFRfTE9BREVSXFxuICAgOTpcXHRcXHRzZWxlY3QgUUNPTV9QQVNcXG4gIDEwOlxcdFxcdHNlbGVjdCBRQ09NX1FNSV9IRUxQRVJTXFxuICAxMTpcXHRcXHRoZWxwXFxuICAxMjpcXHRcXHQgIENob29zZSBZIG9yIE0gaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBRdWFsY29tbVxcbiAgMTM6XFx0XFx0ICBJUCBBY2NlbGVyYXRvciAoSVBBKSwgYSBoYXJkd2FyZSBibG9jayBwcmVzZW50IGluIHNvbWVcXG4gIDE0OlxcdFxcdCAgUXVhbGNvbW0gU29Dcy4gIFRoZSBJUEEgaXMgYSBwcm9ncmFtbWFibGUgcHJvdG9jb2wgcHJvY2Vzc29yXFxuICAxNTpcXHRcXHQgIHRoYXQgaXMgY2FwYWJsZSBvZiBnZW5lcmljIGhhcmR3YXJlIGhhbmRsaW5nIG9mIElQIHBhY2tldHMsXFxuICAxNjpcXHRcXHQgIGluY2x1ZGluZyByb3V0aW5nLCBmaWx0ZXJpbmcsIGFuZCBOQVQuICBDdXJyZW50bHkgdGhlIElQQVxcbiAgMTc6XFx0XFx0ICBkcml2ZXIgc3VwcG9ydHMgb25seSBiYXNpYyB0cmFuc3BvcnQgb2YgbmV0d29yayB0cmFmZmljXFxuICAxODpcXHRcXHQgIGJldHdlZW4gdGhlIEFQIGFuZCBtb2RlbS5cXG4gIDE5OlxcdFxcbiAgMjA6XFx0XFx0ICBOb3RlIHRoYXQgaWYgc2VsZWN0ZWQsIHRoZSBzZWxlY3Rpb24gdHlwZSBtdXN0IG1hdGNoIHRoYXRcXG4gIDIxOlxcdFxcdCAgb2YgUUNPTV9RNlY1X0NPTU1PTiAoWSBvciBNKS5cXG4gIDIyOlxcdFxcbiAgMjM6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjozNC4xMzQ0ODM4ODRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMzA4NzI1Nzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFRyaWFnZSBBc3Nlc3NtZW50KipcblxuT2theSwgdGltZSB0byBtYWtlIGEgZGVjaXNpb24uIExldCdzIHJldmlzaXQgU2VjdGlvbiAyIG9mIHRoZSB0cmlhZ2UgcGhpbG9zb3BoeSwgc3BlY2lmaWNhbGx5IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSDigJMgd2hlbiB3ZSAqZG9uJ3QqIGNvbnNpZGVyIHNvbWV0aGluZyB3b3J0aCBmdXp6aW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgUXVhbGNvbW0gSVBBIGNvZGUgZG9lc24ndCBmYWxsIGludG8gb25lIG9mIHRob3NlIGNhdGVnb3JpZXMuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgY2hhbmdlcyBhcmUgbm90IHJlbGF0ZWQgdG8gYW55IG9mIHRoZSBmb2xsb3dpbmcgdG8gbm90IGJlIHdvcnRoIGZ1enppbmc6XG4qICAgTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlcyAoZG9jdW1lbnRhdGlvbiwgdXNlci1zcGFjZSB0b29scywgbG9nZ2luZyB0aGF0IGRvZXNuJ3QgYWZmZWN0IGNvbnRyb2wgZmxvdywgZXRjLilcbiogICBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUgKHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIGZvciBoYXJkd2FyZSB3ZSBjYW4ndCBlbXVsYXRlKVxuKiAgIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocyAodGVhcmRvd24gY2FsbGJhY2tzIG9ubHkgdHJpZ2dlcmVkIGJ5IGhvdC11bnBsdWcsIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlKS5cblxuVGhlIHRhcmdldCBpcyBhbWQ2NCwgc28gbGV0J3MgZ2V0IHRoYXQgY2xlYXIgaW4gbWluZC4gTm93LCBJIGhhdmUgdG8gY29uc2lkZXIgUXVhbGNvbW0gSVBBLCB3aGljaCBmcm9tIG15IHVuZGVyc3RhbmRpbmcgaXMgdGllZCB0byBRdWFsY29tbSBTb0MgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBBUk02NCBwbGF0Zm9ybXMgYW5kIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoZSBEZXZpY2UgVHJlZSwgcGFydGljdWxhcmx5IG9uIHRoZSBTbmFwZHJhZ29uIFNNODQ1MC4gVGhlIHF1ZXN0aW9uIHRoYXQgcmVtYWlucyBpczogSXMgUUNPTVxcX0lQQSBhIHN0YW5kYXJkIHBsYXRmb3JtIGRyaXZlciB0aGF0IGlzIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoZSBEZXZpY2UgVHJlZSBvbiBRdWFsY29tbSBTbmFwZHJhZ29uIFNvQ3M/IFRpbWUgdG8gZGl2ZSBpbnRvIGBpcGFfbWFpbi5jYCBhbmQgbWFrZSBhIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMTM4LCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzY5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6MzcuNDQzMjExOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTczODQ0MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfcGxhdGZvcm1fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2lwYVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYz0xMDE1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlwYV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYy0xMDI2LVxcbmRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jOjEwMjc6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpcGFfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9pcGEvaXBhX21haW4uYy0xMDI4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjozNy40ODg5NTQ5NTNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0MTM2MjE4MTA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipEaXZpbmcgaW50byB0aGUgSVBBIERyaXZlcioqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gaG93IHRoaXMgYWxsIHdvcmtzLCBzbyBsZXQncyBzdGFydCB3aXRoIHRoZSBgaXBhX2RyaXZlcmAgc3BlY2lmaWNhbGx5LCBhbmQgdGhlIGBpcGFfbWFpbi5jYCBmaWxlIHdoZXJlIGl0IHNob3VsZCBiZSBkZWZpbmVkLiBJJ20gZ29pbmcgdG8gcXVpY2tseSBsb29rIHRocm91Z2ggdGhlIGNvZGUgaW4gdGhhdCBmaWxlLCBjb25maXJtIHRoZSBkcml2ZXIncyBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSwgYW5kIHRoZW4gbWFwIG91dCBhbnkgcmVsZXZhbnQgaW50ZXJhY3Rpb24gcG9pbnRzLiBJJ20gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gc2VlaW5nIGhvdyB0aGUgSVBBIGludGVyYWN0cyB3aXRoIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0sIHdoYXQgaXRzIGVudHJ5IHBvaW50cyBhcmUsIGFuZCBpZiBhbnl0aGluZyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIEkgbG9va2VkIGF0IGl0LiBMZXQncyBzZWUgaWYgdGhlIGNvcmUgY29uY2VwdHMgcmVtYWluIHRoZSBzYW1lIG9yIGlmIHRoZXJlIGFyZSBhbnkgc3VidGxlIGJ1dCBpbXBvcnRhbnQgaW1wbGVtZW50YXRpb24gZGlmZmVyZW5jZXMuIFRpbWUgdG8gcHVsbCB1cCB0aGUgY29kZSBhbmQgZ2V0IHN0YXJ0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzOTEwLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6NDEuNjI1MTc1Mjc3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2OTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2lwYS9pcGFfbWFpbi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEwMDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEwMDA6XFx0XFx0a2ZyZWUoaXBhKTtcXG4xMDAxOlxcdFxcdGlwYV9wb3dlcl9leGl0KHBvd2VyKTtcXG4xMDAyOlxcdFxcdGlwYV9pbnRlcnJ1cHRfZXhpdChpbnRlcnJ1cHQpO1xcbjEwMDM6XFx0XFxuMTAwNDpcXHRcXHRkZXZfaW5mbyhkZXYsIFxcXCJJUEEgZHJpdmVyIHJlbW92ZWRcXFwiKTtcXG4xMDA1OlxcdH1cXG4xMDA2OlxcdFxcbjEwMDc6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmlwYV9hdHRyaWJ1dGVfZ3JvdXBzW10gPSB7XFxuMTAwODpcXHRcXHRcXHUwMDI2aXBhX2F0dHJpYnV0ZV9ncm91cCxcXG4xMDA5OlxcdFxcdFxcdTAwMjZpcGFfZmVhdHVyZV9hdHRyaWJ1dGVfZ3JvdXAsXFxuMTAxMDpcXHRcXHRcXHUwMDI2aXBhX2VuZHBvaW50X2lkX2F0dHJpYnV0ZV9ncm91cCxcXG4xMDExOlxcdFxcdFxcdTAwMjZpcGFfbW9kZW1fYXR0cmlidXRlX2dyb3VwLFxcbjEwMTI6XFx0XFx0TlVMTCxcXG4xMDEzOlxcdH07XFxuMTAxNDpcXHRcXG4xMDE1OlxcdHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlwYV9kcml2ZXIgPSB7XFxuMTAxNjpcXHRcXHQucHJvYmVcXHRcXHQ9IGlwYV9wcm9iZSxcXG4xMDE3OlxcdFxcdC5yZW1vdmVcXHRcXHQ9IGlwYV9yZW1vdmUsXFxuMTAxODpcXHRcXHQuc2h1dGRvd25cXHQ9IGlwYV9yZW1vdmUsXFxuMTAxOTpcXHRcXHQuZHJpdmVyXFx0PSB7XFxuMTAyMDpcXHRcXHRcXHQubmFtZVxcdFxcdD0gXFxcImlwYVxcXCIsXFxuMTAyMTpcXHRcXHRcXHQucG1cXHRcXHQ9IFxcdTAwMjZpcGFfcG1fb3BzLFxcbjEwMjI6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlXFx0PSBpcGFfbWF0Y2gsXFxuMTAyMzpcXHRcXHRcXHQuZGV2X2dyb3Vwc1xcdD0gaXBhX2F0dHJpYnV0ZV9ncm91cHMsXFxuMTAyNDpcXHRcXHR9LFxcbjEwMjU6XFx0fTtcXG4xMDI2OlxcdFxcbjEwMjc6XFx0bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpcGFfZHJpdmVyKTtcXG4xMDI4OlxcdFxcbjEwMjk6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcbjEwMzA6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJRdWFsY29tbSBJUCBBY2NlbGVyYXRvciBkZXZpY2UgZHJpdmVyXFxcIik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA5VDAzOjIyOjQxLjYyNTI2NTA4N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1NjcwMDU2MjY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQ6IElQQSBEcml2ZXIgRnV6emluZyBFeGNsdXNpb24qKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFdlJ3JlIGxvb2tpbmcgYXQgdGhlIGBpcGFfZHJpdmVyYCBhbmQgd2hldGhlciBpdCdzIHN1aXRhYmxlIGZvciBmdXp6aW5nLiAgTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQncyAqbm90Ki5cblxuVGhlIGBpcGFfZHJpdmVyYCBpcyBhIHBsYXRmb3JtIGRyaXZlciB0aGF0IHJlbGllcyBvbiBhIGRldmljZSB0cmVlIG1hdGNoIChgb2ZfbWF0Y2hfdGFibGUgPSBpcGFfbWF0Y2hgKS4gVGhlIHRhcmdldCBhcmNoaXRlY3R1cmUsIGhvd2V2ZXIsIGlzIGFtZDY0LiAgVGhlIGNvZGUgbW9kaWZpY2F0aW9ucyByZWxhdGUgdG8gUXVhbGNvbW0ncyBJUEEgKElQIEFjY2VsZXJhdG9yKSB2NS4xIGhhcmR3YXJlIGJsb2NrLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBTTTg0NTAgKFNuYXBkcmFnb24gOCBHZW4gMSkgd2hpY2ggaXMgYW4gQVJNNjQgU29DLiBDcnVjaWFsbHksIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUgaXMgKipub3QqKiBlbXVsYXRlZCB3aXRoaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuICBJdCBkZW1hbmRzICpwaHlzaWNhbCogaGFyZHdhcmUgb3Igc3BlY2lhbGl6ZWQgZW11bGF0aW9uIHRoYXQgaXNuJ3QgYWNjZXNzaWJsZSBpbiB0aGVzZSBzdGFuZGFyZCBlbnZpcm9ubWVudHMuXG5cbk15IGFuYWx5c2lzIHJldmVhbHMgdGhyZWUga2V5IGVsZW1lbnRzOlxuXG4xLiAgKipBcmNoaXRlY3R1cmUgTWlzbWF0Y2g6KiogIFRoZSB0YXJnZXQgaXMgYW1kNjQsIGJ1dCB0aGUgY2hhbmdlcyBkaXJlY3RseSBpbXBhY3QgQVJNNjQtc3BlY2lmaWMgZmlsZXM6IGBhcmNoL2FybTY0L2Jvb3QvZHRzL3Fjb20vc204NDUwLmR0c2lgIChEVFNJKSBhbmQgdGhlIElQQSBkcml2ZXIgZGF0YSBkZWZpbml0aW9ucyBpbiBgZHJpdmVycy9uZXQvaXBhL2AgdGFpbG9yZWQgdG8gdGhlIFNNODQ1MCBwbGF0Zm9ybS5cbjIuICAqKlVucmVhY2hhYmxlIEhhcmR3YXJlOioqIFRoZSBJUEEgaGFyZHdhcmUgYmxvY2sgaXMgdmVuZG9yLXNwZWNpZmljIHRvIFF1YWxjb21tIFNvQ3MgYW5kIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoZSBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudHMuXG4zLiAgKipEb2N1bWVudGF0aW9uIFRvdWNoOioqIFRoZSBlZGl0cyB0byBgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9xY29tLGlwYS55YW1sYCBjb25jZXJuIG9ubHkgZG9jdW1lbnRhdGlvbiwgd2hpY2ggaXMgYSBuZWdhdGl2ZSBjcml0ZXJpb24uXG5cblRoZXJlZm9yZSwgdGhlIGNvZGUncyByZWFjaGFiaWxpdHkgaXMgdGhlIGRlY2lkaW5nIGZhY3RvciwgYmFzZWQgb24gdGhlIGZ1enppbmcgY3JpdGVyaWEuIFRoZSBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4gR2l2ZW4gdGhpcywgaXQgTVVTVCBOT1QgYmUgZnV6emVkLlxuXG5NeSByZWFzb25pbmcsIGluIHByZXBhcmF0aW9uIGZvciB0aGUgYHNldC1yZXN1bHRzYCBjYWxsLCBpcyBjbGVhcjpcblxuMS4gIFRoZSBhcmNoaXRlY3R1cmUgdGFyZ2V0IGlzIGFtZDY0LCB3aGlsZSB0aGUgbW9kaWZpZWQgY29kZSBwZXJ0YWlucyB0byB0aGUgUXVhbGNvbW0gSVBBIHY1LjEgaGFyZHdhcmUgb24gQVJNNjQgU004NDUwIFNvQ3MuIFRoZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyBhcmUgYWxzbyBzcGVjaWZpYyB0byB0aGlzIHBsYXRmb3JtLlxuMi4gIFRoZSBRdWFsY29tbSBJUEEgaGFyZHdhcmUgaXMgcGh5c2ljYWwgU29DIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMuIFRodXMsIHRoZSBjb2RlIHBhdGggaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlxuXG5GaW5hbGx5LCBiZWNhdXNlIGBXb3J0aEZ1enppbmdgIGlzIGBmYWxzZWAsICBgRm9jdXNTeW1ib2xzYCBhbmQgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBiZSBhbiBlbXB0eSBsaXN0IChgW11gKS4gTm93LCBJJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNDU4NCwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NDMsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wOVQwMzoyMjo0Ny4yOTUzMjQzOTRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBzZXJpZXMgYWRkcyBEZXZpY2UgVHJlZSBiaW5kaW5ncywgRFRTIG5vZGVzLCBhbmQgZHJpdmVyIGNvbmZpZ3VyYXRpb24gdGFibGVzIGZvciB0aGUgUXVhbGNvbW0gSVAgQWNjZWxlcmF0b3IgKElQQSB2NS4xKSBvbiBTbmFwZHJhZ29uIFNNODQ1MCBTb0NzLiBUaGlzIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIG9uIGFtZDY0IGFzIGl0IHJlcXVpcmVzIHBoeXNpY2FsIFF1YWxjb21tIFNvQyBoYXJkd2FyZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHNlcmllcyBhZGRzIERldmljZSBUcmVlIGJpbmRpbmdzLCBEVFMgbm9kZXMsIGFuZCBkcml2ZXIgY29uZmlndXJhdGlvbiB0YWJsZXMgZm9yIHRoZSBRdWFsY29tbSBJUCBBY2NlbGVyYXRvciAoSVBBIHY1LjEpIG9uIFNuYXBkcmFnb24gU004NDUwIFNvQ3MuIFRoaXMgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgb24gYW1kNjQgYXMgaXQgcmVxdWlyZXMgcGh5c2ljYWwgUXVhbGNvbW0gU29DIGhhcmR3YXJlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDlUMDM6MjI6NDcuMjk1MzQ2NTI0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowfc5gd[1] Phase: Running StartedAt: 2026-09-09 03:22:54 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfc5gd[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-09 03:22:54 +0000 UTC FinishedAt: 2026-09-09 03:22:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}