Name: series-workflowbb9h9 Phase: Succeeded StartedAt: 2026-08-03 07:07:54 +0000 UTC FinishedAt: 2026-08-03 08:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[0] Phase: Succeeded StartedAt: 2026-08-03 07:07:54 +0000 UTC FinishedAt: 2026-08-03 07:27:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 07:07:54 +0000 UTC FinishedAt: 2026-08-03 07:27:32 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "415606a7be939835db9b0d6b711887586646346d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PLATFORM", "DWMAC_SOCFPGA", "STMMAC_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "415606a7be939835db9b0d6b711887586646346d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PLATFORM", "DWMAC_SOCFPGA", "STMMAC_PCI" ], "series_id": "2bf278d7-4dcf-416f-9db3-2915443d2851" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_xmit", "stmmac_open", "stmmac_napi_poll_tx", "stmmac_napi_poll_rxtx" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BMQVRGT1JNJiMzNDssCiAgICAmIzM0O0RXTUFDX1NPQ0ZQR0EmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY194bWl0JiMzNDssCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19uYXBpX3BvbGxfdHgmIzM0OywKICAgICYjMzQ7c3RtbWFjX25hcGlfcG9sbF9yeHR4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBieSB1bmNvbmRpdGlvbmFsbHkgYWxsb2NhdGluZyBhIHBhZ2UgcG9vbCBmb3IgZXZlcnkgVFggcXVldWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBJdCBhbHNvIG1vZGlmaWVzIHRoZSB0cmFuc21pdCBwYXRoIChzdG1tYWNfeG1pdCkgYW5kIGNsZWFudXAgcGF0aCAoc3RtbWFjX3R4X2NsZWFuKSB0byB1c2UgdGhlc2UgcGFnZSBwb29scyB3aGVuIGEgbmV3IGRldmljZSB0cmVlIHF1aXJrIChzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaykgaXMgZW5hYmxlZC4gVGhlIGNvcmUgZHJpdmVyIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgbmV0d29yayBvcGVyYXRpb25zIChvcGVuLCB4bWl0LCBOQVBJIHBvbGwpIGFuZCBhZmZlY3QgbWVtb3J5IGFsbG9jYXRpb24gZm9yIGFsbCBkZXZpY2VzIHVzaW5nIHRoaXMgZHJpdmVyLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRjMzU2ZmVhZjM5NWY5ZTNmYzg1NjJjMTQ3ODBhMWRlYWY3MDA3M2JcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDA3OjI1OjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcbmluZGV4IDI0NDkzMTFjNmQyOGUuLjczMDQ1NTExNDQ2ZmQgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcbkBAIC01NDUsNiAmIzQzOzU0NSwxNCBAQCBwcm9wZXJ0aWVzOlxuICAgICAgIEVuYWJsZXMgdGhlIFRTTyBmZWF0dXJlIG90aGVyd2lzZSBpdCB3aWxsIGJlIG1hbmFnZWQgYnkgTUFDIEhXIGNhcGFiaWxpdHlcbiAgICAgICByZWdpc3Rlci5cbiBcbiYjNDM7ICBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyazpcbiYjNDM7ICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL2ZsYWdcbiYjNDM7ICAgIGRlc2NyaXB0aW9uOlxuJiM0MzsgICAgICBFbmFibGUgdXNlIG9mIHBhZ2UgcG9vbCBidWZmZXJzIGluc3RlYWQgb2Ygc3RyZWFtaW5nIGJ1ZmZlcnMgZm9yIHRyYW5zbWl0LlxuJiM0MzsgICAgICBUaGlzIGF2b2lkcyBJT01NVSBpbnZhbGlkYXRlIHdhaXQgdGltZSBvbiBwbGF0Zm9ybXMgd2hlcmUgdGhhdCBjb3N0IGlzXG4mIzQzOyAgICAgIGhpZ2gsIHdpdGggdGhlIHRyYWRlLW9mZiBvZiBjb3B5aW5nIGRhdGEgZnJvbSB0aGUgc2tiIGludG8gZG1hLW1hcHBlZFxuJiM0MzsgICAgICBwYWdlIHBvb2wgYnVmZmVycy5cbiYjNDM7XG4gICBtZGlvOlxuICAgICAkcmVmOiBtZGlvLnlhbWwjXG4gICAgIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2VcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaVxuaW5kZXggZjU0NzY3ZDE1MjZlMS4uNGNlNGZhMDkxMzg1MiAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcbkBAIC02MDUsNiAmIzQzOzYwNSw3IEBAIGdtYWMwOiBldGhlcm5ldEAxMDgxMDAwMCB7XG4gXHRcdFx0c25wcyxtdGwtdHgtY29uZmlnID0gXHUwMDNjXHUwMDI2bXRsX3R4X2VtYWMwX3NldHVwXHUwMDNlO1xuIFx0XHRcdHNucHMscGJsID0gXHUwMDNjMzJcdTAwM2U7XG4gXHRcdFx0c25wcyx0c287XG4mIzQzO1x0XHRcdHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrO1xuIFx0XHRcdGFsdHIsc3lzbWdyLXN5c2NvbiA9IFx1MDAzY1x1MDAyNnN5c21nciAweDQ0IDBcdTAwM2U7XG4gXHRcdFx0c25wcyxjbGstY3NyID0gXHUwMDNjMFx1MDAzZTtcbiBcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZzbW11IDFcdTAwM2U7XG5AQCAtNzUxLDYgJiM0Mzs3NTIsNyBAQCBnbWFjMTogZXRoZXJuZXRAMTA4MjAwMDAge1xuIFx0XHRcdHNucHMsbXRsLXR4LWNvbmZpZyA9IFx1MDAzY1x1MDAyNm10bF90eF9lbWFjMV9zZXR1cFx1MDAzZTtcbiBcdFx0XHRzbnBzLHBibCA9IFx1MDAzYzMyXHUwMDNlO1xuIFx0XHRcdHNucHMsdHNvO1xuJiM0MztcdFx0XHRzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaztcbiBcdFx0XHRhbHRyLHN5c21nci1zeXNjb24gPSBcdTAwM2NcdTAwMjZzeXNtZ3IgMHg0OCAwXHUwMDNlO1xuIFx0XHRcdHNucHMsY2xrLWNzciA9IFx1MDAzYzBcdTAwM2U7XG4gXHRcdFx0aW9tbXVzID0gXHUwMDNjXHUwMDI2c21tdSAyXHUwMDNlO1xuQEAgLTg5Nyw2ICYjNDM7ODk5LDcgQEAgZ21hYzI6IGV0aGVybmV0QDEwODMwMDAwIHtcbiBcdFx0XHRzbnBzLG10bC10eC1jb25maWcgPSBcdTAwM2NcdTAwMjZtdGxfdHhfZW1hYzJfc2V0dXBcdTAwM2U7XG4gXHRcdFx0c25wcyxwYmwgPSBcdTAwM2MzMlx1MDAzZTtcbiBcdFx0XHRzbnBzLHRzbztcbiYjNDM7XHRcdFx0c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms7XG4gXHRcdFx0YWx0cixzeXNtZ3Itc3lzY29uID0gXHUwMDNjXHUwMDI2c3lzbWdyIDB4NGMgMFx1MDAzZTtcbiBcdFx0XHRzbnBzLGNsay1jc3IgPSBcdTAwM2MwXHUwMDNlO1xuIFx0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNnNtbXUgM1x1MDAzZTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oXG5pbmRleCA4YmE4ZjAzZTFjZTAzLi4wOTNjMDUyYjQ5MDgyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oXG5AQCAtNDEsNiAmIzQzOzQxLDcgQEAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMge1xuIFxuIGVudW0gc3RtbWFjX3R4YnVmX3R5cGUge1xuIFx0U1RNTUFDX1RYQlVGX1RfU0tCLFxuJiM0MztcdFNUTU1BQ19UWEJVRl9UX0RNQSxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9UWCxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8sXG4gXHRTVE1NQUNfVFhCVUZfVF9YU0tfVFgsXG5AQCAtNDksNiAmIzQzOzUwLDcgQEAgZW51bSBzdG1tYWNfdHhidWZfdHlwZSB7XG4gc3RydWN0IHN0bW1hY190eF9pbmZvIHtcbiBcdHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfY29tcGwgeHNrX21ldGE7XG4gXHRkbWFfYWRkcl90IGJ1ZjtcbiYjNDM7XHRzdHJ1Y3QgcGFnZSAqcGFnZTtcbiBcdHVuc2lnbmVkIGxlbjtcbiBcdGVudW0gc3RtbWFjX3R4YnVmX3R5cGUgYnVmX3R5cGU7XG4gXHRib29sIG1hcF9hc19wYWdlO1xuQEAgLTY1LDYgJiM0Mzs2Nyw3IEBAIHN0cnVjdCBzdG1tYWNfdHhfcXVldWUge1xuIFx0aW50IHRicztcbiBcdHN0cnVjdCBocnRpbWVyIHR4dGltZXI7XG4gXHR1MzIgcXVldWVfaW5kZXg7XG4mIzQzO1x0c3RydWN0IHBhZ2VfcG9vbCAqcGFnZV9wb29sO1xuIFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2X2RhdGE7XG4gXHRzdHJ1Y3QgZG1hX2V4dGVuZGVkX2Rlc2MgKmRtYV9ldHggX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbiBcdHN0cnVjdCBkbWFfZWRlc2MgKmRtYV9lbnR4O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCBlZTQ0YmQ2ZjRkNDhlLi40YWE2YjFkMTUwN2JmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTE3MTIsNyAmIzQzOzE3MTIsMTAgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcbiBcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpIHtcbi1cdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtpXS5tYXBfYXNfcGFnZSlcbiYjNDM7XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKVxuJiM0MztcdFx0XHRwYWdlX3Bvb2xfcmVjeWNsZV9kaXJlY3QodHhfcS1cdTAwM2VwYWdlX3Bvb2wsXG4mIzQzO1x0XHRcdFx0XHRcdCB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ucGFnZSk7XG4mIzQzO1x0XHRlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4gXHRcdFx0ZG1hX3VubWFwX3BhZ2UocHJpdi1cdTAwM2VkZXZpY2UsXG4gXHRcdFx0XHQgICAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZixcbiBcdFx0XHRcdCAgICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubGVuLFxuQEAgLTE3MzUsNyAmIzQzOzE3MzgsOCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9idWZmZXIoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFx0XHR0eF9xLVx1MDAzZXhza19mcmFtZXNfZG9uZSYjNDM7JiM0Mzs7XG4gXG4gXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0gXHUwMDI2XHUwMDI2XG4tXHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuJiM0MztcdCAgICAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxuJiM0MztcdCAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkpIHtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9hbnkodHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0pO1xuIFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZltpXSA9IE5VTEw7XG4gXHR9XG5AQCAtMjIwMSw2ICYjNDM7MjIwNSw4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFxuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKTtcbiBcdGtmcmVlKHR4X3EtXHUwMDNldHhfc2tidWZmKTtcbiYjNDM7XHRpZiAodHhfcS1cdTAwM2VwYWdlX3Bvb2wpXG4mIzQzO1x0XHRwYWdlX3Bvb2xfZGVzdHJveSh0eF9xLVx1MDAzZXBhZ2VfcG9vbCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbkBAIC0yMzM1LDEyICYjNDM7MjM0MSwzMiBAQCBzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbcXVldWVdO1xuJiM0MztcdHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zIHBwX3BhcmFtcyA9IHsgMCB9O1xuJiM0MztcdHVuc2lnbmVkIGludCBudW1fcGFnZXM7XG4gXHRzaXplX3Qgc2l6ZTtcbiBcdHZvaWQgKmFkZHI7XG4mIzQzO1x0aW50IHJldDtcbiBcbiBcdHR4X3EtXHUwMDNlcXVldWVfaW5kZXggPSBxdWV1ZTtcbiBcdHR4X3EtXHUwMDNlcHJpdl9kYXRhID0gcHJpdjtcbiBcbiYjNDM7XHRwcF9wYXJhbXMuZmxhZ3MgPSBQUF9GTEFHX0RNQV9NQVAgfCBQUF9GTEFHX0RNQV9TWU5DX0RFVjtcbiYjNDM7XHRwcF9wYXJhbXMucG9vbF9zaXplID0gZG1hX2NvbmYtXHUwMDNlZG1hX3R4X3NpemU7XG4mIzQzO1x0bnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLVx1MDAzZWRtYV9idWZfc3osIFBBR0VfU0laRSk7XG4mIzQzO1x0cHBfcGFyYW1zLm9yZGVyID0gaWxvZzIobnVtX3BhZ2VzKTtcbiYjNDM7XHRwcF9wYXJhbXMubmlkID0gZGV2X3RvX25vZGUocHJpdi1cdTAwM2VkZXZpY2UpO1xuJiM0MztcdHBwX3BhcmFtcy5kZXYgPSBwcml2LVx1MDAzZWRldmljZTtcbiYjNDM7XHRwcF9wYXJhbXMuZG1hX2RpciA9IERNQV9CSURJUkVDVElPTkFMO1xuJiM0MztcdHBwX3BhcmFtcy5vZmZzZXQgPSAwO1xuJiM0MztcdHBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFO1xuJiM0MztcbiYjNDM7XHR0eF9xLVx1MDAzZXBhZ2VfcG9vbCA9IHBhZ2VfcG9vbF9jcmVhdGUoXHUwMDI2cHBfcGFyYW1zKTtcbiYjNDM7XHRpZiAoSVNfRVJSKHR4X3EtXHUwMDNlcGFnZV9wb29sKSkge1xuJiM0MztcdFx0cmV0ID0gUFRSX0VSUih0eF9xLVx1MDAzZXBhZ2VfcG9vbCk7XG4mIzQzO1x0XHR0eF9xLVx1MDAzZXBhZ2VfcG9vbCA9IE5VTEw7XG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuJiM0MztcdH1cbiYjNDM7XG4gXHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEgPSBremFsbG9jX29ianMoKnR4X3EtXHUwMDNldHhfc2tidWZmX2RtYSxcbiBcdFx0XHRcdFx0ICAgZG1hX2NvbmYtXHUwMDNlZG1hX3R4X3NpemUpO1xuIFx0aWYgKCF0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEpXG5AQCAtMjgzNiw3ICYjNDM7Mjg2Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFx0XHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPKSB7XG4gXHRcdFx0eGRwZiA9IHR4X3EtXHUwMDNleGRwZltlbnRyeV07XG4gXHRcdFx0c2tiID0gTlVMTDtcbi1cdFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuJiM0MztcdFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxuJiM0MztcdFx0XHQgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkge1xuIFx0XHRcdHhkcGYgPSBOVUxMO1xuIFx0XHRcdHNrYiA9IHR4X3EtXHUwMDNldHhfc2tidWZmW2VudHJ5XTtcbiBcdFx0fSBlbHNlIHtcbkBAIC0yODg0LDcgJiM0MzsyOTExLDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFxuIFx0XHRpZiAobGlrZWx5KHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmIFx1MDAyNlx1MDAyNlxuIFx0XHRcdCAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSkge1xuLVx0XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxuJiM0MztcdFx0XHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpXG4mIzQzO1x0XHRcdFx0cGFnZV9wb29sX3JlY3ljbGVfZGlyZWN0KHR4X3EtXHUwMDNlcGFnZV9wb29sLFxuJiM0MztcdFx0XHRcdFx0XHRcdCB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLnBhZ2UpO1xuJiM0MztcdFx0XHRlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxuIFx0XHRcdFx0ZG1hX3VubWFwX3BhZ2UocHJpdi1cdTAwM2VkZXZpY2UsXG4gXHRcdFx0XHRcdCAgICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1ZixcbiBcdFx0XHRcdFx0ICAgICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubGVuLFxuQEAgLTI5MjIsNyAmIzQzOzI5NTIsOCBAQCBzdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcbiBcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWFNLX1RYKVxuIFx0XHRcdHR4X3EtXHUwMDNleHNrX2ZyYW1lc19kb25lJiM0MzsmIzQzOztcbiBcbi1cdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCKSB7XG4mIzQzO1x0XHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IgfHxcbiYjNDM7XHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkge1xuIFx0XHRcdGlmIChsaWtlbHkoc2tiKSkge1xuIFx0XHRcdFx0cGt0c19jb21wbCYjNDM7JiM0Mzs7XG4gXHRcdFx0XHRieXRlc19jb21wbCAmIzQzOz0gc2tiLVx1MDAzZWxlbjtcbkBAIC00NzQyLDEyICYjNDM7NDc3MywxNCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdGJvb2wgZW5oX2Rlc2MsIGhhc192bGFuLCBzZXRfaWMsIGlzX2p1bWJvID0gZmFsc2U7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuIFx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbiYjNDM7XHRnZnBfdCBnZnAgPSBHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOO1xuIFx0dTMyIHF1ZXVlID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYik7XG4gXHRpbnQgbmZyYWdzID0gc2tiX3NoaW5mbyhza2IpLVx1MDAzZW5yX2ZyYWdzO1xuIFx0dW5zaWduZWQgaW50IGZpcnN0X2VudHJ5LCB0eF9wYWNrZXRzO1xuIFx0c3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0cztcbiBcdHN0cnVjdCBkbWFfZGVzYyAqZGVzYywgKmZpcnN0X2Rlc2M7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xO1xuJiM0MztcdHN0cnVjdCBwYWdlICp0eF9idWZfcGFnZTtcbiBcdGludCBpLCBjc3VtX2luc2VydGlvbiA9IDA7XG4gXHRpbnQgZW50cnksIGZpcnN0X3R4O1xuIFx0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbkBAIC00ODE0LDEzICYjNDM7NDg0NywzMyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdH0gZWxzZSB7XG4gXHRcdGJvb2wgbGFzdF9zZWdtZW50ID0gKG5mcmFncyA9PSAwKTtcbiBcbi1cdFx0ZG1hX2FkZHIgPSBkbWFfbWFwX3NpbmdsZShwcml2LVx1MDAzZWRldmljZSwgc2tiLVx1MDAzZWRhdGEsXG4tXHRcdFx0XHRcdCAgbm9wYWdlZF9sZW4sIERNQV9UT19ERVZJQ0UpO1xuLVx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyKSlcbi1cdFx0XHRnb3RvIGRtYV9tYXBfZXJyO1xuJiM0MztcdFx0aWYgKCEobGFzdF9zZWdtZW50IFx1MDAyNlx1MDAyNiBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfYnVmX3F1aXJrKSkge1xuJiM0MztcdFx0XHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXHUwMDNlZGV2aWNlLCBza2ItXHUwMDNlZGF0YSxcbiYjNDM7XHRcdFx0XHRcdFx0ICBub3BhZ2VkX2xlbiwgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihwcml2LVx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxuJiM0MztcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4gXG4tXHRcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXG4tXHRcdFx0XHRcdCAgICBub3BhZ2VkX2xlbiwgZmFsc2UpO1xuJiM0MztcdFx0XHRzdG1tYWNfc2V0X3R4X3NrYl9kbWFfZW50cnkodHhfcSwgZmlyc3RfZW50cnksIGRtYV9hZGRyLFxuJiM0MztcdFx0XHRcdFx0XHQgICAgbm9wYWdlZF9sZW4sIGZhbHNlKTtcbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdHR4X2J1Zl9wYWdlID0gcGFnZV9wb29sX2FsbG9jX3BhZ2VzKHR4X3EtXHUwMDNlcGFnZV9wb29sLCBnZnApO1xuJiM0MztcdFx0XHRpZiAoIXR4X2J1Zl9wYWdlKVxuJiM0MztcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4mIzQzO1xuJiM0MztcdFx0XHRkbWFfYWRkciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2FkZHIodHhfYnVmX3BhZ2UpO1xuJiM0MztcdFx0XHRzdG1tYWNfc2V0X3R4X2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSxcbiYjNDM7XHRcdFx0XHRcdFx0U1RNTUFDX1RYQlVGX1RfRE1BLCBkbWFfYWRkcixcbiYjNDM7XHRcdFx0XHRcdFx0bm9wYWdlZF9sZW4sIGZhbHNlKTtcbiYjNDM7XHRcdFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ZpcnN0X2VudHJ5XS5wYWdlID0gdHhfYnVmX3BhZ2U7XG4mIzQzO1xuJiM0MztcdFx0XHRkbWFfc3luY19zaW5nbGVfZm9yX2NwdShwcml2LVx1MDAzZWRldmljZSwgZG1hX2FkZHIsXG4mIzQzO1x0XHRcdFx0XHRcdG5vcGFnZWRfbGVuLCBETUFfQklESVJFQ1RJT05BTCk7XG4mIzQzO1x0XHRcdHNrYl9jb3B5X2Zyb21fbGluZWFyX2RhdGEoc2tiLCBwYWdlX2FkZHJlc3ModHhfYnVmX3BhZ2UpLFxuJiM0MztcdFx0XHRcdFx0XHQgIG5vcGFnZWRfbGVuKTtcbiYjNDM7XHRcdFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxuJiM0MztcdFx0XHRcdFx0XHQgICBub3BhZ2VkX2xlbixcbiYjNDM7XHRcdFx0XHRcdFx0ICAgRE1BX0JJRElSRUNUSU9OQUwpO1xuJiM0MztcdFx0fVxuIFxuIFx0XHRzdG1tYWNfc2V0X2Rlc2NfYWRkcihwcml2LCBmaXJzdF9kZXNjLCBkbWFfYWRkcik7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuaW5kZXggZGM1Zjk1MWEzMTFkNC4uMGY4ZDJmYzYxY2U0OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuQEAgLTU3NSw2ICYjNDM7NTc1LDggQEAgc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuIFxuIFx0b2ZfcHJvcGVydHlfcmVhZF91MzIobnAsIFwmIzM0O3NucHMscHMtc3BlZWRcJiMzNDssIFx1MDAyNnBsYXQtXHUwMDNlbWFjX3BvcnRfc2VsX3NwZWVkKTtcbiBcbiYjNDM7XHRwbGF0LVx1MDAzZXR4X2J1Zl9xdWlyayA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgXCYjMzQ7c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmtcJiMzNDspO1xuJiM0MztcbiBcdHBsYXQtXHUwMDNlYXhpID0gc3RtbWFjX2F4aV9zZXR1cChwZGV2KTtcbiBcbiBcdHJjID0gc3RtbWFjX210bF9zZXR1cChwZGV2LCBwbGF0KTtcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oIGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxuaW5kZXggNDQzMGI5NjdhYmRlYi4uZDRjOWQ3N2E2ZjgxYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvc3RtbWFjLmhcbkBAIC0yNjgsNiAmIzQzOzI2OCw3IEBAIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSB7XG4gXHR1OCB0eF9xdWV1ZXNfdG9fdXNlO1xuIFx0dTggcnhfc2NoZWRfYWxnb3JpdGhtO1xuIFx0dTggdHhfc2NoZWRfYWxnb3JpdGhtO1xuJiM0MztcdGJvb2wgdHhfYnVmX3F1aXJrO1xuIFx0c3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdO1xuIFx0c3RydWN0IHN0bW1hY190eHFfY2ZnIHR4X3F1ZXVlc19jZmdbTVRMX01BWF9UWF9RVUVVRVNdO1xuIFx0dm9pZCAoKmdldF9pbnRlcmZhY2VzKShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHZvaWQgKmJzcF9wcml2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QTEFURk9STSYjMzQ7LAogICAgJiMzNDtEV01BQ19TT0NGUEdBJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfeG1pdCYjMzQ7LAogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtzdG1tYWNfbmFwaV9wb2xsX3R4JiMzNDssCiAgICAmIzM0O3N0bW1hY19uYXBpX3BvbGxfcnh0eCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0YzM1NmZlYWYzOTVmOWUzZmM4NTYyYzE0NzgwYTFkZWFmNzAwNzNiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAwNzoyNTozNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKaW5kZXggMjQ0OTMxMWM2ZDI4ZS4uNzMwNDU1MTE0NDZmZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKQEAgLTU0NSw2ICYjNDM7NTQ1LDE0IEBAIHByb3BlcnRpZXM6CiAgICAgICBFbmFibGVzIHRoZSBUU08gZmVhdHVyZSBvdGhlcndpc2UgaXQgd2lsbCBiZSBtYW5hZ2VkIGJ5IE1BQyBIVyBjYXBhYmlsaXR5CiAgICAgICByZWdpc3Rlci4KIAomIzQzOyAgc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms6CiYjNDM7ICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL2ZsYWcKJiM0MzsgICAgZGVzY3JpcHRpb246CiYjNDM7ICAgICAgRW5hYmxlIHVzZSBvZiBwYWdlIHBvb2wgYnVmZmVycyBpbnN0ZWFkIG9mIHN0cmVhbWluZyBidWZmZXJzIGZvciB0cmFuc21pdC4KJiM0MzsgICAgICBUaGlzIGF2b2lkcyBJT01NVSBpbnZhbGlkYXRlIHdhaXQgdGltZSBvbiBwbGF0Zm9ybXMgd2hlcmUgdGhhdCBjb3N0IGlzCiYjNDM7ICAgICAgaGlnaCwgd2l0aCB0aGUgdHJhZGUtb2ZmIG9mIGNvcHlpbmcgZGF0YSBmcm9tIHRoZSBza2IgaW50byBkbWEtbWFwcGVkCiYjNDM7ICAgICAgcGFnZSBwb29sIGJ1ZmZlcnMuCiYjNDM7CiAgIG1kaW86CiAgICAgJHJlZjogbWRpby55YW1sIwogICAgIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpCmluZGV4IGY1NDc2N2QxNTI2ZTEuLjRjZTRmYTA5MTM4NTIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2kKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaQpAQCAtNjA1LDYgJiM0Mzs2MDUsNyBAQCBnbWFjMDogZXRoZXJuZXRAMTA4MTAwMDAgewogCQkJc25wcyxtdGwtdHgtY29uZmlnID0gJmx0OyZhbXA7bXRsX3R4X2VtYWMwX3NldHVwJmd0OzsKIAkJCXNucHMscGJsID0gJmx0OzMyJmd0OzsKIAkJCXNucHMsdHNvOwomIzQzOwkJCXNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrOwogCQkJYWx0cixzeXNtZ3Itc3lzY29uID0gJmx0OyZhbXA7c3lzbWdyIDB4NDQgMCZndDs7CiAJCQlzbnBzLGNsay1jc3IgPSAmbHQ7MCZndDs7CiAJCQlpb21tdXMgPSAmbHQ7JmFtcDtzbW11IDEmZ3Q7OwpAQCAtNzUxLDYgJiM0Mzs3NTIsNyBAQCBnbWFjMTogZXRoZXJuZXRAMTA4MjAwMDAgewogCQkJc25wcyxtdGwtdHgtY29uZmlnID0gJmx0OyZhbXA7bXRsX3R4X2VtYWMxX3NldHVwJmd0OzsKIAkJCXNucHMscGJsID0gJmx0OzMyJmd0OzsKIAkJCXNucHMsdHNvOwomIzQzOwkJCXNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrOwogCQkJYWx0cixzeXNtZ3Itc3lzY29uID0gJmx0OyZhbXA7c3lzbWdyIDB4NDggMCZndDs7CiAJCQlzbnBzLGNsay1jc3IgPSAmbHQ7MCZndDs7CiAJCQlpb21tdXMgPSAmbHQ7JmFtcDtzbW11IDImZ3Q7OwpAQCAtODk3LDYgJiM0Mzs4OTksNyBAQCBnbWFjMjogZXRoZXJuZXRAMTA4MzAwMDAgewogCQkJc25wcyxtdGwtdHgtY29uZmlnID0gJmx0OyZhbXA7bXRsX3R4X2VtYWMyX3NldHVwJmd0OzsKIAkJCXNucHMscGJsID0gJmx0OzMyJmd0OzsKIAkJCXNucHMsdHNvOwomIzQzOwkJCXNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrOwogCQkJYWx0cixzeXNtZ3Itc3lzY29uID0gJmx0OyZhbXA7c3lzbWdyIDB4NGMgMCZndDs7CiAJCQlzbnBzLGNsay1jc3IgPSAmbHQ7MCZndDs7CiAJCQlpb21tdXMgPSAmbHQ7JmFtcDtzbW11IDMmZ3Q7OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaAppbmRleCA4YmE4ZjAzZTFjZTAzLi4wOTNjMDUyYjQ5MDgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaApAQCAtNDEsNiAmIzQzOzQxLDcgQEAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgewogCiBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHsKIAlTVE1NQUNfVFhCVUZfVF9TS0IsCiYjNDM7CVNUTU1BQ19UWEJVRl9UX0RNQSwKIAlTVE1NQUNfVFhCVUZfVF9YRFBfVFgsCiAJU1RNTUFDX1RYQlVGX1RfWERQX05ETywKIAlTVE1NQUNfVFhCVUZfVF9YU0tfVFgsCkBAIC00OSw2ICYjNDM7NTAsNyBAQCBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHsKIHN0cnVjdCBzdG1tYWNfdHhfaW5mbyB7CiAJc3RydWN0IHhza190eF9tZXRhZGF0YV9jb21wbCB4c2tfbWV0YTsKIAlkbWFfYWRkcl90IGJ1ZjsKJiM0MzsJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdW5zaWduZWQgbGVuOwogCWVudW0gc3RtbWFjX3R4YnVmX3R5cGUgYnVmX3R5cGU7CiAJYm9vbCBtYXBfYXNfcGFnZTsKQEAgLTY1LDYgJiM0Mzs2Nyw3IEBAIHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgewogCWludCB0YnM7CiAJc3RydWN0IGhydGltZXIgdHh0aW1lcjsKIAl1MzIgcXVldWVfaW5kZXg7CiYjNDM7CXN0cnVjdCBwYWdlX3Bvb2wgKnBhZ2VfcG9vbDsKIAlzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXZfZGF0YTsKIAlzdHJ1Y3QgZG1hX2V4dGVuZGVkX2Rlc2MgKmRtYV9ldHggX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKIAlzdHJ1Y3QgZG1hX2VkZXNjICpkbWFfZW50eDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IGVlNDRiZDZmNGQ0OGUuLjRhYTZiMWQxNTA3YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtMTcxMiw3ICYjNDM7MTcxMiwxMCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9idWZmZXIoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCiAJaWYgKHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0uYnVmICZhbXA7JmFtcDsKIAkgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpIHsKLQkJaWYgKHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpCiYjNDM7CQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpCiYjNDM7CQkJcGFnZV9wb29sX3JlY3ljbGVfZGlyZWN0KHR4X3EtJmd0O3BhZ2VfcG9vbCwKJiM0MzsJCQkJCQkgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5wYWdlKTsKJiM0MzsJCWVsc2UgaWYgKHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpCiAJCQlkbWFfdW5tYXBfcGFnZShwcml2LSZndDtkZXZpY2UsCiAJCQkJICAgICAgIHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0uYnVmLAogCQkJCSAgICAgICB0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2ldLmxlbiwKQEAgLTE3MzUsNyAmIzQzOzE3MzgsOCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9idWZmZXIoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCQl0eF9xLSZndDt4c2tfZnJhbWVzX2RvbmUmIzQzOyYjNDM7OwogCiAJaWYgKHR4X3EtJmd0O3R4X3NrYnVmZltpXSAmYW1wOyZhbXA7Ci0JICAgIHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCKSB7CiYjNDM7CSAgICAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IgfHwKJiM0MzsJICAgICB0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkpIHsKIAkJZGV2X2tmcmVlX3NrYl9hbnkodHhfcS0mZ3Q7dHhfc2tidWZmW2ldKTsKIAkJdHhfcS0mZ3Q7dHhfc2tidWZmW2ldID0gTlVMTDsKIAl9CkBAIC0yMjAxLDYgJiM0MzsyMjA1LDggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsCiAKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmZfZG1hKTsKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmYpOwomIzQzOwlpZiAodHhfcS0mZ3Q7cGFnZV9wb29sKQomIzQzOwkJcGFnZV9wb29sX2Rlc3Ryb3kodHhfcS0mZ3Q7cGFnZV9wb29sKTsKIH0KIAogc3RhdGljIHZvaWQgZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LApAQCAtMjMzNSwxMiAmIzQzOzIzNDEsMzIgQEAgc3RhdGljIGludCBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsCiAJCQkJCSB1MzIgcXVldWUpCiB7CiAJc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSA9ICZhbXA7ZG1hX2NvbmYtJmd0O3R4X3F1ZXVlW3F1ZXVlXTsKJiM0MzsJc3RydWN0IHBhZ2VfcG9vbF9wYXJhbXMgcHBfcGFyYW1zID0geyAwIH07CiYjNDM7CXVuc2lnbmVkIGludCBudW1fcGFnZXM7CiAJc2l6ZV90IHNpemU7CiAJdm9pZCAqYWRkcjsKJiM0MzsJaW50IHJldDsKIAogCXR4X3EtJmd0O3F1ZXVlX2luZGV4ID0gcXVldWU7CiAJdHhfcS0mZ3Q7cHJpdl9kYXRhID0gcHJpdjsKIAomIzQzOwlwcF9wYXJhbXMuZmxhZ3MgPSBQUF9GTEFHX0RNQV9NQVAgfCBQUF9GTEFHX0RNQV9TWU5DX0RFVjsKJiM0MzsJcHBfcGFyYW1zLnBvb2xfc2l6ZSA9IGRtYV9jb25mLSZndDtkbWFfdHhfc2l6ZTsKJiM0MzsJbnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLSZndDtkbWFfYnVmX3N6LCBQQUdFX1NJWkUpOwomIzQzOwlwcF9wYXJhbXMub3JkZXIgPSBpbG9nMihudW1fcGFnZXMpOwomIzQzOwlwcF9wYXJhbXMubmlkID0gZGV2X3RvX25vZGUocHJpdi0mZ3Q7ZGV2aWNlKTsKJiM0MzsJcHBfcGFyYW1zLmRldiA9IHByaXYtJmd0O2RldmljZTsKJiM0MzsJcHBfcGFyYW1zLmRtYV9kaXIgPSBETUFfQklESVJFQ1RJT05BTDsKJiM0MzsJcHBfcGFyYW1zLm9mZnNldCA9IDA7CiYjNDM7CXBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFOwomIzQzOwomIzQzOwl0eF9xLSZndDtwYWdlX3Bvb2wgPSBwYWdlX3Bvb2xfY3JlYXRlKCZhbXA7cHBfcGFyYW1zKTsKJiM0MzsJaWYgKElTX0VSUih0eF9xLSZndDtwYWdlX3Bvb2wpKSB7CiYjNDM7CQlyZXQgPSBQVFJfRVJSKHR4X3EtJmd0O3BhZ2VfcG9vbCk7CiYjNDM7CQl0eF9xLSZndDtwYWdlX3Bvb2wgPSBOVUxMOwomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsJfQomIzQzOwogCXR4X3EtJmd0O3R4X3NrYnVmZl9kbWEgPSBremFsbG9jX29ianMoKnR4X3EtJmd0O3R4X3NrYnVmZl9kbWEsCiAJCQkJCSAgIGRtYV9jb25mLSZndDtkbWFfdHhfc2l6ZSk7CiAJaWYgKCF0eF9xLSZndDt0eF9za2J1ZmZfZG1hKQpAQCAtMjgzNiw3ICYjNDM7Mjg2Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLAogCQkgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX05ETykgewogCQkJeGRwZiA9IHR4X3EtJmd0O3hkcGZbZW50cnldOwogCQkJc2tiID0gTlVMTDsKLQkJfSBlbHNlIGlmICh0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHsKJiM0MzsJCX0gZWxzZSBpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8CiYjNDM7CQkJICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSB7CiAJCQl4ZHBmID0gTlVMTDsKIAkJCXNrYiA9IHR4X3EtJmd0O3R4X3NrYnVmZltlbnRyeV07CiAJCX0gZWxzZSB7CkBAIC0yODg0LDcgJiM0MzsyOTExLDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLAogCiAJCWlmIChsaWtlbHkodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmICZhbXA7JmFtcDsKIAkJCSAgIHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlICE9IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCkpIHsKLQkJCWlmICh0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2VudHJ5XS5tYXBfYXNfcGFnZSkKJiM0MzsJCQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKQomIzQzOwkJCQlwYWdlX3Bvb2xfcmVjeWNsZV9kaXJlY3QodHhfcS0mZ3Q7cGFnZV9wb29sLAomIzQzOwkJCQkJCQkgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0ucGFnZSk7CiYjNDM7CQkJZWxzZSBpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpCiAJCQkJZG1hX3VubWFwX3BhZ2UocHJpdi0mZ3Q7ZGV2aWNlLAogCQkJCQkgICAgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmLAogCQkJCQkgICAgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0ubGVuLApAQCAtMjkyMiw3ICYjNDM7Mjk1Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLAogCQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWFNLX1RYKQogCQkJdHhfcS0mZ3Q7eHNrX2ZyYW1lc19kb25lJiM0MzsmIzQzOzsKIAotCQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCKSB7CiYjNDM7CQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8CiYjNDM7CQkgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSB7CiAJCQlpZiAobGlrZWx5KHNrYikpIHsKIAkJCQlwa3RzX2NvbXBsJiM0MzsmIzQzOzsKIAkJCQlieXRlc19jb21wbCAmIzQzOz0gc2tiLSZndDtsZW47CkBAIC00NzQyLDEyICYjNDM7NDc3MywxNCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlib29sIGVuaF9kZXNjLCBoYXNfdmxhbiwgc2V0X2ljLCBpc19qdW1ibyA9IGZhbHNlOwogCXN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CiAJdW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTsKJiM0MzsJZ2ZwX3QgZ2ZwID0gR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTjsKIAl1MzIgcXVldWUgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTsKIAlpbnQgbmZyYWdzID0gc2tiX3NoaW5mbyhza2IpLSZndDtucl9mcmFnczsKIAl1bnNpZ25lZCBpbnQgZmlyc3RfZW50cnksIHR4X3BhY2tldHM7CiAJc3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0czsKIAlzdHJ1Y3QgZG1hX2Rlc2MgKmRlc2MsICpmaXJzdF9kZXNjOwogCXN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3E7CiYjNDM7CXN0cnVjdCBwYWdlICp0eF9idWZfcGFnZTsKIAlpbnQgaSwgY3N1bV9pbnNlcnRpb24gPSAwOwogCWludCBlbnRyeSwgZmlyc3RfdHg7CiAJZG1hX2FkZHJfdCBkbWFfYWRkcjsKQEAgLTQ4MTQsMTMgJiM0Mzs0ODQ3LDMzIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCX0gZWxzZSB7CiAJCWJvb2wgbGFzdF9zZWdtZW50ID0gKG5mcmFncyA9PSAwKTsKIAotCQlkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtJmd0O2RldmljZSwgc2tiLSZndDtkYXRhLAotCQkJCQkgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTsKLQkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKHByaXYtJmd0O2RldmljZSwgZG1hX2FkZHIpKQotCQkJZ290byBkbWFfbWFwX2VycjsKJiM0MzsJCWlmICghKGxhc3Rfc2VnbWVudCAmYW1wOyZhbXA7IHByaXYtJmd0O3BsYXQtJmd0O3R4X2J1Zl9xdWlyaykpIHsKJiM0MzsJCQlkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtJmd0O2RldmljZSwgc2tiLSZndDtkYXRhLAomIzQzOwkJCQkJCSAgbm9wYWdlZF9sZW4sIERNQV9UT19ERVZJQ0UpOwomIzQzOwkJCWlmIChkbWFfbWFwcGluZ19lcnJvcihwcml2LSZndDtkZXZpY2UsIGRtYV9hZGRyKSkKJiM0MzsJCQkJZ290byBkbWFfbWFwX2VycjsKIAotCQlzdG1tYWNfc2V0X3R4X3NrYl9kbWFfZW50cnkodHhfcSwgZmlyc3RfZW50cnksIGRtYV9hZGRyLAotCQkJCQkgICAgbm9wYWdlZF9sZW4sIGZhbHNlKTsKJiM0MzsJCQlzdG1tYWNfc2V0X3R4X3NrYl9kbWFfZW50cnkodHhfcSwgZmlyc3RfZW50cnksIGRtYV9hZGRyLAomIzQzOwkJCQkJCSAgICBub3BhZ2VkX2xlbiwgZmFsc2UpOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQl0eF9idWZfcGFnZSA9IHBhZ2VfcG9vbF9hbGxvY19wYWdlcyh0eF9xLSZndDtwYWdlX3Bvb2wsIGdmcCk7CiYjNDM7CQkJaWYgKCF0eF9idWZfcGFnZSkKJiM0MzsJCQkJZ290byBkbWFfbWFwX2VycjsKJiM0MzsKJiM0MzsJCQlkbWFfYWRkciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2FkZHIodHhfYnVmX3BhZ2UpOwomIzQzOwkJCXN0bW1hY19zZXRfdHhfZG1hX2VudHJ5KHR4X3EsIGZpcnN0X2VudHJ5LAomIzQzOwkJCQkJCVNUTU1BQ19UWEJVRl9UX0RNQSwgZG1hX2FkZHIsCiYjNDM7CQkJCQkJbm9wYWdlZF9sZW4sIGZhbHNlKTsKJiM0MzsJCQl0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2ZpcnN0X2VudHJ5XS5wYWdlID0gdHhfYnVmX3BhZ2U7CiYjNDM7CiYjNDM7CQkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocHJpdi0mZ3Q7ZGV2aWNlLCBkbWFfYWRkciwKJiM0MzsJCQkJCQlub3BhZ2VkX2xlbiwgRE1BX0JJRElSRUNUSU9OQUwpOwomIzQzOwkJCXNrYl9jb3B5X2Zyb21fbGluZWFyX2RhdGEoc2tiLCBwYWdlX2FkZHJlc3ModHhfYnVmX3BhZ2UpLAomIzQzOwkJCQkJCSAgbm9wYWdlZF9sZW4pOwomIzQzOwkJCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHByaXYtJmd0O2RldmljZSwgZG1hX2FkZHIsCiYjNDM7CQkJCQkJICAgbm9wYWdlZF9sZW4sCiYjNDM7CQkJCQkJICAgRE1BX0JJRElSRUNUSU9OQUwpOwomIzQzOwkJfQogCiAJCXN0bW1hY19zZXRfZGVzY19hZGRyKHByaXYsIGZpcnN0X2Rlc2MsIGRtYV9hZGRyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYwppbmRleCBkYzVmOTUxYTMxMWQ0Li4wZjhkMmZjNjFjZTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYwpAQCAtNTc1LDYgJiM0Mzs1NzUsOCBAQCBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpCiAKIAlvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgJiMzNDtzbnBzLHBzLXNwZWVkJiMzNDssICZhbXA7cGxhdC0mZ3Q7bWFjX3BvcnRfc2VsX3NwZWVkKTsKIAomIzQzOwlwbGF0LSZndDt0eF9idWZfcXVpcmsgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICYjMzQ7c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmsmIzM0Oyk7CiYjNDM7CiAJcGxhdC0mZ3Q7YXhpID0gc3RtbWFjX2F4aV9zZXR1cChwZGV2KTsKIAogCXJjID0gc3RtbWFjX210bF9zZXR1cChwZGV2LCBwbGF0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmggYi9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oCmluZGV4IDQ0MzBiOTY3YWJkZWIuLmQ0YzlkNzdhNmY4MWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaApAQCAtMjY4LDYgJiM0MzsyNjgsNyBAQCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgewogCXU4IHR4X3F1ZXVlc190b191c2U7CiAJdTggcnhfc2NoZWRfYWxnb3JpdGhtOwogCXU4IHR4X3NjaGVkX2FsZ29yaXRobTsKJiM0MzsJYm9vbCB0eF9idWZfcXVpcms7CiAJc3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdOwogCXN0cnVjdCBzdG1tYWNfdHhxX2NmZyB0eF9xdWV1ZXNfY2ZnW01UTF9NQVhfVFhfUVVFVUVTXTsKIAl2b2lkICgqZ2V0X2ludGVyZmFjZXMpKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdm9pZCAqYnNwX3ByaXYsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2MzEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBJbXBhY3Qgb2YgYSBOZXcgc3RtbWFjIEZlYXR1cmU6IEEgUUVNVSBQZXJzcGVjdGl2ZSoqCgpPa2F5LCBzbyB3ZSBoYXZlIHRoaXMgbmV3IHBhdGNoIGFkZGluZyB0aGUgYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYCBmZWF0dXJlIHRvIHRoZSBgc3RtbWFjYCBldGhlcm5ldCBkcml2ZXIuIEVzc2VudGlhbGx5LCBpdCYjMzk7cyBhYm91dCBvcHRpbWl6aW5nIHRyYW5zbWl0IG9wZXJhdGlvbnMgYnkgc3dhcHBpbmcgb3V0IHN0cmVhbWluZyBidWZmZXJzIGZvciBwYWdlIHBvb2wgYnVmZmVycyB3aGVuIHRoZSBxdWlyayBpcyBlbmFibGVkLiBUaGUgZGV2aWNlIHRyZWUgYmluZGluZyBpcyBpbiBwbGFjZS4gVGhlIGNvcmUgZHJpdmVyIGlzIGBzdG1tYWNgIChzdG1pY3JvL3N0bW1hYykgLSB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIHJpZ2h0PwoKTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgcmVhY2hhYmlsaXR5LCBlc3BlY2lhbGx5IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSXMgdGhpcyBldmVuIGdvaW5nIHRvIGJlIHRlc3RhYmxlIGluIHNvbWV0aGluZyBsaWtlIFFFTVU/IEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiBgc3RtbWFjYCBpcyB1c2VkIGluIGFueSB2aXJ0dWFsaXplZCBzZXR1cHMsIG9yIGlmIFFFTVUgaGFzIGFueSByZWxldmFudCBlbXVsYXRpb24gc3VwcG9ydC4gV2FpdCBhIG1pbnV0ZSwgd2FzbiYjMzk7dCBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyBzdXBwb3J0ZWQgaW4gc29tZSBRRU1VIHBsYXRmb3Jtcz8gSSYjMzk7bSBwcmV0dHkgc3VyZSBJJiMzOTt2ZSBzZWVuIG1lbnRpb25zIG9mIHRoYXQgYmVmb3JlLi4uIHllcywgbGV0JiMzOTtzIGxvb2sgdGhyb3VnaCB0aGUgUUVNVSBkb2N1bWVudGF0aW9uIGFuZCBjb2RlLiBPa2F5LCBsZXQmIzM5O3Mgc2VhcmNoIHRoZSBrZXJuZWwgYW5kIFFFTVUgc291cmNlIGZvciBgc3RtbWFjYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHZpYWJsZSB0aGlzIHBhdGNoIGlzIGluIHRlcm1zIG9mIHRlc3RhYmlsaXR5IHdpdGhpbiBhIGNvbW1vbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDYtXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02MS1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYzLVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NjpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OD1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjg6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYwOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2NTp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxMz1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTU6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5Olx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0Ni1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUyOmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNTM0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNTA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYHN0bW1hY2AgRHJpdmVyIGFuZCBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gdGhlIGBzdG1tYWNgIGRyaXZlciBpcyBwcmV0dHkgd2lkZXNwcmVhZDsgSW50ZWwgS2VlbSBCYXksIFJvY2tjaGlwLCBUZWdyYSwgQWxsd2lubmVyIOKAkyBpdCYjMzk7cyBhbGwgb3ZlciB0aGUgcGxhY2UuIENsZWFybHksIGl0JiMzOTtzIGEgZnVuY3Rpb25pbmcgZHJpdmVyLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBwYWdlIHBvb2wgcXVpcmsgZm9yIHRyYW5zbWl0IGJ1ZmZlcnMsIHRyaWdnZXJlZCBieSB0aGUgZGV2aWNlIHRyZWUgZW50cnkgYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYC4gVGhpcyBpcyBpbnRlcmVzdGluZy4uLiBpZiBpdCYjMzk7cyBkZXZpY2UgdHJlZSBjb250cm9sbGVkLCBjb3VsZCBJIHBvdGVudGlhbGx5IGhpdCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VPyBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IFFFTVUgbW9kZWxzIHRoZSBgc3RtbWFjYCBoYXJkd2FyZS4gSXMgaXQgdXNpbmcgc29tZXRoaW5nIGxpa2UgYGh3L25ldC9kZXNpZ253YXJlLmNgPyAKCkhtbSwgdGhlIHBhdGNoIGFsc28gbW9kaWZpZXMgYHNvY2ZwZ2FfYWdpbGV4NS5kdHNpYC4gT2theSwgc28gdGhleSYjMzk7cmUgZW5hYmxpbmcgdGhlIHF1aXJrIGZvciB0aGF0IHBsYXRmb3JtLiBOb3csIHRoZSByZWFsIHF1ZXN0aW9uOiBjYW4gSSBmdXp6IHRoaXMgd2l0aCBzeXprYWxsZXI/IFN5emthbGxlciBjYW4gaW5qZWN0IGRldmljZSB0cmVlIG5vZGVzIG9yIHZpcnR1YWwgZGV2aWNlcyBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlci4gSSBrbm93IGl0IGNhbiB1c2UgYHN5el9kZXZtZW1gIG9yIHNpbWlsYXIsIGJ1dCB0eXBpY2FsbHkgaXQgZGVwZW5kcyBvbiBleGlzdGluZyBkZXZpY2VzIG9yIHVzZXMgYHN5el9nZW5ldGxpbmtgLiBCdXQsIGl0IGNhbiBhbHNvIHVzZSBgdHVuYC9gdGFwYCBvciBpbnRlcmFjdCB3aXRoIHRoZSBuZXR3b3JrIHN0YWNrLiBIb3dldmVyLCBJIG5lZWQgdGhlIGRldmljZSB0byBiZSBwcm9iZWQgdG8gcmVhY2ggdGhpcyBzcGVjaWZpYyBjb2RlLiBTbywgdGhlIHF1ZXN0aW9uIGJlY29tZXMsIGlzIGBzdG1tYWNgIHByb2JlZCBpbiBzeXprYWxsZXImIzM5O3Mgc3RhbmRhcmQgZW52aXJvbm1lbnRzPyBTeXprYWxsZXIgdXNlcyBgcWVtdS1zeXN0ZW0teDg2XzY0YCwgYGFhcmNoNjRgLCBvciBgYXJtYC4gSWYgaXQmIzM5O3MgYW4gQVJNNjQgZW52aXJvbm1lbnQsIGBzb2NmcGdhX2FnaWxleDVgIG1pZ2h0IG5vdCBiZSB0aGUgZGVmYXVsdCBtYWNoaW5lLgoKV2FpdCwgYHN0bW1hY2AgY2FuIGFsc28gYmUgYSBQQ0kgZGV2aWNlISBUaGF0JiMzOTtzIGEga2V5IG9ic2VydmF0aW9uLiBJIG5lZWQgdG8gY2hlY2sgaWYgYHN0bW1hY2AgaGFzIGEgUENJIGJpbmRpbmcuIExldCYjMzk7cyBzZWUuLi4gWWVwLCBgQ09ORklHX1NUTU1BQ19QQ0lgIGlzIHRoZXJlISBPa2F5LCBzbyBpdCBjYW4gYmUgYSBQQ0kgZGV2aWNlLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgZG9lcyBgc3RtbWFjX3BjaS5jYCBhY3R1YWxseSBzZXQgdGhpcyBgdHhfYnVmX3F1aXJrYD8gVGhhdCYjMzk7cyB3aGF0IEkgbmVlZCB0byB2ZXJpZnkgbmV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0eF9idWZfcXVpcmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00NzcxPXN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDg0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDg1MDpcdFx0aWYgKCEobGFzdF9zZWdtZW50IFx1MDAyNlx1MDAyNiBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfYnVmX3F1aXJrKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00ODUxLVx0XHRcdGRtYV9hZGRyID0gZG1hX21hcF9zaW5nbGUocHJpdi1cdTAwM2VkZXZpY2UsIHNrYi1cdTAwM2VkYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxNj1zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTc4Olx0cGxhdC1cdTAwM2V0eF9idWZfcXVpcmsgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsIFwmIzM0O3NucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU3OS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjkxNgoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDMxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXIgQ2hhbmdlKioKCk9rYXksIHNvIHRoaXMgYHR4X2J1Zl9xdWlya2AgZmxhZ+KApiBJIHNlZSBpdCYjMzk7cyBvbmx5IHNldCB3aXRoaW4gYHN0bW1hY19wcm9iZV9jb25maWdfZHRgLiBUaGF0JiMzOTtzIGEgRGV2aWNlIFRyZWUgdGhpbmcsIHNwZWNpZmljYWxseSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG1tbSwgY291bGQgU3l6a2FsbGVyIHBvdGVudGlhbGx5IHRyaWdnZXIgdGhpcyBzb21laG93PyBJdCAqY2FuKiBsb2FkIGN1c3RvbSBEZXZpY2UgVHJlZXMgb3IgdXNlIGBzeXpfZGV2bWVtYCB0byBwb2tlIGFyb3VuZC4gQnV0IGhvbGQgb24sIHR5cGljYWxseSBpdCBkb2VzbiYjMzk7dCBkeW5hbWljYWxseSBsb2FkIERldmljZSBUcmVlcyB1bmxlc3Mgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgbGlrZSBgc3l6X21vdW50X2ltYWdlYCwgYW5kIHRoZXJlJiMzOTtzIG5vIGdlbmVyYWwgbWVjaGFuaXNtIHRvIGFkZCBEVCBub2RlcyBvbiB0aGUgZmx5IGZvciBwbGF0Zm9ybSBkZXZpY2VzIHdpdGhvdXQgRFQgb3ZlcmxheXMsIHJpZ2h0PwoKV2FpdCwgZG9lcyBTeXprYWxsZXIgaGF2ZSBzb21lIHNvcnQgb2YgYHN5el9pbml0X25ldF9kZXZpY2VgIGNhbGwgb3Igc2ltaWxhcj8gTm8sIGNhbiYjMzk7dCB0aGluayBvZiBhbnl0aGluZy4KCkJ1dCB3YWl0IGFnYWluIOKAkyBTeXprYWxsZXIgKmRvZXMqIGZ1enogQVJNNjQgcGxhdGZvcm1zIHdpdGggZGlmZmVyZW50IERldmljZSBUcmVlcy4gSWYgdGhlIEFnaWxleDUgRFQgaXMgYmVpbmcgdXNlZCwgb3IgaWYgdGhlIHJlbGV2YW50IHByb3BlcnR5IGlzIHByZXNlbnQsIHRoZW4gaXQmIzM5O3MgKnBvc3NpYmxlKiBpdCBjb3VsZCBnZXQgZnV6emVkLiBUaGF0JiMzOTtzIGEgcG9pbnQuCgpSaWdodCwgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBzdG1tYWNfbWFpbi5jYCDigJMgdGhhdCYjMzk7cyB0aGUgZHJpdmVyJiMzOTtzIGNvcmUuIEFuZCB0aGUgY2hhbmdlcyBhcmUgaW4ga2V5IGFyZWFzOiBgc3RtbWFjX3R4X2NsZWFuYCwgYHN0bW1hY19mcmVlX3R4X2J1ZmZlcmAsIGBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYW5kIGBzdG1tYWNfeG1pdGAuCgpOb3csIHRoZSBpbXBvcnRhbnQgcGFydDogYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBsb29rcyBsaWtlIGl0JiMzOTtzIGNhbGxlZCB1bmNvbmRpdGlvbmFsbHkhIFRoYXQmIzM5O3MgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgaW50byB0aGF0IGZ1bmN0aW9uIGFuZCBzZWUgd2hhdCYjMzk7cyBnb2luZyBvbi4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjMwNz1zdGF0aWMgaW50IGFsbG9jX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMzI5LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMzMwOiAqIF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzIC0gYWxsb2MgVFggcmVzb3VyY2VzIChwZXIgcXVldWUpLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMzMxLSAqIEBwcml2OiBwcml2YXRlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjMzOC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjMzOTpzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjM0MC1cdFx0XHRcdFx0IHN0cnVjdCBzdG1tYWNfZG1hX2NvbmYgKmRtYV9jb25mLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjM5Nj1zdGF0aWMgaW50IGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNDA0LVx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyB0eF9jb3VudDsgcXVldWUmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0MDU6XHRcdHJldCA9IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIGRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0MDYtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDg4PXZvaWQgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwOTU6XHRyZXQgPSBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwOTYtXHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQzMTQKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA2NzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBwYWdlX3Bvb2xgIEludHJvZHVjdGlvbiBpbiB0aGUgU1RNTUFDIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzOiBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgIGlzIG5vdyAqYWx3YXlzKiBjYWxsZWQgZm9yIGV2ZXJ5IHRyYW5zbWl0IHF1ZXVlLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhhdCBxdWlya3kgYHR4X2J1Zl9xdWlya2AgaXMgYWN0aXZlLiAgSW50ZXJlc3RpbmcuIExldCYjMzk7cyBtYWtlIHN1cmUuIFJpZ2h0LCBzbyBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCBjcmVhdGVzIGEgYHBhZ2VfcG9vbGAgZm9yIGVhY2ggVFggcXVldWUgKnVuY29uZGl0aW9uYWxseSouIFRoYXQmIzM5O3MgdGhlIGtleS4gVGhpcyByZXByZXNlbnRzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gZHJpdmVyIGluaXRpYWxpemF0aW9uIGFuZCBtZW1vcnkgYWxsb2NhdGlvbiwgcmVnYXJkbGVzcyBvZiBhbnkgc3BlY2lmaWMgcXVpcmsgc2V0dGluZ3MuIFRoaXMgaGFzIGltbWVkaWF0ZSBhbmQgZmFyLXJlYWNoaW5nIGltcGxpY2F0aW9ucy4gSWYgdGhlIHF1aXJrIGlzIGVuYWJsZWQsIHRoZSBjb2RlIHdpbGwgKmFsc28qIHVzZSB0aGUgcGFnZSBwb29sIHdpdGhpbiBgc3RtbWFjX3htaXRgLgoKVGhpcyBmdW5kYW1lbnRhbGx5IGFsdGVycyB0aGUgZHJpdmVyJiMzOTtzIG1lbW9yeSBtYW5hZ2VtZW50IHN0cmF0ZWd5LCBhbmQsIGFzIGEgZHJpdmVyIGV4cGVydCwgSSBjYW4gdGVsbCB5b3UgdGhpcyBuZWVkcyBhIGNsb3NlIGV4YW1pbmF0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZnV6eiB0aGlzIGFyZWEuIEFueSBjaGFuZ2UgbGlrZSB0aGlzIGlzIGEgcG90ZW50aWFsIHNvdXJjZSBvZiBpc3N1ZXMuCgpOb3csIEkgbmVlZCB0byBmb2N1cyBvbiB0aGUga2V5IHN5bWJvbHMgaW52b2x2ZWQuIExldCYjMzk7cyBsaXN0IHRob3NlLiBUaGUgcGF0Y2ggbW9kaWZpZWQ6Ci0gYHN0bW1hY19mcmVlX3R4X2J1ZmZlcmAgKHN0YXRpYykKLSBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgKHN0YXRpYykKLSBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgIChzdGF0aWMpCi0gYHN0bW1hY190eF9jbGVhbmAgKHN0YXRpYykKLSBgc3RtbWFjX3htaXRgIChzdGF0aWMpCgpIbW0sIGFsbCBvZiB0aGVzZSBhcmUgc3RhdGljLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgKmV4dGVybmFsKiBpbXBhY3QuIFNvLCBJIG5lZWQgdG8gZ28gdXBzdHJlYW0gYW5kIGZpbmQgdGhlIG5vbi1zdGF0aWMgZnVuY3Rpb25zIHRoYXQgY2FsbCB0aGVtLiBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCwgdGhlIHdheSB0aGUgZnVuY3Rpb25hbGl0eSBjaGFuZ2VzIGludGVyYWN0IHdpdGggdGhlIGJyb2FkZXIgY29kZSBiYXNlLiBGcm9tIGhlcmUsIEkgY2FuIHRyYWNlIHBvdGVudGlhbCBhcmVhcyBvZiBicmVha2FnZSB0byB0ZXN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfeG1pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQ3NTE9c3RhdGljIGJvb2wgc3RtbWFjX2hhc19pcF9ldGhlcnR5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ3NjMtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ3NjQ6ICogIHN0bW1hY194bWl0IC0gVHggZW50cnkgcG9pbnQgb2YgdGhlIGRyaXZlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzY1LSAqICBAc2tiIDogdGhlIHNvY2tldCBidWZmZXJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ3NzAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ3NzE6c3RhdGljIG5ldGRldl90eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ3NzIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzM0MD1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHN0bW1hY19uZXRkZXZfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQxLVx0Lm5kb19vcGVuID0gc3RtbWFjX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNDI6XHQubmRvX3N0YXJ0X3htaXQgPSBzdG1tYWNfeG1pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM0My1cdC5uZG9fZmVhdHVyZXNfY2hlY2sgPSBzdG1tYWNfZmVhdHVyZXNfY2hlY2ssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1ODc3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gQ2FsbCBTdHJ1Y3R1cmUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY194bWl0YCBmdW5jdGlvbi4gSXQmIzM5O3MgdGhlIGBuZG9fc3RhcnRfeG1pdGAgY2FsbGJhY2ssIHJpZ2h0PyBUaGUgaW5zdHJ1Y3Rpb25zIEkmIzM5O3ZlIGJlZW4gZ2l2ZW4gc2F5IHRvIHByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMuIE5vdywgdGhlIGRvY3VtZW50YXRpb24gc2F5cyB0byBwcmlvcml0aXplIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIHN0YXRpYyBpbnRlcm5hbCBoZWxwZXIgZnVuY3Rpb25zLgoKSW5pdGlhbGx5LCBJIHRob3VnaHQsICYjMzQ7SG1tLCBgc3RtbWFjX3htaXRgIGlzICpzdGF0aWMqLiYjMzQ7IEJ1dCBob2xkIG9uLCBpdCYjMzk7cyBiZWluZyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIsIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQgbWVhbnMgdGhlIGNvbXBpbGVyICpjYW4mIzM5O3QqIGlubGluZSBpdCwgcmlnaHQ/IEl0JiMzOTtsbCBkZWZpbml0ZWx5IGhhdmUgaXRzIG93biBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gU28sIHdoaWxlIGl0JiMzOTtzIHN0YXRpYywgaXQmIzM5O3MgYmVoYXZpbmcgbGlrZSBhIG5vbi1zdGF0aWMgZW50cnlwb2ludCBpbiBwcmFjdGljZS4gVG8gYmUgYWJzb2x1dGVseSBzYWZlLCBJJiMzOTtsbCBhZGQgYHN0bW1hY194bWl0YCB0byB0aGUgbGlzdC4KCk5vdywgd2hhdCBhYm91dCBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgPyBMZXQmIzM5O3MgdHJhY2UgaXQuIEl0JiMzOTtzIGNhbGxlZCBieSBgYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggaXMgY2FsbGVkIGJ5IGBhbGxvY19kbWFfZGVzY19yZXNvdXJjZXNgLCB3aGljaCBpcyBjYWxsZWQgYnkuLi4gb2theSwgbG9va3MgbGlrZSBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX3Jlc3VtZWAuIFJpZ2h0LiBJdCYjMzk7cyB0aW1lIHRvIGNoZWNrIG91dCBgc3RtbWFjX29wZW5gLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQwODE9c3RtbWFjX3NldHVwX2RtYV9kZXNjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdW5zaWduZWQgaW50IG10dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxNDYtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxNDc6ICogIF9fc3RtbWFjX29wZW4gLSBvcGVuIGVudHJ5IHBvaW50IG9mIHRoZSBkcml2ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE0OC0gKiAgQGRldiA6IHBvaW50ZXIgdG8gdGhlIGRldmljZSBzdHJ1Y3R1cmUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTU1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MTU2OnN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTU3LVx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMDU6c3RhdGljIGludCBzdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjA2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMzM6XHRyZXQgPSBfX3N0bW1hY19vcGVuKGRldiwgZG1hX2NvbmYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjM0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYxNDU9c3RhdGljIGludCBzdG1tYWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxODE6XHRcdHJldCA9IF9fc3RtbWFjX29wZW4oZGV2LCBkbWFfY29uZik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxODItXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNDA9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBzdG1tYWNfbmV0ZGV2X29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM0MTpcdC5uZG9fb3BlbiA9IHN0bW1hY19vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQyLVx0Lm5kb19zdGFydF94bWl0ID0gc3RtbWFjX3htaXQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03NjI3PWludCBzdG1tYWNfcmVpbml0X3F1ZXVlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCByeF9jbnQsIHU4IHR4X2NudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2NDYtXHRpZiAobmV0aWZfcnVubmluZyhkZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NjQ3Olx0XHRyZXQgPSBzdG1tYWNfb3BlbihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzY1Mj1pbnQgc3RtbWFjX3JlaW5pdF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJ4X3NpemUsIHUzMiB0eF9zaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzY2My1cdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc2NjQ6XHRcdHJldCA9IHN0bW1hY19vcGVuKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2NjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTcxCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgSSBkZWx2ZSBpbnRvIHRoaXMgY29kZToKCioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyJiMzOTtzIEZ1bmN0aW9uIENhbGxzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlIFNUTU1BQyBkcml2ZXIgaXMgc3RydWN0dXJlZCwgc3BlY2lmaWNhbGx5IGhvdyB0aGUgbmV0d29yayBkZXZpY2Ugb3BlcmF0aW9ucyBhcmUgZGVmaW5lZC4gSSBzZWUgdGhhdCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX3htaXRgIGFyZSBib3RoIGRlY2xhcmVkIGFzIHN0YXRpYyBmdW5jdGlvbnMsIHdoaWNoIGlzIHN0YW5kYXJkIHByYWN0aWNlIGZvciBpbnRlcm5hbCBkcml2ZXIgZnVuY3Rpb25zLCBidXQgdGhleSYjMzk7cmUgYXNzaWduZWQgdG8gdGhlIGBzdG1tYWNfbmV0ZGV2X29wc2Agc3RydWN0dXJlLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIHRoZXkgYXJlIHRoZSBlbnRyeSBwb2ludHMgZm9yIHRoZSBuZXR3b3JrIGRldmljZS4gTm93LCBJJiMzOTttIHRyeWluZyB0byB0cmFjZSB0aGUgZGF0YSBmbG93IGFuZCBJJiMzOTttIHdvbmRlcmluZyB3aGVyZSBlbHNlIGBzdG1tYWNfdHhfY2xlYW5gIGZpdHMgaW50byB0aGlzIHBpY3R1cmUsIGFzIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB0cmFuc21pdCBwYXRoLgoKSSBrbm93IGBzdG1tYWNfdHhfY2xlYW5gIGlzIHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCB0aGUgdHJhbnNtaXQgcXVldWUsIG9idmlvdXNseS4gSSYjMzk7bSBhd2FyZSB0aGF0IGBzdG1tYWNfdHhfY2xlYW5gIGlzIGNhbGxlZCBieSBgc3RtbWFjX3R4X3RpbWVyYCBhbmQgYHN0bW1hY19wb2xsYC4gU2luY2UgYHN0bW1hY19wb2xsYCBoYW5kbGVzIHRoZSBpbnRlcnJ1cHQgZHJpdmVuIGNvbXBsZXRpb24sIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoYXQgbmV4dC4gSSB3aWxsIGV4YW1pbmUgYHN0bW1hY19wb2xsYCBhbmQgaXRzIHJlbGF0aW9uc2hpcCB3aXRoIGBzdG1tYWNfdHhfY2xlYW5gIHRvIGZ1bGx5IHVuZGVyc3RhbmQgaG93IHRyYW5zbWl0IGRlc2NyaXB0b3JzIGFyZSBwcm9jZXNzZWQuIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdW5kZXJzdGFuZGluZyB0aGlzIGNhbGwgcGF0aCB3aWxsIGNsYXJpZnkgdGhlIGRyaXZlciYjMzk7cyB0cmFuc21pdCBtZWNoYW5pc20uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX3BvbGwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzk5NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkLCBhbmQgd3JpdGluZyBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipQb3RlbnRpYWwgU3VzcGVjdCBJZGVudGlmaWVkOiBgc3RtbWFjX25hcGlfcG9sbGAqKgoKSG1tLCBqdXN0IGEgbW9tZW50LiBNeSBpbml0aWFsIGxpbmUgb2YgcmVhc29uaW5nIHdhcyBsZWFkaW5nIG1lIGRvd24gYSBjZXJ0YWluIHBhdGgsIGJ1dCBzb21ldGhpbmcmIzM5O3MgbmFnZ2luZyBhdCBtZS4gQ29uc2lkZXJpbmcgdGhlIGNvbnRleHQsIGFuZCB0aGUgc3BlY2lmaWMgbnVhbmNlcyBvZiB0aGUgc2l0dWF0aW9uLCBJJiMzOTttIGJlZ2lubmluZyB0byByZWNvbnNpZGVyLiBUaGUgcG90ZW50aWFsIGN1bHByaXQsIHRoZSBmdW5jdGlvbiB0aGF0JiMzOTtzIG1vc3QgbGlrZWx5IGNhdXNpbmcgdGhlIGlzc3VlLCBpcyBpbmNyZWFzaW5nbHkgcG9pbnRpbmcgdG93YXJkcyBgc3RtbWFjX25hcGlfcG9sbGAuIEkgc2hvdWxkJiMzOTt2ZSBzZWVuIGl0IHNvb25lci4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGF0IGZ1bmN0aW9uLiBJdCYjMzk7cyBsaWtlbHkgaW52b2x2ZWQgaW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGNvbnRyb2xsZXLigJlzIHBvbGxpbmcgbWVjaGFuaXNtLiBJIHNob3VsZCBzdGFydCB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX25hcGlfcG9sbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTU3MTY9c3RhdGljIGludCBzdG1tYWNfcngoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgbGltaXQsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU5ODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU5ODc6c3RhdGljIGludCBzdG1tYWNfbmFwaV9wb2xsX3J4KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTk4OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MDEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MDEzOnN0YXRpYyBpbnQgc3RtbWFjX25hcGlfcG9sbF90eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYwMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjA0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjA0NjpzdGF0aWMgaW50IHN0bW1hY19uYXBpX3BvbGxfcnh0eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYwNDcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzU3Nz1zdGF0aWMgdm9pZCBzdG1tYWNfbmFwaV9hZGQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OTEtXHRcdGlmIChxdWV1ZSBcdTAwM2MgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXJ4X3F1ZXVlc190b191c2UpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5MjpcdFx0XHRuZXRpZl9uYXBpX2FkZChkZXYsIFx1MDAyNmNoLVx1MDAzZXJ4X25hcGksIHN0bW1hY19uYXBpX3BvbGxfcngpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTkzLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTk1LVx0XHRcdG5ldGlmX25hcGlfYWRkX3R4KGRldiwgXHUwMDI2Y2gtXHUwMDNldHhfbmFwaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5NjpcdFx0XHRcdFx0ICBzdG1tYWNfbmFwaV9wb2xsX3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzU5Ny1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzYwMC1cdFx0XHRuZXRpZl9uYXBpX2FkZChkZXYsIFx1MDAyNmNoLVx1MDAzZXJ4dHhfbmFwaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzYwMTpcdFx0XHRcdCAgICAgICBzdG1tYWNfbmFwaV9wb2xsX3J4dHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjAyLVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MDQ1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIFBvbGwgRnVuY3Rpb25zIGZvciBPcHRpbWl6YXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgc2VlLCBgc3RtbWFjX25hcGlfcG9sbF90eGAgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgIGFyZSB0aGUgY29yZSBOZXR3b3JrIEFQSSAoTkFQSSkgcG9sbCBmdW5jdGlvbnMgaW4gdGhpcyBTVE1NQUMgZHJpdmVyLiBTbywgSSBuZWVkIHRvIGZvY3VzIG9uIGtleSBzeW1ib2xzIHJlbGF0ZWQgdG8gdGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIG9wZXJhdGlvbnMuIEl0IGxvb2tzIGxpa2UgdGhlIG1vc3QgcmVsZXZhbnQgb25lcyBhcmU6IGBzdG1tYWNfeG1pdGAsIGBzdG1tYWNfb3BlbmAsIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCwgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgLgoKTm93LCBgc3RtbWFjX3htaXRgIGltbWVkaWF0ZWx5IGNhdGNoZXMgbXkgZXllIGFzIGEgcG90ZW50aWFsIGVudHJ5IHBvaW50IGZvciB0cmFuc21pdC4gSG9sZCBvbi4uLiBJIHNlZSB0aGF0IGBzdG1tYWNfdHhfY2xlYW5gIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCwgc28gaXQmIzM5O3Mgb2J2aW91c2x5IGltcG9ydGFudCBmb3IgY2xlYW5pbmcgdXAgdGhlIHRyYW5zbWl0IHByb2Nlc3MuIExldCBtZSBxdWlja2x5IGNoZWNrIGlmIGBzdG1tYWNfeG1pdGAgaXMgc3RhdGljLiBZZXMsIGl0JiMzOTtzIG1hcmtlZCBhcyBzdGF0aWMsIGJ1dCBpdCYjMzk7cyBhc3NpZ25lZCB0byBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0JiMzOTtzIGEga2V5IGRldGFpbCEgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgZ29pbmcgb24gdGhlcmUuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgKm5vbiotc3RhdGljIGZ1bmN0aW9ucyB0aGF0IEkgY2FuIGxldmVyYWdlIG9yIHVuZGVyc3RhbmQgYmV0dGVyLiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgYHN0bW1hY19tYWluLmNgIGZpbGUgdG8gc2VlIHdoYXQgZnVuY3Rpb25zIGFyZSBiZWluZyBleHBvcnRlZC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyJiMzOTtzIGV4dGVybmFsIGludGVyZmFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0xOTU9aW50IHN0bW1hY19zZXRfY2xrX3R4X3JhdGUodm9pZCAqYnNwX3ByaXYsIHN0cnVjdCBjbGsgKmNsa190eF9pLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjA4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjA5OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19zZXRfY2xrX3R4X3JhdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yMTc9dm9pZCBzdG1tYWNfYXhpX2JsZW5fdG9fbWFzayh1MzIgKnJlZ3ZhbCwgY29uc3QgdTMyICpibGVuLCBzaXplX3QgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ2LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjQ3OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19heGlfYmxlbl90b19tYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MzIyMj1pbnQgc3RtbWFjX2dldF9waHlfaW50Zl9zZWwocGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTMyMzctfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzozMjM4OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19nZXRfcGh5X2ludGZfc2VsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMzIzOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc3OTA9c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpzdG1tYWNfcGxhdF9kYXRfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzgyMy19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc4MjQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BsYXRfZGF0X2FsbG9jKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzgyNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgxMzg9aW50IHN0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE1NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgxNTU6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX2R2cl9wcm9iZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgxNTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MTYzPXZvaWQgc3RtbWFjX2R2cl9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE5Ni19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgxOTc6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX2R2cl9yZW1vdmUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MTk4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9ODIwNj1pbnQgc3RtbWFjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODI1Ny19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgyNTg6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MjU5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9ODMwMj1pbnQgc3RtbWFjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzg4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODM4OTpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcmVzdW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODM5MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgzOTI9REVGSU5FX1NJTVBMRV9ERVZfUE1fT1BTKHN0bW1hY19zaW1wbGVfcG1fb3BzLCBzdG1tYWNfc3VzcGVuZCwgc3RtbWFjX3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgzOTM6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3NpbXBsZV9wbV9vcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzk0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTAyOAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXImIzM5O3MgQXJjaGl0ZWN0dXJlKioKCk9rYXksIHNvIGBzdG1tYWNfZHZyX3Byb2JlYCBpcyB0aGUgZW50cnkgcG9pbnQsIHRoZSBtYWluIHByb2JlIGZ1bmN0aW9uLCB0aGF0IG1ha2VzIHNlbnNlLiBCdXQgdGhlIG5ldHdvcmsgb3BlcmF0aW9ucyB0aGVtc2VsdmVzLCB0aG9zZSBhcmUgZGVjbGFyZWQgYXMgYHN0YXRpY2AuIFRoYXQgaW1tZWRpYXRlbHkganVtcHMgb3V0IGF0IG1lIGJlY2F1c2UgdGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWNhbGx5IGFkdmlzZXMgYWdhaW5zdCB1c2luZyBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucyB3aGVyZSBwb3NzaWJsZSwgcHJlZmVycmluZyBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMuIFRoZSByZWFzb24gaXMgcHJldHR5IGNsZWFyIOKAkyB0aG9zZSBzdGF0aWMgZnVuY3Rpb25zIGFyZSBvZnRlbiBpbmxpbmVkLCBhbmQgZG9uJiMzOTt0IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcy4KCk5vdywgYHN0bW1hY194bWl0YCBpcyAqdGVjaG5pY2FsbHkqIHN0YXRpYywgYnV0IGl0JiMzOTtzIGFzc2lnbmVkIHRvIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQgYWxvbmUgdGVsbHMgbWUgaXQmIzM5O3MgKm5vdCogaW5saW5lZCwgYmVjYXVzZSBpdHMgYWRkcmVzcyBpcyBiZWluZyB0YWtlbi4gVGhlIHNhbWUgbG9naWMgbGlrZWx5IGFwcGxpZXMgdG8gYHN0bW1hY19vcGVuYCwgYHN0bW1hY19uYXBpX3BvbGxfdHhgLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAuICBXZSBjYW4gZWFzaWx5IHZlcmlmeSB0aGF0IGJ5IGxpc3RpbmcgdGhlbSwganVzdCB0byBiZSBzdXJlLgoKTmV4dCBzdGVwOiBsZXQmIzM5O3MgdmVyaWZ5IHRoZSBLY29uZmlnIG9wdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gZW5hYmxlIHRoaXMuIFRoZSBkcml2ZXImIzM5O3MgYFNUTU1BQ19FVEhgLCBzbyBsZXQmIzM5O3MgY2hlY2sgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNUTU1BQ19FVEgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE2NDUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBBc3Nlc3NtZW50KioKClJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gaWRlbnRpZnkgdGhlIGRlcGVuZGVuY2llcy4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHN5c3RlbSwgYSBwcm9jZXNzLCBhIHByb2JsZW0g4oCTIHdoYXRldmVyICYjMzQ7aXQmIzM0OyBpcyDigJMgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIGZvdW5kYXRpb25hbCBlbGVtZW50cyBpcyBwYXJhbW91bnQuIFdoYXQgYXJlIHRoZSBrZXkgdmFyaWFibGVzPyBUaGUgY29yZSBpbnB1dHM/IFRoZSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zPyBQaW5wb2ludGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaXMgdGhlIGVzc2VudGlhbCBmaXJzdCBzdGVwIHRvIGFueSBlZmZlY3RpdmUgYW5hbHlzaXMuIFdoZXJlIGRvIHdlIGJlZ2luIHRvIHVucmF2ZWwgY29tcGxleGl0eT8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDpcdGRlcGVuZHMgb24gSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiBIQVNfRE1BXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjU6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY6XHRkZXBlbmRzIG9uIEVUSFRPT0xfTkVUTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy03LVx0c2VsZWN0IE1JSVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjA9Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFNUTU1BQyBTZWxmdGVzdHNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjMtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTQ0PWNvbmZpZyBEV01BQ19EV0NfUU9TX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDctXHRzZWxlY3QgTUlJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQ4Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgSEFTX0RNQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00OS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTYwPWNvbmZpZyBEV01BQ19BTkFSSU9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Mi1cdGRlZmF1bHQgQVJDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjYzOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQyB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY0LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Njk9Y29uZmlnIERXTUFDX0VJQzc3MDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzAtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBFc3dpbiBlaWM3NzAwIGV0aGVybmV0IGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo3MTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IEFSQ0hfRVNXSU4gfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTcyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTgwLVx0ZGVmYXVsdCBNQUNIX0lOR0VOSUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODE6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IChNQUNIX0lOR0VOSUMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04Mi1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz05MD1jb25maWcgRFdNQUNfSVBRODA2WFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTItXHRkZWZhdWx0IEFSQ0hfUUNPTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5MzpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1FDT00gfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05NC1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMDY9Y29uZmlnIERXTUFDX0xQQzE4WFhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEwOC1cdGRlZmF1bHQgQVJDSF9MUEMxOFhYXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEwOTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0xQQzE4WFggfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTAtXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTUtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDI3eHggR01BQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE3LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTIyPWNvbmZpZyBEV01BQ19NRVNPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI0LVx0ZGVmYXVsdCBBUkNIX01FU09OXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyNTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IENPTU1PTl9DTEsgXHUwMDI2XHUwMDI2IChBUkNIX01FU09OIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI2LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzUtXHRkZWZhdWx0IEFSQ0hfTUEzNVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzY6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9NQTM1IHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTM3LVx0c2VsZWN0IE1GRF9TWVNDT05cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0Ny1cdGRlZmF1bHQgQVJDSF9RQ09NXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0ODpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1FDT00gfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDktXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Ny1cdGRlZmF1bHQgQVJDSF9SRU5FU0FTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE1ODpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1JFTkVTQVMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTktXHRzZWxlY3QgUENTX1JaTjFfTUlJQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTY4PWNvbmZpZyBEV01BQ19ST0NLQ0hJUFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTcwLVx0ZGVmYXVsdCBBUkNIX1JPQ0tDSElQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE3MTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1JPQ0tDSElQIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTcyLVx0c2VsZWN0IE1GRF9TWVNDT05cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE3OT1jb25maWcgRFdNQUNfUlpOMVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTgxLVx0ZGVmYXVsdCBBUkNIX1JaTjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTgyOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfUlpOMSB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4My1cdHNlbGVjdCBQQ1NfUlpOMV9NSUlDXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTkzLVx0ZGVmYXVsdCBBUkNIX1MzMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxOTQ6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9TMzIgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMDM9Y29uZmlnIERXTUFDX1NPQ0ZQR0Fcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwNS1cdGRlZmF1bHQgQVJDSF9JTlRFTF9TT0NGUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDctXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjE4PWNvbmZpZyBEV01BQ19TT1BIR09cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE5LVx0dHJpc3RhdGUgXCYjMzQ7U29waGdvIGR3bWFjIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjIwOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU09QSEdPIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjIxLVx0ZGVmYXVsdCBtIGlmIEFSQ0hfU09QSEdPXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMjk9Y29uZmlnIERXTUFDX1NQQUNFTUlUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzMC1cdHRyaXN0YXRlIFwmIzM0O1NwYWNlbWl0IGR3bWFjIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjMxOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU1BBQ0VNSVQgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzItXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjQxPWNvbmZpZyBEV01BQ19TVEFSRklWRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDItXHR0cmlzdGF0ZSBcJiMzNDtTdGFyRml2ZSBkd21hYyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MzpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjQ0LVx0c2VsZWN0IE1GRF9TWVNDT05cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTUtXHRkZWZhdWx0IEFSQ0hfU1RJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI1NjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1NUSSB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1Ny1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjctXHRkZWZhdWx0IEFSQ0hfU1RNMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY4Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiAoQVJDSF9TVE0zMiB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2OS1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNzc9Y29uZmlnIERXTUFDX1NVTlhJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzktXHRkZWZhdWx0IEFSQ0hfU1VOWElcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjgwOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU1VOWEkgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yODg9Y29uZmlnIERXTUFDX1NVTjhJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTAtXHRkZWZhdWx0IEFSQ0hfU1VOWElcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjkxOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU1VOWEkgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTItXHRzZWxlY3QgTURJT19CVVNfTVVYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzAyLVx0ZGVmYXVsdCBBUkNIX1NVTlhJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMwMzpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA0LVx0c2VsZWN0IE1ESU9fQlVTX01VWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzEyPWNvbmZpZyBEV01BQ19USEVBRFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTMtXHR0cmlzdGF0ZSBcJiMzNDtULUhFQUQgZHdtYWMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTQ6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9USEVBRCB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxNS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMyMj1jb25maWcgRFdNQUNfSU1YOFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI0LVx0ZGVmYXVsdCBBUkNIX01YQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMjU6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjYtXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzNS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIGR3bWFjIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzM2Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgQ09NTU9OX0NMS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNDQ9Y29uZmlnIERXTUFDX0xPT05HU09OMVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQ2LVx0ZGVmYXVsdCBNQUNIX0xPT05HU09OMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ3Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKE1BQ0hfTE9PTkdTT04zMiB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM1NT1jb25maWcgRFdNQUNfVEVHUkFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzU2LVx0dHJpc3RhdGUgXCYjMzQ7TlZJRElBIFRlZ3JhIE1HQkUgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNTc6XHRkZXBlbmRzIG9uIEFSQ0hfVEVHUkEgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM2ND1jb25maWcgRFdNQUNfVklTQ09OVElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2Ni1cdGRlZmF1bHQgQVJDSF9WSVNDT05USVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjc6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiBDT01NT05fQ0xLIFx1MDAyNlx1MDAyNiAoQVJDSF9WSVNDT05USSB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4MC1cdGRlZmF1bHQgWDg2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4MTpcdGRlcGVuZHMgb24gWDg2IFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgyOlx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4MzpcdGRlcGVuZHMgb24gQUNQSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODQtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTAtXHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTE6XHRkZXBlbmRzIG9uIChNQUNIX0xPT05HU09ONjQgfHwgQ09NUElMRV9URVNUKSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5MjpcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTMtXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk5LVx0dHJpc3RhdGUgXCYjMzQ7TW90b3Jjb21tIFBDSSBEV01BQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwMDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwMS1cdHNlbGVjdCBNT1RPUkNPTU1fUEhZXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00MDc9Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDk6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MTA6XHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDExLVx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY0NjgKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA0OTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBTVE1NQUMgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoZSBtYWluIGZvY3VzIGhlcmUgc2VlbXMgdG8gYmUgYFNUTU1BQ19FVEhgLiBUaGF0JiMzOTtzIHRoZSBjb3JlLCBidXQgdGhpcyBwYXRjaCBhbHNvIHRvdWNoZXMgYGFyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lgLCB3aGljaCBpbW1lZGlhdGVseSBzdWdnZXN0cyBpdCYjMzk7cyBiZWluZyB1c2VkIG9uIEludGVsIFNPQ0ZQR0FzLiBTbywgYERXTUFDX1NPQ0ZQR0FgIGNvbWVzIGludG8gcGxheS4KClRoZSBjcnVjaWFsIHBhcnQgaXMgdGhlIGNoYW5nZSB3aXRoaW4gYHN0bW1hY19tYWluLmNgLCBhbmQgdGhhdCYjMzk7cyBnb3Zlcm5lZCBieSBgU1RNTUFDX0VUSGAuIE5vdywgYFNUTU1BQ19FVEhgIGl0c2VsZiBkZXBlbmRzIG9uIGBIQVNfSU9NRU0gJmFtcDsmYW1wOyBIQVNfRE1BICZhbXA7JmFtcDsgUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUwgJmFtcDsmYW1wOyBFVEhUT09MX05FVExJTktgLiBUbyB0ZXN0IHRoaXMgcHJvcGVybHksIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRyaXZlciBub3Qgb25seSBjb21waWxlcyBidXQgKnByb2JlcyogY29ycmVjdGx5LgoKSW5pdGlhbGx5LCBJIHRob3VnaHQgZW5hYmxpbmcgYFNUTU1BQ19FVEhgIGFuZCBwb3NzaWJseSBgRFdNQUNfU09DRlBHQWAsIGBTVE1NQUNfUENJYCwgb3IgYERXTUFDX0lOVEVMYCB3b3VsZCBiZSBzdWZmaWNpZW50IGZvciBjb21wcmVoZW5zaXZlIHRlc3RpbmcsIGNvdmVyaW5nIHRoZSBjb21waWxhdGlvbiBhbmQgcHJvYmluZyBhc3BlY3QuIEJ1dCB0aGVuIEkgcmVhbGl6ZWQgYFNUTU1BQ19FVEhgIGlzIGVub3VnaCB0byBjb21waWxlIHRoZSBkcml2ZXIgY29yZS4gVGhlIHByb2JlIGlzIHdoYXQgcmVsaWVzIG9uIGEgcGxhdGZvcm0gb3IgUENJIGRyaXZlci4KCkdpdmVuIFBDSSBkZXZpY2VzIGFyZSBlYXNpbHkgZW11bGF0ZWQgb3IgcHJvYmVkIHdpdGhpbiBzeXprYWxsZXIsIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNlZW0gbGlrZSBhIGRlY2VudCBjb21iaW5hdGlvbiBmb3IgY29tcGlsZS1hbmQtcHJvYmUgdGVzdGluZy4gSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGF0IGBEV01BQ19TT0NGUEdBYCByZWxpZXMgb24gYEFSQ0hfSU5URUxfU09DRlBHQSB8fCBDT01QSUxFX1RFU1RgLCB3aGljaCBpc24mIzM5O3QgZXNzZW50aWFsIGZvciBqdXN0IGJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHRoZSBkcml2ZXIuIFNvLCBzdGlja2luZyB3aXRoIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNob3VsZCBkby4KCkEgY3J1Y2lhbCBwb2ludCBub3cgaXMgdGhlIGB0eF9idWZfcXVpcmtgLiBUaGlzIGlzIHNldCB3aXRoaW4gYHN0bW1hY19wbGF0Zm9ybS5jYC4gSXMgdGhhdCBmaWxlIGV2ZW4gYmVpbmcgY29tcGlsZWQ/IEEgcXVpY2sgY2hlY2sgcmV2ZWFscyBgb2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSkgJiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vYC4gYFNUTU1BQ19QTEFURk9STWAgaXMgc2VsZWN0ZWQgYnkgYWxsIHBsYXRmb3JtIGRyaXZlcnMuIFNvLCBJIG5lZWQgdG8gZW5hYmxlIGBTVE1NQUNfUExBVEZPUk1gIG9yIG9uZSBvZiB0aGUgcGxhdGZvcm0gZHJpdmVycyB0byBlbnN1cmUgYHN0bW1hY19wbGF0Zm9ybS5jYCBnZXRzIGluY2x1ZGVkLgoKTXkgZmluYWwgbGlzdCBmb3IgdGVzdGluZyB3aWxsIGluY2x1ZGUgYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BMQVRGT1JNYCwgYW5kIGBEV01BQ19TT0NGUEdBYC4gQW5kLCB5ZXMsIGBTVE1NQUNfUExBVEZPUk1gIGlzIGEgY29uZmlnIG9wdGlvbiBpbiBpdHMgb3duIHJpZ2h0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDX1BMQVRGT1JNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwPWNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk6Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQbGF0Zm9ybSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzY5MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDEzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IEFzc2Vzc21lbnQgb2YgdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBTVE1NQUNfUExBVEZPUk1gIGlzIGluZGVlZCBhIHRyaXN0YXRlIG9wdGlvbi4gVGhhdCBtZWFucywgdG8gY29ycmVjdGx5IGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG15IGBFbmFibGVDb25maWdzYCBsaXN0IG5lZWRzIHRvIGluY2x1ZGU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCwgZ2l2ZW4gdGhlIERldmljZSBUcmVlIGNoYW5nZSwgYERXTUFDX1NPQ0ZQR0FgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZC4KCkJ1dCBoYW5nIG9u4oCmIHRoaXMgbmV3ICYjMzQ7cGFnZSBwb29sJiMzNDsgZmVhdHVyZeKApiBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGRlcGVuZGVudCBvbiBgUEFHRV9QT09MYC4gTm93LCB0aGUgY3J1Y2lhbCBxdWVzdGlvbjogaXMgYFBBR0VfUE9PTGAgYXV0b21hdGljYWxseSBzZWxlY3RlZCBzb21ld2hlcmUsIG9yIGRvIEkgbmVlZCB0byBleHBsaWNpdGx5IGVuYWJsZSBpdD8gTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IGluIGBuZXQvY29yZS9LY29uZmlnYCBvciBhIHNpbWlsYXIgY29uZmlndXJhdGlvbiBmaWxlLCB0aGUgdXN1YWwgbG9jYXRpb24gZm9yIHRoZXNlIGRlcGVuZGVuY2llcy4gSSYjMzk7bSBmYWlybHkgY2VydGFpbiB0aGUgc3RhbmRhcmQgYmVoYXZpb3IgaXMgZm9yIGBQQUdFX1BPT0xgIHRvIGJlICpzZWxlY3RlZCogYnkgZHJpdmVycyB0aGF0IHJlcXVpcmUgaXQuCgpOb3csIGEgY3JpdGljYWwgcG9pbnQsIGFuZCBJIG5lZWQgdG8gYmUgY2VydGFpbiBhYm91dCB0aGlzOiBkb2VzIGBTVE1NQUNfRVRIYCBpdHNlbGYgc2VsZWN0IGBQQUdFX1BPT0xgPyBUaGF0JiMzOTtzIHRoZSBrZXkuIElmIGl0IGRvZXMsIHRoZW4gSSYjMzk7bSBnb29kIHRvIGdvLiBJZiBub3QsIEkmIzM5O2xsIG5lZWQgdG8gZXhwbGljaXRseSBhZGQgYFBBR0VfUE9PTGAgdG8gdGhlIGNvbmZpZ3VyYXRpb24sIG9yIHRyYWNlIHRoZSBkZXBlbmRlbmN5IGNoYWluIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhlIHNlbGVjdGlvbiBzaG91bGQgaGFwcGVuLiBUaGlzIHdpbGwgZGV0ZXJtaW5lIGlmIHRoZSBjb25maWd1cmF0aW9uIGlzIGNvbXBsZXRlIGFuZCBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQUdFX1BPT0wmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mj1jb25maWcgU1RNTUFDX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOC1cdHNlbGVjdCBQQ1NfWFBDU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5Olx0c2VsZWN0IFBBR0VfUE9PTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMC1cdHNlbGVjdCBQSFlMSU5LXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MjcwCgkJCQkJCQlvdXRwdXQ6IDIyNQoJCQkJCQkJdGhvdWdodHM6IDk1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgc3RtbWFjIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBJJiMzOTt2ZSBnb3QgdGhpcy4gRmlyc3QsIHRoZSBwYXRjaCBzZWxlY3RzIGBQQUdFX1BPT0xgLCB0aGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgcmV2aWV3IHRob3NlIGZvY3VzIHN5bWJvbHM6IGBzdG1tYWNfeG1pdGAsIGBzdG1tYWNfb3BlbmAsIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCwgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgLgoKTm93LCB3YWl0IGEgbWludXRlLCBgc3RtbWFjX3htaXRgIGlzIHN0YXRpYywgd2hpY2ggaXMgdXN1YWxseSBhIHJlZCBmbGFnLiBCdXQsIGhhbmcgb24sIGl0JiMzOTtzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgd2hpY2ggbWVhbnMgaXQgaXNuJiMzOTt0IGlubGluZWQhIFRoYXQmIzM5O3MgcGVyZmVjdDsgaXQgaGFzIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MgYW5kLCB0aGVyZWZvcmUsIGlzIGEgdmFsaWQgZW50cnkgcG9pbnQuIFRoZSBzYW1lIGdvZXMgZm9yIGBzdG1tYWNfb3BlbmAgKGFzc2lnbmVkIHRvIGBuZG9fb3BlbmApLCBgc3RtbWFjX25hcGlfcG9sbF90eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZF90eGApLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZGApLiBFeGNlbGxlbnQuIExldCYjMzk7cyBqdXN0IGRvdWJsZS1jaGVjayB0aGUgbmFtZXMgYWdhaW4gaW4gYHN0bW1hY19tYWluLmNgOiBgc3RtbWFjX3htaXRgLCBgc3RtbWFjX29wZW5gLCBgc3RtbWFjX25hcGlfcG9sbF90eGAsIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCDigJMgYWxsIGNvcnJlY3QuCgpBaGEsIGFuZCBgc3RtbWFjX29wZW5gIGNhbGxzIGBfX3N0bW1hY19vcGVuYCwgd2hpY2ggaW4gdHVybiBjYWxscyBgYWxsb2NfZG1hX2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggdGhlbiBjYWxscyBgYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggZXZlbnR1YWxseSBjYWxscyBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgLiBOaWNlLCB0aGF0IGNvbmZpcm1zIHRoYXQgYHN0bW1hY19vcGVuYCBpcyBhIHNvbGlkIGVudHJ5IHBvaW50LCBhbmQgdGhhdCBjb3ZlcnMgdGhlIGFsbG9jYXRpb24uIEFuZCBgc3RtbWFjX3htaXRgIGlzIHRoZSB0cmFuc21pdCBlbnRyeSBwb2ludC4gYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCBldmVudHVhbGx5IGNhbGwgYHN0bW1hY190eF9jbGVhbmAsIHdoaWNoIGNhbGxzIGBzdG1tYWNfZnJlZV90eF9idWZmZXJgLiBTbyB0aGF0IGNvbmZpcm1zIHRob3NlIGNvdmVyIHRoZSBjbGVhbnVwIGFuZCB0cmFuc21pdCBwYXRocy4gVGhpcyBjb3ZlcnMgYWxsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzLCBzbyB3ZSBoYXZlIGdvb2QgY292ZXJhZ2UuCgpOb3csIGNhbiB3ZSBhY3R1YWxseSBoaXQgdGhpcyBpbiBRRU1VPyBIbW0sIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGUgc3BlY2lmaWMgYHNvY2ZwZ2FfYWdpbGV4NWAgZGV2aWNlIGRpcmVjdGx5LCBidXQgaXQgZG9lcyBoYXZlIGVtdWxhdGlvbiBmb3IgYG5wY203eHhgICh3aGljaCBoYXMgYW4gRU1DKSwgYW5kIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFuZCBgaHcvbmV0L2Rlc2lnbndhcmUuY2AsIHdoaWNoIGlzIHRoZSBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpLiBBbmQgdGhlIGBzdG1tYWNgIGRyaXZlciAqaXMqIHRoZSBkcml2ZXIgZm9yIERlc2lnbldhcmUgTUFDLiBTbywgeWVzLCB3ZSBjYW4gcmVhY2ggaXQgdmlhIHRoZSBgZGVzaWdud2FyZWAgbmV0d29yayBkZXZpY2UgZW11bGF0aW9uLiBBbmQgZXZlbiBiZXR0ZXIsIHN5emthbGxlciBjYW4gZnV6eiBQQ0kgZGV2aWNlcywgYW5kIGBzdG1tYWNgIGhhcyBhIFBDSSBiaW5kaW5nIChgU1RNTUFDX1BDSWApLiBFdmVuIHRob3VnaCB0aGlzIHF1aXJrIGlzIGVuYWJsZWQgdmlhIHRoZSBEVCwgdGhlIHBhZ2UgcG9vbCBhbGxvY2F0aW9uIGluIGBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgaXMgdW5jb25kaXRpb25hbCBhbmQgYWZmZWN0cyBhbGwgYHN0bW1hY2AgZGV2aWNlcywgaW5jbHVkaW5nIFBDSSBvbmVzLiBTbywgdGhlIGNvcmUgY2hhbmdlcyBhcmUgYWJzb2x1dGVseSByZWFjaGFibGUgYW5kIGZ1bmN0aW9uYWwuCgpPa2F5LCBsZXQgbWUgc3VtbWFyaXplIG15IGZpbmRpbmdzOgoKKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKioKCiogICAqKkZvY3VzU3ltYm9sczoqKgoKICAgICogICBgc3RtbWFjX3htaXRgCiAgICAqICAgYHN0bW1hY19vcGVuYAogICAgKiAgIGBzdG1tYWNfbmFwaV9wb2xsX3R4YAogICAgKiAgIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgCgoqICAgKipFbmFibGVDb25maWdzOioqCgogICAgKiAgIGBTVE1NQUNfRVRIYAogICAgKiAgIGBTVE1NQUNfUExBVEZPUk1gCiAgICAqICAgYERXTUFDX1NPQ0ZQR0FgCiAgICAqICAgYFNUTU1BQ19QQ0lgCgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBieSB1bmNvbmRpdGlvbmFsbHkgYWxsb2NhdGluZyBhIHBhZ2UgcG9vbCBmb3IgZXZlcnkgVFggcXVldWUgaW4gdGhlIGBzdG1tYWNgIGRyaXZlciBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKGBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2ApLiBJdCBhbHNvIG1vZGlmaWVzIHRoZSB0cmFuc21pdCBwYXRoIChgc3RtbWFjX3htaXRgKSBhbmQgY2xlYW51cCBwYXRoIChgc3RtbWFjX3R4X2NsZWFuYCkgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYCkgaXMgZW5hYmxlZC4gVGhlIGNvcmUgZHJpdmVyIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgbmV0d29yayBvcGVyYXRpb25zIChvcGVuLCB4bWl0LCBOQVBJIHBvbGwpIGFuZCBhZmZlY3QgbWVtb3J5IGFsbG9jYXRpb24gZm9yIGFsbCBkZXZpY2VzIHVzaW5nIHRoaXMgZHJpdmVyLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4KCkp1c3QgbmVlZCB0byB2ZXJpZnkgdGhvc2UgY29uZmlnIG5hbWVzIG9uZSBtb3JlIHRpbWU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGBEV01BQ19TT0NGUEdBYCwgYW5kIGBTVE1NQUNfUENJYC4gWWVwLCBhbGwgY29ycmVjdC4gVGhhdCYjMzk7cyBhIGdyZWVuIGxpZ2h0Cgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BMQVRGT1JNJiMzNDssCiAgICAmIzM0O0RXTUFDX1NPQ0ZQR0EmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY194bWl0JiMzNDssCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19uYXBpX3BvbGxfdHgmIzM0OywKICAgICYjMzQ7c3RtbWFjX25hcGlfcG9sbF9yeHR4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBieSB1bmNvbmRpdGlvbmFsbHkgYWxsb2NhdGluZyBhIHBhZ2UgcG9vbCBmb3IgZXZlcnkgVFggcXVldWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBJdCBhbHNvIG1vZGlmaWVzIHRoZSB0cmFuc21pdCBwYXRoIChzdG1tYWNfeG1pdCkgYW5kIGNsZWFudXAgcGF0aCAoc3RtbWFjX3R4X2NsZWFuKSB0byB1c2UgdGhlc2UgcGFnZSBwb29scyB3aGVuIGEgbmV3IGRldmljZSB0cmVlIHF1aXJrIChzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaykgaXMgZW5hYmxlZC4gVGhlIGNvcmUgZHJpdmVyIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgbmV0d29yayBvcGVyYXRpb25zIChvcGVuLCB4bWl0LCBOQVBJIHBvbGwpIGFuZCBhZmZlY3QgbWVtb3J5IGFsbG9jYXRpb24gZm9yIGFsbCBkZXZpY2VzIHVzaW5nIHRoaXMgZHJpdmVyLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfU09DRlBHQSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX3htaXQmIzM0OywKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7c3RtbWFjX25hcGlfcG9sbF90eCYjMzQ7LAogICAgJiMzNDtzdG1tYWNfbmFwaV9wb2xsX3J4dHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGJ5IHVuY29uZGl0aW9uYWxseSBhbGxvY2F0aW5nIGEgcGFnZSBwb29sIGZvciBldmVyeSBUWCBxdWV1ZSBpbiB0aGUgc3RtbWFjIGRyaXZlciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIEl0IGFsc28gbW9kaWZpZXMgdGhlIHRyYW5zbWl0IHBhdGggKHN0bW1hY194bWl0KSBhbmQgY2xlYW51cCBwYXRoIChzdG1tYWNfdHhfY2xlYW4pIHRvIHVzZSB0aGVzZSBwYWdlIHBvb2xzIHdoZW4gYSBuZXcgZGV2aWNlIHRyZWUgcXVpcmsgKHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrKSBpcyBlbmFibGVkLiBUaGUgY29yZSBkcml2ZXIgY2hhbmdlcyBhcmUgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBuZXR3b3JrIG9wZXJhdGlvbnMgKG9wZW4sIHhtaXQsIE5BUEkgcG9sbCkgYW5kIGFmZmVjdCBtZW1vcnkgYWxsb2NhdGlvbiBmb3IgYWxsIGRldmljZXMgdXNpbmcgdGhpcyBkcml2ZXIsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6MzUuOTc3MjY2NzM2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk1NzM1MTA4NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI1OjM1Ljk3NzI3NDkxNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU1ODQ1MDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGMzNTZmZWFmMzk1ZjllM2ZjODU2MmMxNDc4MGExZGVhZjcwMDczYlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDA3OjI1OjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcXG5pbmRleCAyNDQ5MzExYzZkMjhlLi43MzA0NTUxMTQ0NmZkIDEwMDY0NFxcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sXFxuKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcXG5AQCAtNTQ1LDYgKzU0NSwxNCBAQCBwcm9wZXJ0aWVzOlxcbiAgICAgICBFbmFibGVzIHRoZSBUU08gZmVhdHVyZSBvdGhlcndpc2UgaXQgd2lsbCBiZSBtYW5hZ2VkIGJ5IE1BQyBIVyBjYXBhYmlsaXR5XFxuICAgICAgIHJlZ2lzdGVyLlxcbiBcXG4rICBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyazpcXG4rICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL2ZsYWdcXG4rICAgIGRlc2NyaXB0aW9uOlxcbisgICAgICBFbmFibGUgdXNlIG9mIHBhZ2UgcG9vbCBidWZmZXJzIGluc3RlYWQgb2Ygc3RyZWFtaW5nIGJ1ZmZlcnMgZm9yIHRyYW5zbWl0LlxcbisgICAgICBUaGlzIGF2b2lkcyBJT01NVSBpbnZhbGlkYXRlIHdhaXQgdGltZSBvbiBwbGF0Zm9ybXMgd2hlcmUgdGhhdCBjb3N0IGlzXFxuKyAgICAgIGhpZ2gsIHdpdGggdGhlIHRyYWRlLW9mZiBvZiBjb3B5aW5nIGRhdGEgZnJvbSB0aGUgc2tiIGludG8gZG1hLW1hcHBlZFxcbisgICAgICBwYWdlIHBvb2wgYnVmZmVycy5cXG4rXFxuICAgbWRpbzpcXG4gICAgICRyZWY6IG1kaW8ueWFtbCNcXG4gICAgIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2VcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcXG5pbmRleCBmNTQ3NjdkMTUyNmUxLi40Y2U0ZmEwOTEzODUyIDEwMDY0NFxcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpXFxuQEAgLTYwNSw2ICs2MDUsNyBAQCBnbWFjMDogZXRoZXJuZXRAMTA4MTAwMDAge1xcbiBcXHRcXHRcXHRzbnBzLG10bC10eC1jb25maWcgPSBcXHUwMDNjXFx1MDAyNm10bF90eF9lbWFjMF9zZXR1cFxcdTAwM2U7XFxuIFxcdFxcdFxcdHNucHMscGJsID0gXFx1MDAzYzMyXFx1MDAzZTtcXG4gXFx0XFx0XFx0c25wcyx0c287XFxuK1xcdFxcdFxcdHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrO1xcbiBcXHRcXHRcXHRhbHRyLHN5c21nci1zeXNjb24gPSBcXHUwMDNjXFx1MDAyNnN5c21nciAweDQ0IDBcXHUwMDNlO1xcbiBcXHRcXHRcXHRzbnBzLGNsay1jc3IgPSBcXHUwMDNjMFxcdTAwM2U7XFxuIFxcdFxcdFxcdGlvbW11cyA9IFxcdTAwM2NcXHUwMDI2c21tdSAxXFx1MDAzZTtcXG5AQCAtNzUxLDYgKzc1Miw3IEBAIGdtYWMxOiBldGhlcm5ldEAxMDgyMDAwMCB7XFxuIFxcdFxcdFxcdHNucHMsbXRsLXR4LWNvbmZpZyA9IFxcdTAwM2NcXHUwMDI2bXRsX3R4X2VtYWMxX3NldHVwXFx1MDAzZTtcXG4gXFx0XFx0XFx0c25wcyxwYmwgPSBcXHUwMDNjMzJcXHUwMDNlO1xcbiBcXHRcXHRcXHRzbnBzLHRzbztcXG4rXFx0XFx0XFx0c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms7XFxuIFxcdFxcdFxcdGFsdHIsc3lzbWdyLXN5c2NvbiA9IFxcdTAwM2NcXHUwMDI2c3lzbWdyIDB4NDggMFxcdTAwM2U7XFxuIFxcdFxcdFxcdHNucHMsY2xrLWNzciA9IFxcdTAwM2MwXFx1MDAzZTtcXG4gXFx0XFx0XFx0aW9tbXVzID0gXFx1MDAzY1xcdTAwMjZzbW11IDJcXHUwMDNlO1xcbkBAIC04OTcsNiArODk5LDcgQEAgZ21hYzI6IGV0aGVybmV0QDEwODMwMDAwIHtcXG4gXFx0XFx0XFx0c25wcyxtdGwtdHgtY29uZmlnID0gXFx1MDAzY1xcdTAwMjZtdGxfdHhfZW1hYzJfc2V0dXBcXHUwMDNlO1xcbiBcXHRcXHRcXHRzbnBzLHBibCA9IFxcdTAwM2MzMlxcdTAwM2U7XFxuIFxcdFxcdFxcdHNucHMsdHNvO1xcbitcXHRcXHRcXHRzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaztcXG4gXFx0XFx0XFx0YWx0cixzeXNtZ3Itc3lzY29uID0gXFx1MDAzY1xcdTAwMjZzeXNtZ3IgMHg0YyAwXFx1MDAzZTtcXG4gXFx0XFx0XFx0c25wcyxjbGstY3NyID0gXFx1MDAzYzBcXHUwMDNlO1xcbiBcXHRcXHRcXHRpb21tdXMgPSBcXHUwMDNjXFx1MDAyNnNtbXUgM1xcdTAwM2U7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcXG5pbmRleCA4YmE4ZjAzZTFjZTAzLi4wOTNjMDUyYjQ5MDgyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcXG5AQCAtNDEsNiArNDEsNyBAQCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyB7XFxuIFxcbiBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHtcXG4gXFx0U1RNTUFDX1RYQlVGX1RfU0tCLFxcbitcXHRTVE1NQUNfVFhCVUZfVF9ETUEsXFxuIFxcdFNUTU1BQ19UWEJVRl9UX1hEUF9UWCxcXG4gXFx0U1RNTUFDX1RYQlVGX1RfWERQX05ETyxcXG4gXFx0U1RNTUFDX1RYQlVGX1RfWFNLX1RYLFxcbkBAIC00OSw2ICs1MCw3IEBAIGVudW0gc3RtbWFjX3R4YnVmX3R5cGUge1xcbiBzdHJ1Y3Qgc3RtbWFjX3R4X2luZm8ge1xcbiBcXHRzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhX2NvbXBsIHhza19tZXRhO1xcbiBcXHRkbWFfYWRkcl90IGJ1ZjtcXG4rXFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuIFxcdHVuc2lnbmVkIGxlbjtcXG4gXFx0ZW51bSBzdG1tYWNfdHhidWZfdHlwZSBidWZfdHlwZTtcXG4gXFx0Ym9vbCBtYXBfYXNfcGFnZTtcXG5AQCAtNjUsNiArNjcsNyBAQCBzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlIHtcXG4gXFx0aW50IHRicztcXG4gXFx0c3RydWN0IGhydGltZXIgdHh0aW1lcjtcXG4gXFx0dTMyIHF1ZXVlX2luZGV4O1xcbitcXHRzdHJ1Y3QgcGFnZV9wb29sICpwYWdlX3Bvb2w7XFxuIFxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdl9kYXRhO1xcbiBcXHRzdHJ1Y3QgZG1hX2V4dGVuZGVkX2Rlc2MgKmRtYV9ldHggX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG4gXFx0c3RydWN0IGRtYV9lZGVzYyAqZG1hX2VudHg7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuaW5kZXggZWU0NGJkNmY0ZDQ4ZS4uNGFhNmIxZDE1MDdiZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC0xNzEyLDcgKzE3MTIsMTAgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFxuIFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpIHtcXG4tXFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXFxuK1xcdFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSlcXG4rXFx0XFx0XFx0cGFnZV9wb29sX3JlY3ljbGVfZGlyZWN0KHR4X3EtXFx1MDAzZXBhZ2VfcG9vbCxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0IHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ucGFnZSk7XFxuK1xcdFxcdGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXFxuIFxcdFxcdFxcdGRtYV91bm1hcF9wYWdlKHByaXYtXFx1MDAzZWRldmljZSxcXG4gXFx0XFx0XFx0XFx0ICAgICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmLFxcbiBcXHRcXHRcXHRcXHQgICAgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5sZW4sXFxuQEAgLTE3MzUsNyArMTczOCw4IEBAIHN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X2J1ZmZlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdFxcdHR4X3EtXFx1MDAzZXhza19mcmFtZXNfZG9uZSsrO1xcbiBcXG4gXFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZltpXSBcXHUwMDI2XFx1MDAyNlxcbi1cXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHtcXG4rXFx0ICAgICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxcbitcXHQgICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSkge1xcbiBcXHRcXHRkZXZfa2ZyZWVfc2tiX2FueSh0eF9xLVxcdTAwM2V0eF9za2J1ZmZbaV0pO1xcbiBcXHRcXHR0eF9xLVxcdTAwM2V0eF9za2J1ZmZbaV0gPSBOVUxMO1xcbiBcXHR9XFxuQEAgLTIyMDEsNiArMjIwNSw4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbiBcXG4gXFx0a2ZyZWUodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYSk7XFxuIFxcdGtmcmVlKHR4X3EtXFx1MDAzZXR4X3NrYnVmZik7XFxuK1xcdGlmICh0eF9xLVxcdTAwM2VwYWdlX3Bvb2wpXFxuK1xcdFxcdHBhZ2VfcG9vbF9kZXN0cm95KHR4X3EtXFx1MDAzZXBhZ2VfcG9vbCk7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG5AQCAtMjMzNSwxMiArMjM0MSwzMiBAQCBzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0IHUzMiBxdWV1ZSlcXG4ge1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXFx1MDAyNmRtYV9jb25mLVxcdTAwM2V0eF9xdWV1ZVtxdWV1ZV07XFxuK1xcdHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zIHBwX3BhcmFtcyA9IHsgMCB9O1xcbitcXHR1bnNpZ25lZCBpbnQgbnVtX3BhZ2VzO1xcbiBcXHRzaXplX3Qgc2l6ZTtcXG4gXFx0dm9pZCAqYWRkcjtcXG4rXFx0aW50IHJldDtcXG4gXFxuIFxcdHR4X3EtXFx1MDAzZXF1ZXVlX2luZGV4ID0gcXVldWU7XFxuIFxcdHR4X3EtXFx1MDAzZXByaXZfZGF0YSA9IHByaXY7XFxuIFxcbitcXHRwcF9wYXJhbXMuZmxhZ3MgPSBQUF9GTEFHX0RNQV9NQVAgfCBQUF9GTEFHX0RNQV9TWU5DX0RFVjtcXG4rXFx0cHBfcGFyYW1zLnBvb2xfc2l6ZSA9IGRtYV9jb25mLVxcdTAwM2VkbWFfdHhfc2l6ZTtcXG4rXFx0bnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLVxcdTAwM2VkbWFfYnVmX3N6LCBQQUdFX1NJWkUpO1xcbitcXHRwcF9wYXJhbXMub3JkZXIgPSBpbG9nMihudW1fcGFnZXMpO1xcbitcXHRwcF9wYXJhbXMubmlkID0gZGV2X3RvX25vZGUocHJpdi1cXHUwMDNlZGV2aWNlKTtcXG4rXFx0cHBfcGFyYW1zLmRldiA9IHByaXYtXFx1MDAzZWRldmljZTtcXG4rXFx0cHBfcGFyYW1zLmRtYV9kaXIgPSBETUFfQklESVJFQ1RJT05BTDtcXG4rXFx0cHBfcGFyYW1zLm9mZnNldCA9IDA7XFxuK1xcdHBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFO1xcbitcXG4rXFx0dHhfcS1cXHUwMDNlcGFnZV9wb29sID0gcGFnZV9wb29sX2NyZWF0ZShcXHUwMDI2cHBfcGFyYW1zKTtcXG4rXFx0aWYgKElTX0VSUih0eF9xLVxcdTAwM2VwYWdlX3Bvb2wpKSB7XFxuK1xcdFxcdHJldCA9IFBUUl9FUlIodHhfcS1cXHUwMDNlcGFnZV9wb29sKTtcXG4rXFx0XFx0dHhfcS1cXHUwMDNlcGFnZV9wb29sID0gTlVMTDtcXG4rXFx0XFx0cmV0dXJuIHJldDtcXG4rXFx0fVxcbitcXG4gXFx0dHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYSA9IGt6YWxsb2Nfb2JqcygqdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYSxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgZG1hX2NvbmYtXFx1MDAzZWRtYV90eF9zaXplKTtcXG4gXFx0aWYgKCF0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hKVxcbkBAIC0yODM2LDcgKzI4NjIsOCBAQCBzdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcXG4gXFx0XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcXG4gXFx0XFx0XFx0eGRwZiA9IHR4X3EtXFx1MDAzZXhkcGZbZW50cnldO1xcbiBcXHRcXHRcXHRza2IgPSBOVUxMO1xcbi1cXHRcXHR9IGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xcbitcXHRcXHR9IGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxcbitcXHRcXHRcXHQgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpIHtcXG4gXFx0XFx0XFx0eGRwZiA9IE5VTEw7XFxuIFxcdFxcdFxcdHNrYiA9IHR4X3EtXFx1MDAzZXR4X3NrYnVmZltlbnRyeV07XFxuIFxcdFxcdH0gZWxzZSB7XFxuQEAgLTI4ODQsNyArMjkxMSwxMCBAQCBzdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcXG4gXFxuIFxcdFxcdGlmIChsaWtlbHkodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmIFxcdTAwMjZcXHUwMDI2XFxuIFxcdFxcdFxcdCAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlICE9IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCkpIHtcXG4tXFx0XFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxcbitcXHRcXHRcXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKVxcbitcXHRcXHRcXHRcXHRwYWdlX3Bvb2xfcmVjeWNsZV9kaXJlY3QodHhfcS1cXHUwMDNlcGFnZV9wb29sLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ucGFnZSk7XFxuK1xcdFxcdFxcdGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxcbiBcXHRcXHRcXHRcXHRkbWFfdW5tYXBfcGFnZShwcml2LVxcdTAwM2VkZXZpY2UsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWYsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5sZW4sXFxuQEAgLTI5MjIsNyArMjk1Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxcbiBcXHRcXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWFNLX1RYKVxcbiBcXHRcXHRcXHR0eF9xLVxcdTAwM2V4c2tfZnJhbWVzX2RvbmUrKztcXG4gXFxuLVxcdFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHtcXG4rXFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxcbitcXHRcXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSB7XFxuIFxcdFxcdFxcdGlmIChsaWtlbHkoc2tiKSkge1xcbiBcXHRcXHRcXHRcXHRwa3RzX2NvbXBsKys7XFxuIFxcdFxcdFxcdFxcdGJ5dGVzX2NvbXBsICs9IHNrYi1cXHUwMDNlbGVuO1xcbkBAIC00NzQyLDEyICs0NzczLDE0IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiBcXHRib29sIGVuaF9kZXNjLCBoYXNfdmxhbiwgc2V0X2ljLCBpc19qdW1ibyA9IGZhbHNlO1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbiBcXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xcbitcXHRnZnBfdCBnZnAgPSBHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOO1xcbiBcXHR1MzIgcXVldWUgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTtcXG4gXFx0aW50IG5mcmFncyA9IHNrYl9zaGluZm8oc2tiKS1cXHUwMDNlbnJfZnJhZ3M7XFxuIFxcdHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSwgdHhfcGFja2V0cztcXG4gXFx0c3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0cztcXG4gXFx0c3RydWN0IGRtYV9kZXNjICpkZXNjLCAqZmlyc3RfZGVzYztcXG4gXFx0c3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcTtcXG4rXFx0c3RydWN0IHBhZ2UgKnR4X2J1Zl9wYWdlO1xcbiBcXHRpbnQgaSwgY3N1bV9pbnNlcnRpb24gPSAwO1xcbiBcXHRpbnQgZW50cnksIGZpcnN0X3R4O1xcbiBcXHRkbWFfYWRkcl90IGRtYV9hZGRyO1xcbkBAIC00ODE0LDEzICs0ODQ3LDMzIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHRib29sIGxhc3Rfc2VnbWVudCA9IChuZnJhZ3MgPT0gMCk7XFxuIFxcbi1cXHRcXHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXFx1MDAzZWRldmljZSwgc2tiLVxcdTAwM2VkYXRhLFxcbi1cXHRcXHRcXHRcXHRcXHQgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTtcXG4tXFx0XFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKHByaXYtXFx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxcbi1cXHRcXHRcXHRnb3RvIGRtYV9tYXBfZXJyO1xcbitcXHRcXHRpZiAoIShsYXN0X3NlZ21lbnQgXFx1MDAyNlxcdTAwMjYgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNldHhfYnVmX3F1aXJrKSkge1xcbitcXHRcXHRcXHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXFx1MDAzZWRldmljZSwgc2tiLVxcdTAwM2VkYXRhLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTtcXG4rXFx0XFx0XFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKHByaXYtXFx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxcbitcXHRcXHRcXHRcXHRnb3RvIGRtYV9tYXBfZXJyO1xcbiBcXG4tXFx0XFx0c3RtbWFjX3NldF90eF9za2JfZG1hX2VudHJ5KHR4X3EsIGZpcnN0X2VudHJ5LCBkbWFfYWRkcixcXG4tXFx0XFx0XFx0XFx0XFx0ICAgIG5vcGFnZWRfbGVuLCBmYWxzZSk7XFxuK1xcdFxcdFxcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgICBub3BhZ2VkX2xlbiwgZmFsc2UpO1xcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHR0eF9idWZfcGFnZSA9IHBhZ2VfcG9vbF9hbGxvY19wYWdlcyh0eF9xLVxcdTAwM2VwYWdlX3Bvb2wsIGdmcCk7XFxuK1xcdFxcdFxcdGlmICghdHhfYnVmX3BhZ2UpXFxuK1xcdFxcdFxcdFxcdGdvdG8gZG1hX21hcF9lcnI7XFxuK1xcbitcXHRcXHRcXHRkbWFfYWRkciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2FkZHIodHhfYnVmX3BhZ2UpO1xcbitcXHRcXHRcXHRzdG1tYWNfc2V0X3R4X2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0U1RNTUFDX1RYQlVGX1RfRE1BLCBkbWFfYWRkcixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0bm9wYWdlZF9sZW4sIGZhbHNlKTtcXG4rXFx0XFx0XFx0dHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtmaXJzdF9lbnRyeV0ucGFnZSA9IHR4X2J1Zl9wYWdlO1xcbitcXG4rXFx0XFx0XFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocHJpdi1cXHUwMDNlZGV2aWNlLCBkbWFfYWRkcixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0bm9wYWdlZF9sZW4sIERNQV9CSURJUkVDVElPTkFMKTtcXG4rXFx0XFx0XFx0c2tiX2NvcHlfZnJvbV9saW5lYXJfZGF0YShza2IsIHBhZ2VfYWRkcmVzcyh0eF9idWZfcGFnZSksXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgbm9wYWdlZF9sZW4pO1xcbitcXHRcXHRcXHRkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShwcml2LVxcdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBub3BhZ2VkX2xlbixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgRE1BX0JJRElSRUNUSU9OQUwpO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRzdG1tYWNfc2V0X2Rlc2NfYWRkcihwcml2LCBmaXJzdF9kZXNjLCBkbWFfYWRkcik7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXFxuaW5kZXggZGM1Zjk1MWEzMTFkNC4uMGY4ZDJmYzYxY2U0OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXFxuQEAgLTU3NSw2ICs1NzUsOCBAQCBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXFxuIFxcbiBcXHRvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgXFxcInNucHMscHMtc3BlZWRcXFwiLCBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX3BvcnRfc2VsX3NwZWVkKTtcXG4gXFxuK1xcdHBsYXQtXFx1MDAzZXR4X2J1Zl9xdWlyayA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgXFxcInNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrXFxcIik7XFxuK1xcbiBcXHRwbGF0LVxcdTAwM2VheGkgPSBzdG1tYWNfYXhpX3NldHVwKHBkZXYpO1xcbiBcXG4gXFx0cmMgPSBzdG1tYWNfbXRsX3NldHVwKHBkZXYsIHBsYXQpO1xcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oIGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxcbmluZGV4IDQ0MzBiOTY3YWJkZWIuLmQ0YzlkNzdhNmY4MWEgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvc3RtbWFjLmhcXG5AQCAtMjY4LDYgKzI2OCw3IEBAIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSB7XFxuIFxcdHU4IHR4X3F1ZXVlc190b191c2U7XFxuIFxcdHU4IHJ4X3NjaGVkX2FsZ29yaXRobTtcXG4gXFx0dTggdHhfc2NoZWRfYWxnb3JpdGhtO1xcbitcXHRib29sIHR4X2J1Zl9xdWlyaztcXG4gXFx0c3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdO1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3R4cV9jZmcgdHhfcXVldWVzX2NmZ1tNVExfTUFYX1RYX1FVRVVFU107XFxuIFxcdHZvaWQgKCpnZXRfaW50ZXJmYWNlcykoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB2b2lkICpic3BfcHJpdixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6MzYuNDM0MDk2MTU0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODkxMTY2Njc0NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRjMzU2ZmVhZjM5NWY5ZTNmYzg1NjJjMTQ3ODBhMWRlYWY3MDA3M2JcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDA3OjI1OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbFxuaW5kZXggMjQ0OTMxMWM2ZDI4ZS4uNzMwNDU1MTE0NDZmZCAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbFxuQEAgLTU0NSw2ICs1NDUsMTQgQEAgcHJvcGVydGllczpcbiAgICAgICBFbmFibGVzIHRoZSBUU08gZmVhdHVyZSBvdGhlcndpc2UgaXQgd2lsbCBiZSBtYW5hZ2VkIGJ5IE1BQyBIVyBjYXBhYmlsaXR5XG4gICAgICAgcmVnaXN0ZXIuXG4gXG4rICBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyazpcbisgICAgJHJlZjogL3NjaGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvZmxhZ1xuKyAgICBkZXNjcmlwdGlvbjpcbisgICAgICBFbmFibGUgdXNlIG9mIHBhZ2UgcG9vbCBidWZmZXJzIGluc3RlYWQgb2Ygc3RyZWFtaW5nIGJ1ZmZlcnMgZm9yIHRyYW5zbWl0LlxuKyAgICAgIFRoaXMgYXZvaWRzIElPTU1VIGludmFsaWRhdGUgd2FpdCB0aW1lIG9uIHBsYXRmb3JtcyB3aGVyZSB0aGF0IGNvc3QgaXNcbisgICAgICBoaWdoLCB3aXRoIHRoZSB0cmFkZS1vZmYgb2YgY29weWluZyBkYXRhIGZyb20gdGhlIHNrYiBpbnRvIGRtYS1tYXBwZWRcbisgICAgICBwYWdlIHBvb2wgYnVmZmVycy5cbitcbiAgIG1kaW86XG4gICAgICRyZWY6IG1kaW8ueWFtbCNcbiAgICAgdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzOiBmYWxzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpXG5pbmRleCBmNTQ3NjdkMTUyNmUxLi40Y2U0ZmEwOTEzODUyIDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaVxuQEAgLTYwNSw2ICs2MDUsNyBAQCBnbWFjMDogZXRoZXJuZXRAMTA4MTAwMDAge1xuIFx0XHRcdHNucHMsbXRsLXR4LWNvbmZpZyA9IFx1MDAzY1x1MDAyNm10bF90eF9lbWFjMF9zZXR1cFx1MDAzZTtcbiBcdFx0XHRzbnBzLHBibCA9IFx1MDAzYzMyXHUwMDNlO1xuIFx0XHRcdHNucHMsdHNvO1xuK1x0XHRcdHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrO1xuIFx0XHRcdGFsdHIsc3lzbWdyLXN5c2NvbiA9IFx1MDAzY1x1MDAyNnN5c21nciAweDQ0IDBcdTAwM2U7XG4gXHRcdFx0c25wcyxjbGstY3NyID0gXHUwMDNjMFx1MDAzZTtcbiBcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZzbW11IDFcdTAwM2U7XG5AQCAtNzUxLDYgKzc1Miw3IEBAIGdtYWMxOiBldGhlcm5ldEAxMDgyMDAwMCB7XG4gXHRcdFx0c25wcyxtdGwtdHgtY29uZmlnID0gXHUwMDNjXHUwMDI2bXRsX3R4X2VtYWMxX3NldHVwXHUwMDNlO1xuIFx0XHRcdHNucHMscGJsID0gXHUwMDNjMzJcdTAwM2U7XG4gXHRcdFx0c25wcyx0c287XG4rXHRcdFx0c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms7XG4gXHRcdFx0YWx0cixzeXNtZ3Itc3lzY29uID0gXHUwMDNjXHUwMDI2c3lzbWdyIDB4NDggMFx1MDAzZTtcbiBcdFx0XHRzbnBzLGNsay1jc3IgPSBcdTAwM2MwXHUwMDNlO1xuIFx0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNnNtbXUgMlx1MDAzZTtcbkBAIC04OTcsNiArODk5LDcgQEAgZ21hYzI6IGV0aGVybmV0QDEwODMwMDAwIHtcbiBcdFx0XHRzbnBzLG10bC10eC1jb25maWcgPSBcdTAwM2NcdTAwMjZtdGxfdHhfZW1hYzJfc2V0dXBcdTAwM2U7XG4gXHRcdFx0c25wcyxwYmwgPSBcdTAwM2MzMlx1MDAzZTtcbiBcdFx0XHRzbnBzLHRzbztcbitcdFx0XHRzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaztcbiBcdFx0XHRhbHRyLHN5c21nci1zeXNjb24gPSBcdTAwM2NcdTAwMjZzeXNtZ3IgMHg0YyAwXHUwMDNlO1xuIFx0XHRcdHNucHMsY2xrLWNzciA9IFx1MDAzYzBcdTAwM2U7XG4gXHRcdFx0aW9tbXVzID0gXHUwMDNjXHUwMDI2c21tdSAzXHUwMDNlO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcbmluZGV4IDhiYThmMDNlMWNlMDMuLjA5M2MwNTJiNDkwODIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcbkBAIC00MSw2ICs0MSw3IEBAIHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHtcbiBcbiBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHtcbiBcdFNUTU1BQ19UWEJVRl9UX1NLQixcbitcdFNUTU1BQ19UWEJVRl9UX0RNQSxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9UWCxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8sXG4gXHRTVE1NQUNfVFhCVUZfVF9YU0tfVFgsXG5AQCAtNDksNiArNTAsNyBAQCBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHtcbiBzdHJ1Y3Qgc3RtbWFjX3R4X2luZm8ge1xuIFx0c3RydWN0IHhza190eF9tZXRhZGF0YV9jb21wbCB4c2tfbWV0YTtcbiBcdGRtYV9hZGRyX3QgYnVmO1xuK1x0c3RydWN0IHBhZ2UgKnBhZ2U7XG4gXHR1bnNpZ25lZCBsZW47XG4gXHRlbnVtIHN0bW1hY190eGJ1Zl90eXBlIGJ1Zl90eXBlO1xuIFx0Ym9vbCBtYXBfYXNfcGFnZTtcbkBAIC02NSw2ICs2Nyw3IEBAIHN0cnVjdCBzdG1tYWNfdHhfcXVldWUge1xuIFx0aW50IHRicztcbiBcdHN0cnVjdCBocnRpbWVyIHR4dGltZXI7XG4gXHR1MzIgcXVldWVfaW5kZXg7XG4rXHRzdHJ1Y3QgcGFnZV9wb29sICpwYWdlX3Bvb2w7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXZfZGF0YTtcbiBcdHN0cnVjdCBkbWFfZXh0ZW5kZWRfZGVzYyAqZG1hX2V0eCBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuIFx0c3RydWN0IGRtYV9lZGVzYyAqZG1hX2VudHg7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbmluZGV4IGVlNDRiZDZmNGQ0OGUuLjRhYTZiMWQxNTA3YmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMTcxMiw3ICsxNzEyLDEwIEBAIHN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X2J1ZmZlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXG4gXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZiBcdTAwMjZcdTAwMjZcbiBcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XG4tXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4rXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKVxuK1x0XHRcdHBhZ2VfcG9vbF9yZWN5Y2xlX2RpcmVjdCh0eF9xLVx1MDAzZXBhZ2VfcG9vbCxcbitcdFx0XHRcdFx0XHQgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLnBhZ2UpO1xuK1x0XHRlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4gXHRcdFx0ZG1hX3VubWFwX3BhZ2UocHJpdi1cdTAwM2VkZXZpY2UsXG4gXHRcdFx0XHQgICAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZixcbiBcdFx0XHRcdCAgICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubGVuLFxuQEAgLTE3MzUsNyArMTczOCw4IEBAIHN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X2J1ZmZlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRcdHR4X3EtXHUwMDNleHNrX2ZyYW1lc19kb25lKys7XG4gXG4gXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0gXHUwMDI2XHUwMDI2XG4tXHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuK1x0ICAgICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8XG4rXHQgICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpKSB7XG4gXHRcdGRldl9rZnJlZV9za2JfYW55KHR4X3EtXHUwMDNldHhfc2tidWZmW2ldKTtcbiBcdFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0gPSBOVUxMO1xuIFx0fVxuQEAgLTIyMDEsNiArMjIwNSw4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFxuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKTtcbiBcdGtmcmVlKHR4X3EtXHUwMDNldHhfc2tidWZmKTtcbitcdGlmICh0eF9xLVx1MDAzZXBhZ2VfcG9vbClcbitcdFx0cGFnZV9wb29sX2Rlc3Ryb3kodHhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBmcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5AQCAtMjMzNSwxMiArMjM0MSwzMiBAQCBzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbcXVldWVdO1xuK1x0c3RydWN0IHBhZ2VfcG9vbF9wYXJhbXMgcHBfcGFyYW1zID0geyAwIH07XG4rXHR1bnNpZ25lZCBpbnQgbnVtX3BhZ2VzO1xuIFx0c2l6ZV90IHNpemU7XG4gXHR2b2lkICphZGRyO1xuK1x0aW50IHJldDtcbiBcbiBcdHR4X3EtXHUwMDNlcXVldWVfaW5kZXggPSBxdWV1ZTtcbiBcdHR4X3EtXHUwMDNlcHJpdl9kYXRhID0gcHJpdjtcbiBcbitcdHBwX3BhcmFtcy5mbGFncyA9IFBQX0ZMQUdfRE1BX01BUCB8IFBQX0ZMQUdfRE1BX1NZTkNfREVWO1xuK1x0cHBfcGFyYW1zLnBvb2xfc2l6ZSA9IGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuK1x0bnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLVx1MDAzZWRtYV9idWZfc3osIFBBR0VfU0laRSk7XG4rXHRwcF9wYXJhbXMub3JkZXIgPSBpbG9nMihudW1fcGFnZXMpO1xuK1x0cHBfcGFyYW1zLm5pZCA9IGRldl90b19ub2RlKHByaXYtXHUwMDNlZGV2aWNlKTtcbitcdHBwX3BhcmFtcy5kZXYgPSBwcml2LVx1MDAzZWRldmljZTtcbitcdHBwX3BhcmFtcy5kbWFfZGlyID0gRE1BX0JJRElSRUNUSU9OQUw7XG4rXHRwcF9wYXJhbXMub2Zmc2V0ID0gMDtcbitcdHBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFO1xuK1xuK1x0dHhfcS1cdTAwM2VwYWdlX3Bvb2wgPSBwYWdlX3Bvb2xfY3JlYXRlKFx1MDAyNnBwX3BhcmFtcyk7XG4rXHRpZiAoSVNfRVJSKHR4X3EtXHUwMDNlcGFnZV9wb29sKSkge1xuK1x0XHRyZXQgPSBQVFJfRVJSKHR4X3EtXHUwMDNlcGFnZV9wb29sKTtcbitcdFx0dHhfcS1cdTAwM2VwYWdlX3Bvb2wgPSBOVUxMO1xuK1x0XHRyZXR1cm4gcmV0O1xuK1x0fVxuK1xuIFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hID0ga3phbGxvY19vYmpzKCp0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEsXG4gXHRcdFx0XHRcdCAgIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplKTtcbiBcdGlmICghdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKVxuQEAgLTI4MzYsNyArMjg2Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFx0XHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPKSB7XG4gXHRcdFx0eGRwZiA9IHR4X3EtXHUwMDNleGRwZltlbnRyeV07XG4gXHRcdFx0c2tiID0gTlVMTDtcbi1cdFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuK1x0XHR9IGVsc2UgaWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8XG4rXHRcdFx0ICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpIHtcbiBcdFx0XHR4ZHBmID0gTlVMTDtcbiBcdFx0XHRza2IgPSB0eF9xLVx1MDAzZXR4X3NrYnVmZltlbnRyeV07XG4gXHRcdH0gZWxzZSB7XG5AQCAtMjg4NCw3ICsyOTExLDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFxuIFx0XHRpZiAobGlrZWx5KHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmIFx1MDAyNlx1MDAyNlxuIFx0XHRcdCAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSkge1xuLVx0XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxuK1x0XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSlcbitcdFx0XHRcdHBhZ2VfcG9vbF9yZWN5Y2xlX2RpcmVjdCh0eF9xLVx1MDAzZXBhZ2VfcG9vbCxcbitcdFx0XHRcdFx0XHRcdCB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLnBhZ2UpO1xuK1x0XHRcdGVsc2UgaWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpXG4gXHRcdFx0XHRkbWFfdW5tYXBfcGFnZShwcml2LVx1MDAzZWRldmljZSxcbiBcdFx0XHRcdFx0ICAgICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmLFxuIFx0XHRcdFx0XHQgICAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5sZW4sXG5AQCAtMjkyMiw3ICsyOTUyLDggQEAgc3RhdGljIGludCBzdG1tYWNfdHhfY2xlYW4oc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgYnVkZ2V0LCB1MzIgcXVldWUsXG4gXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hTS19UWClcbiBcdFx0XHR0eF9xLVx1MDAzZXhza19mcmFtZXNfZG9uZSsrO1xuIFxuLVx0XHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHtcbitcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8XG4rXHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkge1xuIFx0XHRcdGlmIChsaWtlbHkoc2tiKSkge1xuIFx0XHRcdFx0cGt0c19jb21wbCsrO1xuIFx0XHRcdFx0Ynl0ZXNfY29tcGwgKz0gc2tiLVx1MDAzZWxlbjtcbkBAIC00NzQyLDEyICs0NzczLDE0IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0Ym9vbCBlbmhfZGVzYywgaGFzX3ZsYW4sIHNldF9pYywgaXNfanVtYm8gPSBmYWxzZTtcbiBcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG4gXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xuK1x0Z2ZwX3QgZ2ZwID0gR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTjtcbiBcdHUzMiBxdWV1ZSA9IHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpO1xuIFx0aW50IG5mcmFncyA9IHNrYl9zaGluZm8oc2tiKS1cdTAwM2Vucl9mcmFncztcbiBcdHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSwgdHhfcGFja2V0cztcbiBcdHN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0eHFfc3RhdHM7XG4gXHRzdHJ1Y3QgZG1hX2Rlc2MgKmRlc2MsICpmaXJzdF9kZXNjO1xuIFx0c3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcTtcbitcdHN0cnVjdCBwYWdlICp0eF9idWZfcGFnZTtcbiBcdGludCBpLCBjc3VtX2luc2VydGlvbiA9IDA7XG4gXHRpbnQgZW50cnksIGZpcnN0X3R4O1xuIFx0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbkBAIC00ODE0LDEzICs0ODQ3LDMzIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0fSBlbHNlIHtcbiBcdFx0Ym9vbCBsYXN0X3NlZ21lbnQgPSAobmZyYWdzID09IDApO1xuIFxuLVx0XHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXHUwMDNlZGV2aWNlLCBza2ItXHUwMDNlZGF0YSxcbi1cdFx0XHRcdFx0ICBub3BhZ2VkX2xlbiwgRE1BX1RPX0RFVklDRSk7XG4tXHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihwcml2LVx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxuLVx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4rXHRcdGlmICghKGxhc3Rfc2VnbWVudCBcdTAwMjZcdTAwMjYgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X2J1Zl9xdWlyaykpIHtcbitcdFx0XHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXHUwMDNlZGV2aWNlLCBza2ItXHUwMDNlZGF0YSxcbitcdFx0XHRcdFx0XHQgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTtcbitcdFx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyKSlcbitcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4gXG4tXHRcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXG4tXHRcdFx0XHRcdCAgICBub3BhZ2VkX2xlbiwgZmFsc2UpO1xuK1x0XHRcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXG4rXHRcdFx0XHRcdFx0ICAgIG5vcGFnZWRfbGVuLCBmYWxzZSk7XG4rXHRcdH0gZWxzZSB7XG4rXHRcdFx0dHhfYnVmX3BhZ2UgPSBwYWdlX3Bvb2xfYWxsb2NfcGFnZXModHhfcS1cdTAwM2VwYWdlX3Bvb2wsIGdmcCk7XG4rXHRcdFx0aWYgKCF0eF9idWZfcGFnZSlcbitcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4rXG4rXHRcdFx0ZG1hX2FkZHIgPSBwYWdlX3Bvb2xfZ2V0X2RtYV9hZGRyKHR4X2J1Zl9wYWdlKTtcbitcdFx0XHRzdG1tYWNfc2V0X3R4X2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSxcbitcdFx0XHRcdFx0XHRTVE1NQUNfVFhCVUZfVF9ETUEsIGRtYV9hZGRyLFxuK1x0XHRcdFx0XHRcdG5vcGFnZWRfbGVuLCBmYWxzZSk7XG4rXHRcdFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ZpcnN0X2VudHJ5XS5wYWdlID0gdHhfYnVmX3BhZ2U7XG4rXG4rXHRcdFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxuK1x0XHRcdFx0XHRcdG5vcGFnZWRfbGVuLCBETUFfQklESVJFQ1RJT05BTCk7XG4rXHRcdFx0c2tiX2NvcHlfZnJvbV9saW5lYXJfZGF0YShza2IsIHBhZ2VfYWRkcmVzcyh0eF9idWZfcGFnZSksXG4rXHRcdFx0XHRcdFx0ICBub3BhZ2VkX2xlbik7XG4rXHRcdFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxuK1x0XHRcdFx0XHRcdCAgIG5vcGFnZWRfbGVuLFxuK1x0XHRcdFx0XHRcdCAgIERNQV9CSURJUkVDVElPTkFMKTtcbitcdFx0fVxuIFxuIFx0XHRzdG1tYWNfc2V0X2Rlc2NfYWRkcihwcml2LCBmaXJzdF9kZXNjLCBkbWFfYWRkcik7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuaW5kZXggZGM1Zjk1MWEzMTFkNC4uMGY4ZDJmYzYxY2U0OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuQEAgLTU3NSw2ICs1NzUsOCBAQCBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXG4gXG4gXHRvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgXCJzbnBzLHBzLXNwZWVkXCIsIFx1MDAyNnBsYXQtXHUwMDNlbWFjX3BvcnRfc2VsX3NwZWVkKTtcbiBcbitcdHBsYXQtXHUwMDNldHhfYnVmX3F1aXJrID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKG5wLCBcInNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrXCIpO1xuK1xuIFx0cGxhdC1cdTAwM2VheGkgPSBzdG1tYWNfYXhpX3NldHVwKHBkZXYpO1xuIFxuIFx0cmMgPSBzdG1tYWNfbXRsX3NldHVwKHBkZXYsIHBsYXQpO1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmggYi9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oXG5pbmRleCA0NDMwYjk2N2FiZGViLi5kNGM5ZDc3YTZmODFhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxuKysrIGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxuQEAgLTI2OCw2ICsyNjgsNyBAQCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEge1xuIFx0dTggdHhfcXVldWVzX3RvX3VzZTtcbiBcdHU4IHJ4X3NjaGVkX2FsZ29yaXRobTtcbiBcdHU4IHR4X3NjaGVkX2FsZ29yaXRobTtcbitcdGJvb2wgdHhfYnVmX3F1aXJrO1xuIFx0c3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdO1xuIFx0c3RydWN0IHN0bW1hY190eHFfY2ZnIHR4X3F1ZXVlc19jZmdbTVRMX01BWF9UWF9RVUVVRVNdO1xuIFx0dm9pZCAoKmdldF9pbnRlcmZhY2VzKShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHZvaWQgKmJzcF9wcml2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6MzYuNDM0MDk4MzE0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQyNTYwOTEwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBc3Nlc3NpbmcgdGhlIEltcGFjdCBvZiBhIE5ldyBzdG1tYWMgRmVhdHVyZTogQSBRRU1VIFBlcnNwZWN0aXZlKipcblxuT2theSwgc28gd2UgaGF2ZSB0aGlzIG5ldyBwYXRjaCBhZGRpbmcgdGhlIGBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlya2AgZmVhdHVyZSB0byB0aGUgYHN0bW1hY2AgZXRoZXJuZXQgZHJpdmVyLiBFc3NlbnRpYWxseSwgaXQncyBhYm91dCBvcHRpbWl6aW5nIHRyYW5zbWl0IG9wZXJhdGlvbnMgYnkgc3dhcHBpbmcgb3V0IHN0cmVhbWluZyBidWZmZXJzIGZvciBwYWdlIHBvb2wgYnVmZmVycyB3aGVuIHRoZSBxdWlyayBpcyBlbmFibGVkLiBUaGUgZGV2aWNlIHRyZWUgYmluZGluZyBpcyBpbiBwbGFjZS4gVGhlIGNvcmUgZHJpdmVyIGlzIGBzdG1tYWNgIChzdG1pY3JvL3N0bW1hYykgLSB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIHJpZ2h0P1xuXG5NeSBpbW1lZGlhdGUgY29uY2VybiBpcyByZWFjaGFiaWxpdHksIGVzcGVjaWFsbHkgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBJcyB0aGlzIGV2ZW4gZ29pbmcgdG8gYmUgdGVzdGFibGUgaW4gc29tZXRoaW5nIGxpa2UgUUVNVT8gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoIGlmIGBzdG1tYWNgIGlzIHVzZWQgaW4gYW55IHZpcnR1YWxpemVkIHNldHVwcywgb3IgaWYgUUVNVSBoYXMgYW55IHJlbGV2YW50IGVtdWxhdGlvbiBzdXBwb3J0LiBXYWl0IGEgbWludXRlLCB3YXNuJ3QgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgc3VwcG9ydGVkIGluIHNvbWUgUUVNVSBwbGF0Zm9ybXM/IEknbSBwcmV0dHkgc3VyZSBJJ3ZlIHNlZW4gbWVudGlvbnMgb2YgdGhhdCBiZWZvcmUuLi4geWVzLCBsZXQncyBsb29rIHRocm91Z2ggdGhlIFFFTVUgZG9jdW1lbnRhdGlvbiBhbmQgY29kZS4gT2theSwgbGV0J3Mgc2VhcmNoIHRoZSBrZXJuZWwgYW5kIFFFTVUgc291cmNlIGZvciBgc3RtbWFjYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHZpYWJsZSB0aGlzIHBhdGNoIGlzIGluIHRlcm1zIG9mIHRlc3RhYmlsaXR5IHdpdGhpbiBhIGNvbW1vbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYzMSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI1OjQzLjg1OTcxMTAxMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY4NDYyMDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVxcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIHVzZWQgb24gc2V2ZXJhbCBTb0NzOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbmFyaW9uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTc4PWNvbmZpZyBEV01BQ19JTkdFTklDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODY6XFx0ICBUaGlzIHNlbGVjdHMgSW5nZW5pYyBTb0NzIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgSW5nZW5pYyBTb0NzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIElQUTgwNnggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTktXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMTQ9Y29uZmlnIERXTUFDX01FRElBVEVLXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyMDpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEyMj1jb25maWcgRFdNQUNfTUVTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI5LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbWxvZ2ljIE1lc29uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIE1lc29uNixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzMS1cXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMzM9Y29uZmlnIERXTUFDX05VVk9UT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQxLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBOdXZvdG9uIE1BMzUgc2VyaWVzIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoZSBudXZvdG9uLWR3bWFjIGRyaXZlciBpc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQzLVxcdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTQ1PWNvbmZpZyBEV01BQ19RQ09NX0VUSFFPU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTItXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFF1YWxjb21tIEVUSFFPUyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0OlxcdCAgVGhpcyBzZWxlY3RzIFJlbmVzYXMgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkZXZpY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2NS1cXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTY4PWNvbmZpZyBEV01BQ19ST0NLQ0hJUFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNzYtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFJvY2tjaGlwIFJLMzI4OCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4Ny1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTg4OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIHN1cHBvcnQgY2FuIG1ha2UgdXNlIG9mIGEgY3VzdG9tIE1JSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVxcdCAgY29udmVydGVyIFBDUyBkZXZpY2UuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTk5LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMDM9Y29uZmlnIERXTUFDX1NPQ0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE0LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbHRlcmEgU09DRlBHQSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE2LVxcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIxOD1jb25maWcgRFdNQUNfU09QSEdPXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU29waGdvIFNvQyBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI3LVxcdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjI5PWNvbmZpZyBEV01BQ19TUEFDRU1JVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzctXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFNwYWNlbWl0IHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzktXFx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjQxPWNvbmZpZyBEV01BQ19TVEFSRklWRVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDktXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFN0YXJGaXZlIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTEtXFx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjUzPWNvbmZpZyBEV01BQ19TVElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjYxOlxcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RpIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI3MzpcXHQgIFRoaXMgc2VsZWN0cyBTVE0zMiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RNMzIgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg0LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4NTpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBMjAvQTMxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXFx0ICBHTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk2LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5NzpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBIMy9BODNUL0E2NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVxcdCAgRU1BQyBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMDgtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzA5OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEE1MjMvVDUyN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVxcdCAgR01BQzIwMCBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxOC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMxOTpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgVC1IRUFEIFRIMTUyMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVxcdCAgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMxLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0MC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgSW50ZWwgS2VlbSBCYXlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0Mi1cXHQgIFNvQy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzQ0PWNvbmZpZyBEV01BQ19MT09OR1NPTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzUxOlxcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBMb29uZ3NvbjEtYmFzZWQgYm9hcmRzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM1NT1jb25maWcgRFdNQUNfVEVHUkFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVxcdCAgZm91bmQgb24gdGhlIE5WSURJQSBUZWdyYSBTb0MgZGV2aWNlcy4gVGhpcyBkcml2ZXIgcHJvdmlkZXMgdGhlIGdsdWVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM2MTpcXHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYyLVxcdCAgZGV2aWNlcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzczPWNvbmZpZyBTVE1NQUNfTElCUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNzY6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzc4PWNvbmZpZyBEV01BQ19JTlRFTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODUtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcXHQgIHN0bW1hYyBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEludGVsIFF1YXJrL0VITC9UR0wuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5NC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTU6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIExPT05HU09OIFBDSSBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIExvb25nc29uLTJLMTAwMCBTb0MgYW5kIExTN0ExMDAwIGJyaWRnZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxMi1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MTM6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cXHQgIFRoaXMgZHJpdmVyIHdhcyB0ZXN0ZWQgb24gWExJTlggWEMyVjMwMDAgRkYxMTUyQU1UMDIyMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfU1RNTUFDX0VUSCkgKz0gc3RtbWFjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozOnN0bW1hYy1vYmpzOj0gc3RtbWFjX21haW4ubyBzdG1tYWNfZXRodG9vbC5vIHN0bW1hY19tZGlvLm8gcmluZ19tb2RlLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNC1cXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNS1cXHQgICAgICBkd21hYzEwMF9jb3JlLm8gZHdtYWMxMDBfZG1hLm8gZW5oX2Rlc2MubyBub3JtX2Rlc2Mub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2OlxcdCAgICAgIG1tY19jb3JlLm8gc3RtbWFjX2h3dHN0YW1wLm8gc3RtbWFjX3B0cC5vIGR3bWFjNF9kZXNjcy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTctXFx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcXHQgICAgICBzdG1tYWNfdGMubyBkd3hnbWFjMl9jb3JlLm8gZHd4Z21hYzJfZG1hLm8gZHd4Z21hYzJfZGVzY3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6OTpcXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMDpcXHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMjpzdG1tYWMtJChDT05GSUdfU1RNTUFDX1NFTEZURVNUUykgKz0gc3RtbWFjX3NlbGZ0ZXN0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTU6b2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSlcXHQrPSBzdG1tYWMtcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTE2LW9iai0kKENPTkZJR19EV01BQ19BTkFSSU9OKVxcdCs9IGR3bWFjLWFuYXJpb24ub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDU9b2JqLSQoQ09ORklHX0RXTUFDX1ZJU0NPTlRJKVxcdCs9IGR3bWFjLXZpc2NvbnRpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0NjpzdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1NUTU1BQ19MSUJQQ0kpXFx0Kz0gc3RtbWFjX2xpYnBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXFx0Kz0gc3RtbWFjLXBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNTEtb2JqLSQoQ09ORklHX0RXTUFDX0lOVEVMKVxcdCs9IGR3bWFjLWludGVsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXFx0Kz0gZHdtYWMtbW90b3Jjb21tLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1NDpzdG1tYWMtcGNpLW9ianM6PSBzdG1tYWNfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTc6c3RhdGljIGludCBqdW1ib19mcm0oc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXFx0XFx0ICAgICBpbnQgY3N1bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0yMC1cXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVxcdHVuc2lnbmVkIGludCBlbnRyeSA9IHR4X3EtXFx1MDAzZWN1cl90eDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00NC1cXHQvKiBkbyBub3QgY2xvc2UgdGhlIGRlc2NyaXB0b3IgYW5kIGRvIG5vdCBzZXQgb3duIGJpdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDEsIGJ1Zl9sZW4sIGNzdW0sIFNUTU1BQ19DSEFJTl9NT0RFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00Ni1cXHRcXHRcXHQwLCBmYWxzZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYxLVxcdFxcdFxcdHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjYyOlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgYm1heCwgY3N1bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNjMtXFx0XFx0XFx0XFx0XFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIGZhbHNlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNzUtXFx0XFx0XFx0LyogbGFzdCBkZXNjcmlwdG9yIGNhbiBiZSBzZXQgbm93ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjc2OlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgbGVuLCBjc3VtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cXHRcXHRcXHRcXHRcXHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgdHJ1ZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jPTk4PXN0YXRpYyB2b2lkIGluaXRfZG1hX2NoYWluKHZvaWQgKmRlcywgZG1hX2FkZHJfdCBwaHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEyODpzdGF0aWMgdm9pZCByZWZpbGxfZGVzYzMoc3RydWN0IHN0bW1hY19yeF9xdWV1ZSAqcnhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMzA6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gcnhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDM6c3RhdGljIHZvaWQgY2xlYW5fZGVzYzMoc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gdHhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXFx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cXHUwMDNlZGlydHlfdHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNjA6Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyBjaGFpbl9tb2RlX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVxcdC5pbml0ID0gaW5pdF9kbWFfY2hhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQ5PXN0YXRpYyBpbmxpbmUgYm9vbCBkd21hY19pc194bWFjKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjcxOnN0cnVjdCBzdG1tYWNfcV90eF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzItXFx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTc5LVxcdHU2NF9zdGF0c190IHR4X3BhY2tldHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4NjpzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXFx0LyogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgdHggcXVldWUgbG9jay4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04OC1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4OTpcXHRzdHJ1Y3Qgc3RtbWFjX3FfdHhfc3RhdHMgcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTkyLVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjkzOlxcdHN0cnVjdCBzdG1tYWNfbmFwaV90eF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo5NjpzdHJ1Y3Qgc3RtbWFjX25hcGlfcnhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVxcdHU2NF9zdGF0c190IHJ4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjEwMzpzdHJ1Y3Qgc3RtbWFjX3J4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA0LVxcdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDUtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIG5hcGlfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2OlxcdHN0cnVjdCBzdG1tYWNfbmFwaV9yeF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNy19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDktLyogVXBkYXRlcyBvbiBlYWNoIENQVSBwcm90ZWN0ZWQgYnkgbm90IGFsbG93aW5nIG5lc3RlZCBpcnFzLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExMDpzdHJ1Y3Qgc3RtbWFjX3BjcHVfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgc3luY3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTc6c3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTE4LVxcdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjM3LVxcdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM4OlxcdHN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzIHR4cV9zdGF0c1tNVExfTUFYX1RYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5OlxcdHN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHJ4cV9zdGF0c1tNVExfTUFYX1JYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQwOlxcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDEtXFx0dW5zaWduZWQgbG9uZyByeF9kcm9wcGVkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQ3LS8qIFNhZmV0eSBGZWF0dXJlIHN0YXRpc3RpY3MgZXhwb3NlZCBieSBldGh0b29sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQ4OnN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXFx0dW5zaWduZWQgbG9uZyBtYWNfZXJyb3JzWzMyXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI1NzpcXHQoc2l6ZW9mKHN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzKSAvIHNpemVvZih1bnNpZ25lZCBsb25nKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00MTY9c3RydWN0IGRtYV9mZWF0dXJlcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTY1OnZvaWQgc3RtbWFjX2F4aV9ibGVuX3RvX21hc2sodTMyICpyZWd2YWwsIGNvbnN0IHUzMiAqYmxlbiwgc2l6ZV90IGxlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NjEzPXN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyAqbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9vcHMgKmRtYTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyAqbW9kZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTg6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxOTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3RjX29wcyAqdGM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfbW1jX29wcyAqbW1jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjI6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY192bGFuX29wcyAqdmxhbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXFx0c3RydWN0IGR3X3hwY3MgKnhwY3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjQ1OnN0cnVjdCBzdG1tYWNfcnhfcm91dGluZyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ2LVxcdHUzMiByZWdfbWFzaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUxOmludCBkd21hYzEwMDBfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTI6aW50IGR3bWFjNF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTQ6aW50IGR3eGxnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1Ny1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1ODp2b2lkIHN0bW1hY19nZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYwOnZvaWQgc3RtbWFjX3NldF9tYWModm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYzLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjUtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcXHUwMDNjbGludXgvb2ZfbmV0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjE0OiNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hY19wbGF0Zm9ybS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo2NDpcXHRcXHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05Ni1cXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5NzpcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlxcdHJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMDQ6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMTY6XFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExNy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEyOC1cXHRcXHQubmFtZSAgICAgICAgICAgPSBcXFwiYW5hcmlvbi1kd21hY1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOTpcXHRcXHQucG1cXHRcXHQ9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMzAtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Jlc2V0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFxcXCJkd21hYzQuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXFx0XFx0cGxhdF9kYXQtXFx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XFx0XFx0XFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHN0bW1hY19heGkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXFx0XFx0XFx0XFx0XFx0ICAgICBHRlBfS0VSTkVMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9OTY9c3RhdGljIGludCBkd2NfcW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo5NzpcXHRcXHRcXHQgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4OlxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEwMDpcXHRwbGF0X2RhdC1cXHUwMDNlcGNsayA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInBoeV9yZWZfY2xrXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTE5LVxcdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEyMDpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXFx0dTMyIHZhbHVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXFx0XFx0LyogQ2FsaWJyYXRpb24gc2hvdWxkIGJlIGRvbmUgd2l0aCB0aGUgTURJTyBidXMgaWRsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlxcdFxcdHN0bW1hY19tZGlvX2xvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcXHRcXHRzdG1tYWNfbWRpb191bmxvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg3OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg4OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0OlxcdHBsYXRfZGF0LVxcdTAwM2VjbGtfdHhfaSA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInR4XFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzNy1cXHRwbGF0X2RhdC1cXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjM4OlxcdHBsYXRfZGF0LVxcdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM5LVxcdHBsYXRfZGF0LVxcdTAwM2Vic3BfcHJpdiA9IGVxb3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI1Mj1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI1NDpcXHRzdHJ1Y3QgdGVncmFfZXFvcyAqZXFvcyA9IGdldF9zdG1tYWNfYnNwX3ByaXYoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI2MD1zdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2MS1cXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MjpcXHRcXHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjM6XFx0XFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2NC1cXHR2b2lkICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcXHRjb25zdCBjaGFyICpzdG1tYWNfY2xrX25hbWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIGR3Y19xb3NfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2OS1cXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjcwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwiYXBiX3BjbGtcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjcxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSB0ZWdyYV9lcW9zX2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cXHQucmVtb3ZlID0gdGVncmFfZXFvc19yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzY6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJzbGF2ZV9idXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3OT1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSBmc2RfZXFvc19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwic2xhdmVfYnVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4NS1cXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjg2OlxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgc3RtbWFjX3JlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4OC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XFx0bWVtc2V0KFxcdTAwMjZzdG1tYWNfcmVzLCAwLCBzaXplb2Yoc3RydWN0IHN0bW1hY19yZXNvdXJjZXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5NC1cXHQvKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcXHQgKiBTaW5jZSBzdG1tYWNfcGxhdGZvcm0gc3VwcG9ydHMgbmFtZSBJUlEgb25seSwgYmFzaWMgcGxhdGZvcm1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5Ni1cXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk3LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4OlxcdHN0bW1hY19yZXMuaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5OTpcXHRpZiAoc3RtbWFjX3Jlcy5pcnEgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAwOlxcdFxcdHJldHVybiBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMTpcXHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMzpcXHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDQ6XFx0aWYgKElTX0VSUihzdG1tYWNfcmVzLmFkZHIpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1OlxcdFxcdHJldHVybiBQVFJfRVJSKHN0bW1hY19yZXMuYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDc6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTY6XFx0cGxhdF9kYXQtXFx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTc6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICBkYXRhLVxcdTAwM2VzdG1tYWNfY2xrX25hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE5LVxcdGlmIChkYXRhLVxcdTAwM2Vwcm9iZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMyMDpcXHRcXHRyZXQgPSBkYXRhLVxcdTAwM2Vwcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMzMDpcXHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzQzPXN0YXRpYyB2b2lkIGR3Y19ldGhfZHdtYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM0NzpcXHRzdG1tYWNfZHZyX3JlbW92ZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzYxPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR3Y19ldGhfZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcImR3Yy1ldGgtZHdtYWNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzY2OlxcdFxcdC5wbSAgICAgICAgICAgICA9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNTo0My45OTY1NzA2MDJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDIwMzkwNTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYHN0bW1hY2AgRHJpdmVyIGFuZCBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGUgYHN0bW1hY2AgZHJpdmVyIGlzIHByZXR0eSB3aWRlc3ByZWFkOyBJbnRlbCBLZWVtIEJheSwgUm9ja2NoaXAsIFRlZ3JhLCBBbGx3aW5uZXIg4oCTIGl0J3MgYWxsIG92ZXIgdGhlIHBsYWNlLiBDbGVhcmx5LCBpdCdzIGEgZnVuY3Rpb25pbmcgZHJpdmVyLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBwYWdlIHBvb2wgcXVpcmsgZm9yIHRyYW5zbWl0IGJ1ZmZlcnMsIHRyaWdnZXJlZCBieSB0aGUgZGV2aWNlIHRyZWUgZW50cnkgYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYC4gVGhpcyBpcyBpbnRlcmVzdGluZy4uLiBpZiBpdCdzIGRldmljZSB0cmVlIGNvbnRyb2xsZWQsIGNvdWxkIEkgcG90ZW50aWFsbHkgaGl0IHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVU/IEkgbmVlZCB0byB0aGluayBhYm91dCBob3cgUUVNVSBtb2RlbHMgdGhlIGBzdG1tYWNgIGhhcmR3YXJlLiBJcyBpdCB1c2luZyBzb21ldGhpbmcgbGlrZSBgaHcvbmV0L2Rlc2lnbndhcmUuY2A/IFxuXG5IbW0sIHRoZSBwYXRjaCBhbHNvIG1vZGlmaWVzIGBzb2NmcGdhX2FnaWxleDUuZHRzaWAuIE9rYXksIHNvIHRoZXkncmUgZW5hYmxpbmcgdGhlIHF1aXJrIGZvciB0aGF0IHBsYXRmb3JtLiBOb3csIHRoZSByZWFsIHF1ZXN0aW9uOiBjYW4gSSBmdXp6IHRoaXMgd2l0aCBzeXprYWxsZXI/IFN5emthbGxlciBjYW4gaW5qZWN0IGRldmljZSB0cmVlIG5vZGVzIG9yIHZpcnR1YWwgZGV2aWNlcyBpZiBpdCdzIGEgcGxhdGZvcm0gZHJpdmVyLiBJIGtub3cgaXQgY2FuIHVzZSBgc3l6X2Rldm1lbWAgb3Igc2ltaWxhciwgYnV0IHR5cGljYWxseSBpdCBkZXBlbmRzIG9uIGV4aXN0aW5nIGRldmljZXMgb3IgdXNlcyBgc3l6X2dlbmV0bGlua2AuIEJ1dCwgaXQgY2FuIGFsc28gdXNlIGB0dW5gL2B0YXBgIG9yIGludGVyYWN0IHdpdGggdGhlIG5ldHdvcmsgc3RhY2suIEhvd2V2ZXIsIEkgbmVlZCB0aGUgZGV2aWNlIHRvIGJlIHByb2JlZCB0byByZWFjaCB0aGlzIHNwZWNpZmljIGNvZGUuIFNvLCB0aGUgcXVlc3Rpb24gYmVjb21lcywgaXMgYHN0bW1hY2AgcHJvYmVkIGluIHN5emthbGxlcidzIHN0YW5kYXJkIGVudmlyb25tZW50cz8gU3l6a2FsbGVyIHVzZXMgYHFlbXUtc3lzdGVtLXg4Nl82NGAsIGBhYXJjaDY0YCwgb3IgYGFybWAuIElmIGl0J3MgYW4gQVJNNjQgZW52aXJvbm1lbnQsIGBzb2NmcGdhX2FnaWxleDVgIG1pZ2h0IG5vdCBiZSB0aGUgZGVmYXVsdCBtYWNoaW5lLlxuXG5XYWl0LCBgc3RtbWFjYCBjYW4gYWxzbyBiZSBhIFBDSSBkZXZpY2UhIFRoYXQncyBhIGtleSBvYnNlcnZhdGlvbi4gSSBuZWVkIHRvIGNoZWNrIGlmIGBzdG1tYWNgIGhhcyBhIFBDSSBiaW5kaW5nLiBMZXQncyBzZWUuLi4gWWVwLCBgQ09ORklHX1NUTU1BQ19QQ0lgIGlzIHRoZXJlISBPa2F5LCBzbyBpdCBjYW4gYmUgYSBQQ0kgZGV2aWNlLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgZG9lcyBgc3RtbWFjX3BjaS5jYCBhY3R1YWxseSBzZXQgdGhpcyBgdHhfYnVmX3F1aXJrYD8gVGhhdCdzIHdoYXQgSSBuZWVkIHRvIHZlcmlmeSBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTUzNCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNTo1My40MTY5NjM3NTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM5MzQwMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhfYnVmX3F1aXJrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQ3NzE9c3RhdGljIG5ldGRldl90eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ4NDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0ODUwOlxcdFxcdGlmICghKGxhc3Rfc2VnbWVudCBcXHUwMDI2XFx1MDAyNiBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9idWZfcXVpcmspKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00ODUxLVxcdFxcdFxcdGRtYV9hZGRyID0gZG1hX21hcF9zaW5nbGUocHJpdi1cXHUwMDNlZGV2aWNlLCBza2ItXFx1MDAzZWRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz00MTY9c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjU3ODpcXHRwbGF0LVxcdTAwM2V0eF9idWZfcXVpcmsgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsIFxcXCJzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlya1xcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU3OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6NTMuNDcwOTA1MDM2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjczMzAxNTc1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gdGhpcyBgdHhfYnVmX3F1aXJrYCBmbGFn4oCmIEkgc2VlIGl0J3Mgb25seSBzZXQgd2l0aGluIGBzdG1tYWNfcHJvYmVfY29uZmlnX2R0YC4gVGhhdCdzIGEgRGV2aWNlIFRyZWUgdGhpbmcsIHNwZWNpZmljYWxseSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG1tbSwgY291bGQgU3l6a2FsbGVyIHBvdGVudGlhbGx5IHRyaWdnZXIgdGhpcyBzb21laG93PyBJdCAqY2FuKiBsb2FkIGN1c3RvbSBEZXZpY2UgVHJlZXMgb3IgdXNlIGBzeXpfZGV2bWVtYCB0byBwb2tlIGFyb3VuZC4gQnV0IGhvbGQgb24sIHR5cGljYWxseSBpdCBkb2Vzbid0IGR5bmFtaWNhbGx5IGxvYWQgRGV2aWNlIFRyZWVzIHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggc29tZXRoaW5nIGxpa2UgYHN5el9tb3VudF9pbWFnZWAsIGFuZCB0aGVyZSdzIG5vIGdlbmVyYWwgbWVjaGFuaXNtIHRvIGFkZCBEVCBub2RlcyBvbiB0aGUgZmx5IGZvciBwbGF0Zm9ybSBkZXZpY2VzIHdpdGhvdXQgRFQgb3ZlcmxheXMsIHJpZ2h0P1xuXG5XYWl0LCBkb2VzIFN5emthbGxlciBoYXZlIHNvbWUgc29ydCBvZiBgc3l6X2luaXRfbmV0X2RldmljZWAgY2FsbCBvciBzaW1pbGFyPyBObywgY2FuJ3QgdGhpbmsgb2YgYW55dGhpbmcuXG5cbkJ1dCB3YWl0IGFnYWluIOKAkyBTeXprYWxsZXIgKmRvZXMqIGZ1enogQVJNNjQgcGxhdGZvcm1zIHdpdGggZGlmZmVyZW50IERldmljZSBUcmVlcy4gSWYgdGhlIEFnaWxleDUgRFQgaXMgYmVpbmcgdXNlZCwgb3IgaWYgdGhlIHJlbGV2YW50IHByb3BlcnR5IGlzIHByZXNlbnQsIHRoZW4gaXQncyAqcG9zc2libGUqIGl0IGNvdWxkIGdldCBmdXp6ZWQuIFRoYXQncyBhIHBvaW50LlxuXG5SaWdodCwgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBzdG1tYWNfbWFpbi5jYCDigJMgdGhhdCdzIHRoZSBkcml2ZXIncyBjb3JlLiBBbmQgdGhlIGNoYW5nZXMgYXJlIGluIGtleSBhcmVhczogYHN0bW1hY190eF9jbGVhbmAsIGBzdG1tYWNfZnJlZV90eF9idWZmZXJgLCBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgLCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGFuZCBgc3RtbWFjX3htaXRgLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcGFydDogYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBsb29rcyBsaWtlIGl0J3MgY2FsbGVkIHVuY29uZGl0aW9uYWxseSEgVGhhdCdzIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuIExldCdzIGRpZyBkZWVwZXIgaW50byB0aGF0IGZ1bmN0aW9uIGFuZCBzZWUgd2hhdCdzIGdvaW5nIG9uLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTE2LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjAwLjIwMzkyMjg1MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjI2ODgyNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjMwNz1zdGF0aWMgaW50IGFsbG9jX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIzMjktLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMzMwOiAqIF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzIC0gYWxsb2MgVFggcmVzb3VyY2VzIChwZXIgcXVldWUpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjMzMS0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjMzOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIzMzk6c3RhdGljIGludCBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMzQwLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjM5Nj1zdGF0aWMgaW50IGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0MDQtXFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFxcdTAwM2MgdHhfY291bnQ7IHF1ZXVlKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0MDU6XFx0XFx0cmV0ID0gX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXMocHJpdiwgZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0MDYtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzA4OD12b2lkIHN0bW1hY19lbmFibGVfdHhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwOTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDk1OlxcdHJldCA9IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIFxcdTAwMjZwcml2LVxcdTAwM2VkbWFfY29uZiwgcXVldWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzA5Ni1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjAwLjM2NjYxOTU5MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgyOTMwOTk0MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBwYWdlX3Bvb2xgIEludHJvZHVjdGlvbiBpbiB0aGUgU1RNTUFDIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpczogYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBpcyBub3cgKmFsd2F5cyogY2FsbGVkIGZvciBldmVyeSB0cmFuc21pdCBxdWV1ZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoYXQgcXVpcmt5IGB0eF9idWZfcXVpcmtgIGlzIGFjdGl2ZS4gIEludGVyZXN0aW5nLiBMZXQncyBtYWtlIHN1cmUuIFJpZ2h0LCBzbyBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCBjcmVhdGVzIGEgYHBhZ2VfcG9vbGAgZm9yIGVhY2ggVFggcXVldWUgKnVuY29uZGl0aW9uYWxseSouIFRoYXQncyB0aGUga2V5LiBUaGlzIHJlcHJlc2VudHMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIG1lbW9yeSBhbGxvY2F0aW9uLCByZWdhcmRsZXNzIG9mIGFueSBzcGVjaWZpYyBxdWlyayBzZXR0aW5ncy4gVGhpcyBoYXMgaW1tZWRpYXRlIGFuZCBmYXItcmVhY2hpbmcgaW1wbGljYXRpb25zLiBJZiB0aGUgcXVpcmsgaXMgZW5hYmxlZCwgdGhlIGNvZGUgd2lsbCAqYWxzbyogdXNlIHRoZSBwYWdlIHBvb2wgd2l0aGluIGBzdG1tYWNfeG1pdGAuXG5cblRoaXMgZnVuZGFtZW50YWxseSBhbHRlcnMgdGhlIGRyaXZlcidzIG1lbW9yeSBtYW5hZ2VtZW50IHN0cmF0ZWd5LCBhbmQsIGFzIGEgZHJpdmVyIGV4cGVydCwgSSBjYW4gdGVsbCB5b3UgdGhpcyBuZWVkcyBhIGNsb3NlIGV4YW1pbmF0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZnV6eiB0aGlzIGFyZWEuIEFueSBjaGFuZ2UgbGlrZSB0aGlzIGlzIGEgcG90ZW50aWFsIHNvdXJjZSBvZiBpc3N1ZXMuXG5cbk5vdywgSSBuZWVkIHRvIGZvY3VzIG9uIHRoZSBrZXkgc3ltYm9scyBpbnZvbHZlZC4gTGV0J3MgbGlzdCB0aG9zZS4gVGhlIHBhdGNoIG1vZGlmaWVkOlxuLSBgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyYCAoc3RhdGljKVxuLSBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgKHN0YXRpYylcbi0gYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCAoc3RhdGljKVxuLSBgc3RtbWFjX3R4X2NsZWFuYCAoc3RhdGljKVxuLSBgc3RtbWFjX3htaXRgIChzdGF0aWMpXG5cbkhtbSwgYWxsIG9mIHRoZXNlIGFyZSBzdGF0aWMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSAqZXh0ZXJuYWwqIGltcGFjdC4gU28sIEkgbmVlZCB0byBnbyB1cHN0cmVhbSBhbmQgZmluZCB0aGUgbm9uLXN0YXRpYyBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoZW0uIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50LCB0aGUgd2F5IHRoZSBmdW5jdGlvbmFsaXR5IGNoYW5nZXMgaW50ZXJhY3Qgd2l0aCB0aGUgYnJvYWRlciBjb2RlIGJhc2UuIEZyb20gaGVyZSwgSSBjYW4gdHJhY2UgcG90ZW50aWFsIGFyZWFzIG9mIGJyZWFrYWdlIHRvIHRlc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzE0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjcwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjA4LjY1OTcyMTIyN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc2NDU5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX3htaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDc1MT1zdGF0aWMgYm9vbCBzdG1tYWNfaGFzX2lwX2V0aGVydHlwZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzYzLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDc2NDogKiAgc3RtbWFjX3htaXQgLSBUeCBlbnRyeSBwb2ludCBvZiB0aGUgZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzY1LSAqICBAc2tiIDogdGhlIHNvY2tldCBidWZmZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDc3MC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ3NzE6c3RhdGljIG5ldGRldl90eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzcyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzM0MD1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHN0bW1hY19uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM0MS1cXHQubmRvX29wZW4gPSBzdG1tYWNfb3BlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNDI6XFx0Lm5kb19zdGFydF94bWl0ID0gc3RtbWFjX3htaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQzLVxcdC5uZG9fZmVhdHVyZXNfY2hlY2sgPSBzdG1tYWNfZmVhdHVyZXNfY2hlY2ssXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjA4LjcwNzM3MzMxNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzY1MTEwODc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gQ2FsbCBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBzdG1tYWNfeG1pdGAgZnVuY3Rpb24uIEl0J3MgdGhlIGBuZG9fc3RhcnRfeG1pdGAgY2FsbGJhY2ssIHJpZ2h0PyBUaGUgaW5zdHJ1Y3Rpb25zIEkndmUgYmVlbiBnaXZlbiBzYXkgdG8gcHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cy4gTm93LCB0aGUgZG9jdW1lbnRhdGlvbiBzYXlzIHRvIHByaW9yaXRpemUgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgc3RhdGljIGludGVybmFsIGhlbHBlciBmdW5jdGlvbnMuXG5cbkluaXRpYWxseSwgSSB0aG91Z2h0LCBcIkhtbSwgYHN0bW1hY194bWl0YCBpcyAqc3RhdGljKi5cIiBCdXQgaG9sZCBvbiwgaXQncyBiZWluZyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIsIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQgbWVhbnMgdGhlIGNvbXBpbGVyICpjYW4ndCogaW5saW5lIGl0LCByaWdodD8gSXQnbGwgZGVmaW5pdGVseSBoYXZlIGl0cyBvd24gZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuIFNvLCB3aGlsZSBpdCdzIHN0YXRpYywgaXQncyBiZWhhdmluZyBsaWtlIGEgbm9uLXN0YXRpYyBlbnRyeXBvaW50IGluIHByYWN0aWNlLiBUbyBiZSBhYnNvbHV0ZWx5IHNhZmUsIEknbGwgYWRkIGBzdG1tYWNfeG1pdGAgdG8gdGhlIGxpc3QuXG5cbk5vdywgd2hhdCBhYm91dCBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgPyBMZXQncyB0cmFjZSBpdC4gSXQncyBjYWxsZWQgYnkgYGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIGlzIGNhbGxlZCBieSBgYWxsb2NfZG1hX2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggaXMgY2FsbGVkIGJ5Li4uIG9rYXksIGxvb2tzIGxpa2UgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19yZXN1bWVgLiBSaWdodC4gSXQncyB0aW1lIHRvIGNoZWNrIG91dCBgc3RtbWFjX29wZW5gLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTg3NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoxMy40NzI0ODcxMzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MDUyMzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQwODE9c3RtbWFjX3NldHVwX2RtYV9kZXNjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdW5zaWduZWQgaW50IG10dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE0Ni0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxNDc6ICogIF9fc3RtbWFjX29wZW4gLSBvcGVuIGVudHJ5IHBvaW50IG9mIHRoZSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxNDgtICogIEBkZXYgOiBwb2ludGVyIHRvIHRoZSBkZXZpY2Ugc3RydWN0dXJlLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTU1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDE1NjpzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxNTctXFx0XFx0XFx0IHN0cnVjdCBzdG1tYWNfZG1hX2NvbmYgKmRtYV9jb25mKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjA0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDIwNTpzdGF0aWMgaW50IHN0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDIzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMzM6XFx0cmV0ID0gX19zdG1tYWNfb3BlbihkZXYsIGRtYV9jb25mKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMzQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjE0NT1zdGF0aWMgaW50IHN0bW1hY19jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjE4MTpcXHRcXHRyZXQgPSBfX3N0bW1hY19vcGVuKGRldiwgZG1hX2NvbmYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjE4Mi1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNDA9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBzdG1tYWNfbmV0ZGV2X29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNDE6XFx0Lm5kb19vcGVuID0gc3RtbWFjX29wZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQyLVxcdC5uZG9fc3RhcnRfeG1pdCA9IHN0bW1hY194bWl0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03NjI3PWludCBzdG1tYWNfcmVpbml0X3F1ZXVlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCByeF9jbnQsIHU4IHR4X2NudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzY0Ni1cXHRpZiAobmV0aWZfcnVubmluZyhkZXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzY0NzpcXHRcXHRyZXQgPSBzdG1tYWNfb3BlbihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzY0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzY1Mj1pbnQgc3RtbWFjX3JlaW5pdF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJ4X3NpemUsIHUzMiB0eF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjYzLVxcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NjY0OlxcdFxcdHJldCA9IHN0bW1hY19vcGVuKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjY1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoxMy41MTg1NDYwNDZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE2OTYxNTE1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIEkgZGVsdmUgaW50byB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyJ3MgRnVuY3Rpb24gQ2FsbHMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhlIFNUTU1BQyBkcml2ZXIgaXMgc3RydWN0dXJlZCwgc3BlY2lmaWNhbGx5IGhvdyB0aGUgbmV0d29yayBkZXZpY2Ugb3BlcmF0aW9ucyBhcmUgZGVmaW5lZC4gSSBzZWUgdGhhdCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX3htaXRgIGFyZSBib3RoIGRlY2xhcmVkIGFzIHN0YXRpYyBmdW5jdGlvbnMsIHdoaWNoIGlzIHN0YW5kYXJkIHByYWN0aWNlIGZvciBpbnRlcm5hbCBkcml2ZXIgZnVuY3Rpb25zLCBidXQgdGhleSdyZSBhc3NpZ25lZCB0byB0aGUgYHN0bW1hY19uZXRkZXZfb3BzYCBzdHJ1Y3R1cmUuIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZSwgdGhleSBhcmUgdGhlIGVudHJ5IHBvaW50cyBmb3IgdGhlIG5ldHdvcmsgZGV2aWNlLiBOb3csIEknbSB0cnlpbmcgdG8gdHJhY2UgdGhlIGRhdGEgZmxvdyBhbmQgSSdtIHdvbmRlcmluZyB3aGVyZSBlbHNlIGBzdG1tYWNfdHhfY2xlYW5gIGZpdHMgaW50byB0aGlzIHBpY3R1cmUsIGFzIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB0cmFuc21pdCBwYXRoLlxuXG5JIGtub3cgYHN0bW1hY190eF9jbGVhbmAgaXMgcmVzcG9uc2libGUgZm9yIGNsZWFuaW5nIHVwIHRoZSB0cmFuc21pdCBxdWV1ZSwgb2J2aW91c2x5LiBJJ20gYXdhcmUgdGhhdCBgc3RtbWFjX3R4X2NsZWFuYCBpcyBjYWxsZWQgYnkgYHN0bW1hY190eF90aW1lcmAgYW5kIGBzdG1tYWNfcG9sbGAuIFNpbmNlIGBzdG1tYWNfcG9sbGAgaGFuZGxlcyB0aGUgaW50ZXJydXB0IGRyaXZlbiBjb21wbGV0aW9uLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGF0IG5leHQuIEkgd2lsbCBleGFtaW5lIGBzdG1tYWNfcG9sbGAgYW5kIGl0cyByZWxhdGlvbnNoaXAgd2l0aCBgc3RtbWFjX3R4X2NsZWFuYCB0byBmdWxseSB1bmRlcnN0YW5kIGhvdyB0cmFuc21pdCBkZXNjcmlwdG9ycyBhcmUgcHJvY2Vzc2VkLiBJJ20gY29uZmlkZW50IHRoYXQgdW5kZXJzdGFuZGluZyB0aGlzIGNhbGwgcGF0aCB3aWxsIGNsYXJpZnkgdGhlIGRyaXZlcidzIHRyYW5zbWl0IG1lY2hhbmlzbS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1NzEsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoxNy42ODgxNjQ2MDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NjAzOTI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNfcG9sbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjE3LjczNDc3NzgzOVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjIwMzE2NDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQgaW4gdGhpcyBmaWVsZCwgYW5kIHdyaXRpbmcgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipQb3RlbnRpYWwgU3VzcGVjdCBJZGVudGlmaWVkOiBgc3RtbWFjX25hcGlfcG9sbGAqKlxuXG5IbW0sIGp1c3QgYSBtb21lbnQuIE15IGluaXRpYWwgbGluZSBvZiByZWFzb25pbmcgd2FzIGxlYWRpbmcgbWUgZG93biBhIGNlcnRhaW4gcGF0aCwgYnV0IHNvbWV0aGluZydzIG5hZ2dpbmcgYXQgbWUuIENvbnNpZGVyaW5nIHRoZSBjb250ZXh0LCBhbmQgdGhlIHNwZWNpZmljIG51YW5jZXMgb2YgdGhlIHNpdHVhdGlvbiwgSSdtIGJlZ2lubmluZyB0byByZWNvbnNpZGVyLiBUaGUgcG90ZW50aWFsIGN1bHByaXQsIHRoZSBmdW5jdGlvbiB0aGF0J3MgbW9zdCBsaWtlbHkgY2F1c2luZyB0aGUgaXNzdWUsIGlzIGluY3JlYXNpbmdseSBwb2ludGluZyB0b3dhcmRzIGBzdG1tYWNfbmFwaV9wb2xsYC4gSSBzaG91bGQndmUgc2VlbiBpdCBzb29uZXIuIEkgbmVlZCB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhhdCBmdW5jdGlvbi4gSXQncyBsaWtlbHkgaW52b2x2ZWQgaW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGNvbnRyb2xsZXLigJlzIHBvbGxpbmcgbWVjaGFuaXNtLiBJIHNob3VsZCBzdGFydCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc5OTcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoyMS45NTUwOTcwNzJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3MTY3MjA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19uYXBpX3BvbGxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTcxNj1zdGF0aWMgaW50IHN0bW1hY19yeChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01OTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTk4NzpzdGF0aWMgaW50IHN0bW1hY19uYXBpX3BvbGxfcngoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTk4OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYwMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MDEzOnN0YXRpYyBpbnQgc3RtbWFjX25hcGlfcG9sbF90eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MDE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjA0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYwNDY6c3RhdGljIGludCBzdG1tYWNfbmFwaV9wb2xsX3J4dHgoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjA0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc1Nzc9c3RhdGljIHZvaWQgc3RtbWFjX25hcGlfYWRkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OTEtXFx0XFx0aWYgKHF1ZXVlIFxcdTAwM2MgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlcnhfcXVldWVzX3RvX3VzZSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5MjpcXHRcXHRcXHRuZXRpZl9uYXBpX2FkZChkZXYsIFxcdTAwMjZjaC1cXHUwMDNlcnhfbmFwaSwgc3RtbWFjX25hcGlfcG9sbF9yeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTkzLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzU5NS1cXHRcXHRcXHRuZXRpZl9uYXBpX2FkZF90eChkZXYsIFxcdTAwMjZjaC1cXHUwMDNldHhfbmFwaSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc1OTY6XFx0XFx0XFx0XFx0XFx0ICBzdG1tYWNfbmFwaV9wb2xsX3R4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OTctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjAwLVxcdFxcdFxcdG5ldGlmX25hcGlfYWRkKGRldiwgXFx1MDAyNmNoLVxcdTAwM2VyeHR4X25hcGksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NjAxOlxcdFxcdFxcdFxcdCAgICAgICBzdG1tYWNfbmFwaV9wb2xsX3J4dHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzYwMi1cXHRcXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjIyLjAwMjI2OTkwOVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODY2NDU5NzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIFBvbGwgRnVuY3Rpb25zIGZvciBPcHRpbWl6YXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCBhcmUgdGhlIGNvcmUgTmV0d29yayBBUEkgKE5BUEkpIHBvbGwgZnVuY3Rpb25zIGluIHRoaXMgU1RNTUFDIGRyaXZlci4gU28sIEkgbmVlZCB0byBmb2N1cyBvbiBrZXkgc3ltYm9scyByZWxhdGVkIHRvIHRoZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSBvcGVyYXRpb25zLiBJdCBsb29rcyBsaWtlIHRoZSBtb3N0IHJlbGV2YW50IG9uZXMgYXJlOiBgc3RtbWFjX3htaXRgLCBgc3RtbWFjX29wZW5gLCBgc3RtbWFjX25hcGlfcG9sbF90eGAsIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YC5cblxuTm93LCBgc3RtbWFjX3htaXRgIGltbWVkaWF0ZWx5IGNhdGNoZXMgbXkgZXllIGFzIGEgcG90ZW50aWFsIGVudHJ5IHBvaW50IGZvciB0cmFuc21pdC4gSG9sZCBvbi4uLiBJIHNlZSB0aGF0IGBzdG1tYWNfdHhfY2xlYW5gIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCwgc28gaXQncyBvYnZpb3VzbHkgaW1wb3J0YW50IGZvciBjbGVhbmluZyB1cCB0aGUgdHJhbnNtaXQgcHJvY2Vzcy4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgaWYgYHN0bW1hY194bWl0YCBpcyBzdGF0aWMuIFllcywgaXQncyBtYXJrZWQgYXMgc3RhdGljLCBidXQgaXQncyBhc3NpZ25lZCB0byBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0J3MgYSBrZXkgZGV0YWlsISBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24gdGhlcmUuXG5cbk15IG5leHQgc3RlcCBpcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSAqbm9uKi1zdGF0aWMgZnVuY3Rpb25zIHRoYXQgSSBjYW4gbGV2ZXJhZ2Ugb3IgdW5kZXJzdGFuZCBiZXR0ZXIuIExldCBtZSBxdWlja2x5IGNoZWNrIHRoZSBgc3RtbWFjX21haW4uY2AgZmlsZSB0byBzZWUgd2hhdCBmdW5jdGlvbnMgYXJlIGJlaW5nIGV4cG9ydGVkLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBkcml2ZXIncyBleHRlcm5hbCBpbnRlcmZhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MDQ1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjI2Ljg2ODc0MzY1NloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ0MTc1MjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRVhQT1JUX1NZTUJPTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MTk1PWludCBzdG1tYWNfc2V0X2Nsa190eF9yYXRlKHZvaWQgKmJzcF9wcml2LCBzdHJ1Y3QgY2xrICpjbGtfdHhfaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjA4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIwOTpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfc2V0X2Nsa190eF9yYXRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjE3PXZvaWQgc3RtbWFjX2F4aV9ibGVuX3RvX21hc2sodTMyICpyZWd2YWwsIGNvbnN0IHUzMiAqYmxlbiwgc2l6ZV90IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ2LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0NzpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfYXhpX2JsZW5fdG9fbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTMyMjI9aW50IHN0bW1hY19nZXRfcGh5X2ludGZfc2VsKHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTMyMzctfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MzIzODpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfZ2V0X3BoeV9pbnRmX3NlbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0zMjM5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03NzkwPXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqc3RtbWFjX3BsYXRfZGF0X2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzgyMy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3ODI0OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wbGF0X2RhdF9hbGxvYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03ODI1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MTM4PWludCBzdG1tYWNfZHZyX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE1NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4MTU1OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19kdnJfcHJvYmUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9ODE2Mz12b2lkIHN0bW1hY19kdnJfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE5Ni19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4MTk3OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19kdnJfcmVtb3ZlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgxOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgyMDY9aW50IHN0bW1hY19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODI1Ny19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4MjU4OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19zdXNwZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgyNTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgzMDI9aW50IHN0bW1hY19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzg4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgzODk6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3Jlc3VtZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MzkwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MzkyPURFRklORV9TSU1QTEVfREVWX1BNX09QUyhzdG1tYWNfc2ltcGxlX3BtX29wcywgc3RtbWFjX3N1c3BlbmQsIHN0bW1hY19yZXN1bWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODM5MzpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfc2ltcGxlX3BtX29wcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzk0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoyNi45MTMxNjg0MjNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI2Nzk2NDc3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXIncyBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBzbyBgc3RtbWFjX2R2cl9wcm9iZWAgaXMgdGhlIGVudHJ5IHBvaW50LCB0aGUgbWFpbiBwcm9iZSBmdW5jdGlvbiwgdGhhdCBtYWtlcyBzZW5zZS4gQnV0IHRoZSBuZXR3b3JrIG9wZXJhdGlvbnMgdGhlbXNlbHZlcywgdGhvc2UgYXJlIGRlY2xhcmVkIGFzIGBzdGF0aWNgLiBUaGF0IGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhdCBtZSBiZWNhdXNlIHRoZSBkb2N1bWVudGF0aW9uIHNwZWNpZmljYWxseSBhZHZpc2VzIGFnYWluc3QgdXNpbmcgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMgd2hlcmUgcG9zc2libGUsIHByZWZlcnJpbmcgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnRzLiBUaGUgcmVhc29uIGlzIHByZXR0eSBjbGVhciDigJMgdGhvc2Ugc3RhdGljIGZ1bmN0aW9ucyBhcmUgb2Z0ZW4gaW5saW5lZCwgYW5kIGRvbid0IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcy5cblxuTm93LCBgc3RtbWFjX3htaXRgIGlzICp0ZWNobmljYWxseSogc3RhdGljLCBidXQgaXQncyBhc3NpZ25lZCB0byBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0IGFsb25lIHRlbGxzIG1lIGl0J3MgKm5vdCogaW5saW5lZCwgYmVjYXVzZSBpdHMgYWRkcmVzcyBpcyBiZWluZyB0YWtlbi4gVGhlIHNhbWUgbG9naWMgbGlrZWx5IGFwcGxpZXMgdG8gYHN0bW1hY19vcGVuYCwgYHN0bW1hY19uYXBpX3BvbGxfdHhgLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAuICBXZSBjYW4gZWFzaWx5IHZlcmlmeSB0aGF0IGJ5IGxpc3RpbmcgdGhlbSwganVzdCB0byBiZSBzdXJlLlxuXG5OZXh0IHN0ZXA6IGxldCdzIHZlcmlmeSB0aGUgS2NvbmZpZyBvcHRpb25zIHRoYXQgYXJlIHJlcXVpcmVkIHRvIGVuYWJsZSB0aGlzLiBUaGUgZHJpdmVyJ3MgYFNUTU1BQ19FVEhgLCBzbyBsZXQncyBjaGVjayB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTAyOCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjozMi4xODExMzcxMzNaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5Mzc5NDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfRVRIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjMyLjIzMDUyMjc5OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzQ4MDkxMTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudCoqXG5cblJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byBpZGVudGlmeSB0aGUgZGVwZW5kZW5jaWVzLiBXZSdyZSBkZWFsaW5nIHdpdGggYSBzeXN0ZW0sIGEgcHJvY2VzcywgYSBwcm9ibGVtIOKAkyB3aGF0ZXZlciBcIml0XCIgaXMg4oCTIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBmb3VuZGF0aW9uYWwgZWxlbWVudHMgaXMgcGFyYW1vdW50LiBXaGF0IGFyZSB0aGUga2V5IHZhcmlhYmxlcz8gVGhlIGNvcmUgaW5wdXRzPyBUaGUgdW5kZXJseWluZyBhc3N1bXB0aW9ucz8gUGlucG9pbnRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIGlzIHRoZSBlc3NlbnRpYWwgZmlyc3Qgc3RlcCB0byBhbnkgZWZmZWN0aXZlIGFuYWx5c2lzLiBXaGVyZSBkbyB3ZSBiZWdpbiB0byB1bnJhdmVsIGNvbXBsZXhpdHk/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNjQ1LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjozNC45Nzg2MTcxMzZaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyOTE3MjM2NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IEhBU19ETUFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjU6XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NjpcXHRkZXBlbmRzIG9uIEVUSFRPT0xfTkVUTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNy1cXHRzZWxlY3QgTUlJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwPWNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBTVE1NQUMgU2VsZnRlc3RzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI6XFx0ZGVwZW5kcyBvbiBJTkVUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMy1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDQ9Y29uZmlnIERXTUFDX0RXQ19RT1NfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQ3LVxcdHNlbGVjdCBNSUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQ4OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Mi1cXHRkZWZhdWx0IEFSQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NjM6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Njk9Y29uZmlnIERXTUFDX0VJQzc3MDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTcwLVxcdHRyaXN0YXRlIFxcXCJTdXBwb3J0IGZvciBFc3dpbiBlaWM3NzAwIGV0aGVybmV0IGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjcxOlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQSBcXHUwMDI2XFx1MDAyNiBBUkNIX0VTV0lOIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz03OD1jb25maWcgRFdNQUNfSU5HRU5JQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04MC1cXHRkZWZhdWx0IE1BQ0hfSU5HRU5JQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODE6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiBIQVNfSU9NRU0gXFx1MDAyNlxcdTAwMjYgKE1BQ0hfSU5HRU5JQyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04Mi1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz05MD1jb25maWcgRFdNQUNfSVBRODA2WFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Mi1cXHRkZWZhdWx0IEFSQ0hfUUNPTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTM6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk0LVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEwNj1jb25maWcgRFdNQUNfTFBDMThYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMDgtXFx0ZGVmYXVsdCBBUkNIX0xQQzE4WFhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEwOTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX0xQQzE4WFggfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTEwLVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTExND1jb25maWcgRFdNQUNfTUVESUFURUtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQyN3h4IEdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNjpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEyMj1jb25maWcgRFdNQUNfTUVTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI0LVxcdGRlZmF1bHQgQVJDSF9NRVNPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTI1OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMSyBcXHUwMDI2XFx1MDAyNiAoQVJDSF9NRVNPTiB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMzM9Y29uZmlnIERXTUFDX05VVk9UT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTM1LVxcdGRlZmF1bHQgQVJDSF9NQTM1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzY6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9NQTM1IHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzNy1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNDU9Y29uZmlnIERXTUFDX1FDT01fRVRIUU9TXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0Ny1cXHRkZWZhdWx0IEFSQ0hfUUNPTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTQ4OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfUUNPTSB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU3LVxcdGRlZmF1bHQgQVJDSF9SRU5FU0FTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNTg6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1OS1cXHRzZWxlY3QgUENTX1JaTjFfTUlJQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNjg9Y29uZmlnIERXTUFDX1JPQ0tDSElQXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3MC1cXHRkZWZhdWx0IEFSQ0hfUk9DS0NISVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE3MTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1JPQ0tDSElQIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Mi1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNzk9Y29uZmlnIERXTUFDX1JaTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTgxLVxcdGRlZmF1bHQgQVJDSF9SWk4xXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODI6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9SWk4xIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4My1cXHRzZWxlY3QgUENTX1JaTjFfTUlJQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTMtXFx0ZGVmYXVsdCBBUkNIX1MzMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTk0OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfUzMyIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwMz1jb25maWcgRFdNQUNfU09DRlBHQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDUtXFx0ZGVmYXVsdCBBUkNIX0lOVEVMX1NPQ0ZQR0FcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA3LVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIxOD1jb25maWcgRFdNQUNfU09QSEdPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTktXFx0dHJpc3RhdGUgXFxcIlNvcGhnbyBkd21hYyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjIwOlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfU09QSEdPIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyMS1cXHRkZWZhdWx0IG0gaWYgQVJDSF9TT1BIR09cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjI5PWNvbmZpZyBEV01BQ19TUEFDRU1JVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjMwLVxcdHRyaXN0YXRlIFxcXCJTcGFjZW1pdCBkd21hYyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjMxOlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfU1BBQ0VNSVQgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjMyLVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0Mi1cXHR0cmlzdGF0ZSBcXFwiU3RhckZpdmUgZHdtYWMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MzpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0NC1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNTM9Y29uZmlnIERXTUFDX1NUSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTUtXFx0ZGVmYXVsdCBBUkNIX1NUSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjU2OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfU1RJIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1Ny1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Ny1cXHRkZWZhdWx0IEFSQ0hfU1RNMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2ODpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiAoQVJDSF9TVE0zMiB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjktXFx0c2VsZWN0IE1GRF9TWVNDT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjc3PWNvbmZpZyBEV01BQ19TVU5YSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzktXFx0ZGVmYXVsdCBBUkNIX1NVTlhJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyODA6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9TVU5YSSB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yODg9Y29uZmlnIERXTUFDX1NVTjhJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5MC1cXHRkZWZhdWx0IEFSQ0hfU1VOWElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5MTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Mi1cXHRzZWxlY3QgTURJT19CVVNfTVVYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMwMD1jb25maWcgRFdNQUNfU1VONTVJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwMi1cXHRkZWZhdWx0IEFSQ0hfU1VOWElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMwMzpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwNC1cXHRzZWxlY3QgTURJT19CVVNfTVVYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMxMj1jb25maWcgRFdNQUNfVEhFQURcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMy1cXHR0cmlzdGF0ZSBcXFwiVC1IRUFEIGR3bWFjIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTQ6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9USEVBRCB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMjI9Y29uZmlnIERXTUFDX0lNWDhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI0LVxcdGRlZmF1bHQgQVJDSF9NWENcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMyNTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX01YQyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjYtXFx0c2VsZWN0IE1GRF9TWVNDT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzUtXFx0dHJpc3RhdGUgXFxcIkludGVsIGR3bWFjIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMzY6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiBDT01NT05fQ0xLXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzctXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNDQ9Y29uZmlnIERXTUFDX0xPT05HU09OMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDYtXFx0ZGVmYXVsdCBNQUNIX0xPT05HU09OMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0NzpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChNQUNIX0xPT05HU09OMzIgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQ4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzU2LVxcdHRyaXN0YXRlIFxcXCJOVklESUEgVGVncmEgTUdCRSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzU3OlxcdGRlcGVuZHMgb24gQVJDSF9URUdSQSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM2ND1jb25maWcgRFdNQUNfVklTQ09OVElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzY2LVxcdGRlZmF1bHQgQVJDSF9WSVNDT05USVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY3OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMSyBcXHUwMDI2XFx1MDAyNiAoQVJDSF9WSVNDT05USSB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzg9Y29uZmlnIERXTUFDX0lOVEVMXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4MC1cXHRkZWZhdWx0IFg4NlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgxOlxcdGRlcGVuZHMgb24gWDg2IFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgyOlxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgzOlxcdGRlcGVuZHMgb24gQUNQSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzg4PWNvbmZpZyBEV01BQ19MT09OR1NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTAtXFx0ZGVmYXVsdCBNQUNIX0xPT05HU09ONjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5MTpcXHRkZXBlbmRzIG9uIChNQUNIX0xPT05HU09ONjQgfHwgQ09NUElMRV9URVNUKSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5MjpcXHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5My1cXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk5LVxcdHRyaXN0YXRlIFxcXCJNb3RvcmNvbW0gUENJIERXTUFDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDA6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwMS1cXHRzZWxlY3QgTU9UT1JDT01NX1BIWVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00MDc9Y29uZmlnIFNUTU1BQ19QQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwOC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBDSSBidXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDEwOlxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDExLVxcdHNlbGVjdCBTVE1NQUNfTElCUENJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjM1LjIwNzc5NzgyWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTUyNzYwNTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU1RNTUFDIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIFNUTU1BQyBkcml2ZXIgY29uZmlndXJhdGlvbi4gVGhlIG1haW4gZm9jdXMgaGVyZSBzZWVtcyB0byBiZSBgU1RNTUFDX0VUSGAuIFRoYXQncyB0aGUgY29yZSwgYnV0IHRoaXMgcGF0Y2ggYWxzbyB0b3VjaGVzIGBhcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpYCwgd2hpY2ggaW1tZWRpYXRlbHkgc3VnZ2VzdHMgaXQncyBiZWluZyB1c2VkIG9uIEludGVsIFNPQ0ZQR0FzLiBTbywgYERXTUFDX1NPQ0ZQR0FgIGNvbWVzIGludG8gcGxheS5cblxuVGhlIGNydWNpYWwgcGFydCBpcyB0aGUgY2hhbmdlIHdpdGhpbiBgc3RtbWFjX21haW4uY2AsIGFuZCB0aGF0J3MgZ292ZXJuZWQgYnkgYFNUTU1BQ19FVEhgLiBOb3csIGBTVE1NQUNfRVRIYCBpdHNlbGYgZGVwZW5kcyBvbiBgSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiBIQVNfRE1BIFx1MDAyNlx1MDAyNiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTCBcdTAwMjZcdTAwMjYgRVRIVE9PTF9ORVRMSU5LYC4gVG8gdGVzdCB0aGlzIHByb3Blcmx5LCBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBkcml2ZXIgbm90IG9ubHkgY29tcGlsZXMgYnV0ICpwcm9iZXMqIGNvcnJlY3RseS5cblxuSW5pdGlhbGx5LCBJIHRob3VnaHQgZW5hYmxpbmcgYFNUTU1BQ19FVEhgIGFuZCBwb3NzaWJseSBgRFdNQUNfU09DRlBHQWAsIGBTVE1NQUNfUENJYCwgb3IgYERXTUFDX0lOVEVMYCB3b3VsZCBiZSBzdWZmaWNpZW50IGZvciBjb21wcmVoZW5zaXZlIHRlc3RpbmcsIGNvdmVyaW5nIHRoZSBjb21waWxhdGlvbiBhbmQgcHJvYmluZyBhc3BlY3QuIEJ1dCB0aGVuIEkgcmVhbGl6ZWQgYFNUTU1BQ19FVEhgIGlzIGVub3VnaCB0byBjb21waWxlIHRoZSBkcml2ZXIgY29yZS4gVGhlIHByb2JlIGlzIHdoYXQgcmVsaWVzIG9uIGEgcGxhdGZvcm0gb3IgUENJIGRyaXZlci5cblxuR2l2ZW4gUENJIGRldmljZXMgYXJlIGVhc2lseSBlbXVsYXRlZCBvciBwcm9iZWQgd2l0aGluIHN5emthbGxlciwgYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAgc2VlbSBsaWtlIGEgZGVjZW50IGNvbWJpbmF0aW9uIGZvciBjb21waWxlLWFuZC1wcm9iZSB0ZXN0aW5nLiBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgYERXTUFDX1NPQ0ZQR0FgIHJlbGllcyBvbiBgQVJDSF9JTlRFTF9TT0NGUEdBIHx8IENPTVBJTEVfVEVTVGAsIHdoaWNoIGlzbid0IGVzc2VudGlhbCBmb3IganVzdCBidWlsZGluZyBhbmQgdGVzdGluZyB0aGUgZHJpdmVyLiBTbywgc3RpY2tpbmcgd2l0aCBgU1RNTUFDX0VUSGAgYW5kIGBTVE1NQUNfUENJYCBzaG91bGQgZG8uXG5cbkEgY3J1Y2lhbCBwb2ludCBub3cgaXMgdGhlIGB0eF9idWZfcXVpcmtgLiBUaGlzIGlzIHNldCB3aXRoaW4gYHN0bW1hY19wbGF0Zm9ybS5jYC4gSXMgdGhhdCBmaWxlIGV2ZW4gYmVpbmcgY29tcGlsZWQ/IEEgcXVpY2sgY2hlY2sgcmV2ZWFscyBgb2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSkgKz0gc3RtbWFjLXBsYXRmb3JtLm9gLiBgU1RNTUFDX1BMQVRGT1JNYCBpcyBzZWxlY3RlZCBieSBhbGwgcGxhdGZvcm0gZHJpdmVycy4gU28sIEkgbmVlZCB0byBlbmFibGUgYFNUTU1BQ19QTEFURk9STWAgb3Igb25lIG9mIHRoZSBwbGF0Zm9ybSBkcml2ZXJzIHRvIGVuc3VyZSBgc3RtbWFjX3BsYXRmb3JtLmNgIGdldHMgaW5jbHVkZWQuXG5cbk15IGZpbmFsIGxpc3QgZm9yIHRlc3Rpbmcgd2lsbCBpbmNsdWRlIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCBgRFdNQUNfU09DRlBHQWAuIEFuZCwgeWVzLCBgU1RNTUFDX1BMQVRGT1JNYCBpcyBhIGNvbmZpZyBvcHRpb24gaW4gaXRzIG93biByaWdodC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY0NjgsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjY6NDUuMzYwNTYxMjI2WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTE5NjY5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1RNTUFDX1BMQVRGT1JNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMD1jb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5OmNvbmZpZyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwLVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUGxhdGZvcm0gYnVzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjQ1LjQyNTc2ODYzMVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDEyMDg2ODI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEN1cnJlbnQgQXNzZXNzbWVudCBvZiB0aGUgU1RNTUFDIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGBTVE1NQUNfUExBVEZPUk1gIGlzIGluZGVlZCBhIHRyaXN0YXRlIG9wdGlvbi4gVGhhdCBtZWFucywgdG8gY29ycmVjdGx5IGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG15IGBFbmFibGVDb25maWdzYCBsaXN0IG5lZWRzIHRvIGluY2x1ZGU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCwgZ2l2ZW4gdGhlIERldmljZSBUcmVlIGNoYW5nZSwgYERXTUFDX1NPQ0ZQR0FgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZC5cblxuQnV0IGhhbmcgb27igKYgdGhpcyBuZXcgXCJwYWdlIHBvb2xcIiBmZWF0dXJl4oCmIGl0IGxvb2tzIGxpa2UgaXQncyBkZXBlbmRlbnQgb24gYFBBR0VfUE9PTGAuIE5vdywgdGhlIGNydWNpYWwgcXVlc3Rpb246IGlzIGBQQUdFX1BPT0xgIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgc29tZXdoZXJlLCBvciBkbyBJIG5lZWQgdG8gZXhwbGljaXRseSBlbmFibGUgaXQ/IExldCdzIHF1aWNrbHkgdmVyaWZ5IGluIGBuZXQvY29yZS9LY29uZmlnYCBvciBhIHNpbWlsYXIgY29uZmlndXJhdGlvbiBmaWxlLCB0aGUgdXN1YWwgbG9jYXRpb24gZm9yIHRoZXNlIGRlcGVuZGVuY2llcy4gSSdtIGZhaXJseSBjZXJ0YWluIHRoZSBzdGFuZGFyZCBiZWhhdmlvciBpcyBmb3IgYFBBR0VfUE9PTGAgdG8gYmUgKnNlbGVjdGVkKiBieSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBpdC5cblxuTm93LCBhIGNyaXRpY2FsIHBvaW50LCBhbmQgSSBuZWVkIHRvIGJlIGNlcnRhaW4gYWJvdXQgdGhpczogZG9lcyBgU1RNTUFDX0VUSGAgaXRzZWxmIHNlbGVjdCBgUEFHRV9QT09MYD8gVGhhdCdzIHRoZSBrZXkuIElmIGl0IGRvZXMsIHRoZW4gSSdtIGdvb2QgdG8gZ28uIElmIG5vdCwgSSdsbCBuZWVkIHRvIGV4cGxpY2l0bHkgYWRkIGBQQUdFX1BPT0xgIHRvIHRoZSBjb25maWd1cmF0aW9uLCBvciB0cmFjZSB0aGUgZGVwZW5kZW5jeSBjaGFpbiB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGhhcHBlbi4gVGhpcyB3aWxsIGRldGVybWluZSBpZiB0aGUgY29uZmlndXJhdGlvbiBpcyBjb21wbGV0ZSBhbmQgY29ycmVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc2OTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjY6NTAuNDM3ODU4MTY4WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjA0MTUxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQUdFX1BPT0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI9Y29uZmlnIFNUTU1BQ19FVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOC1cXHRzZWxlY3QgUENTX1hQQ1NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjk6XFx0c2VsZWN0IFBBR0VfUE9PTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTAtXFx0c2VsZWN0IFBIWUxJTktcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjY6NTAuNDgzOTA4OTQ1WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0OTczMzQ4NzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBzdG1tYWMgRHJpdmVyIGZvciBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgSSd2ZSBnb3QgdGhpcy4gRmlyc3QsIHRoZSBwYXRjaCBzZWxlY3RzIGBQQUdFX1BPT0xgLCB0aGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBMZXQncyBkaWcgaW4gYW5kIHJldmlldyB0aG9zZSBmb2N1cyBzeW1ib2xzOiBgc3RtbWFjX3htaXRgLCBgc3RtbWFjX29wZW5gLCBgc3RtbWFjX25hcGlfcG9sbF90eGAsIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YC5cblxuTm93LCB3YWl0IGEgbWludXRlLCBgc3RtbWFjX3htaXRgIGlzIHN0YXRpYywgd2hpY2ggaXMgdXN1YWxseSBhIHJlZCBmbGFnLiBCdXQsIGhhbmcgb24sIGl0J3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLCB3aGljaCBtZWFucyBpdCBpc24ndCBpbmxpbmVkISBUaGF0J3MgcGVyZmVjdDsgaXQgaGFzIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MgYW5kLCB0aGVyZWZvcmUsIGlzIGEgdmFsaWQgZW50cnkgcG9pbnQuIFRoZSBzYW1lIGdvZXMgZm9yIGBzdG1tYWNfb3BlbmAgKGFzc2lnbmVkIHRvIGBuZG9fb3BlbmApLCBgc3RtbWFjX25hcGlfcG9sbF90eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZF90eGApLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZGApLiBFeGNlbGxlbnQuIExldCdzIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBuYW1lcyBhZ2FpbiBpbiBgc3RtbWFjX21haW4uY2A6IGBzdG1tYWNfeG1pdGAsIGBzdG1tYWNfb3BlbmAsIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCwgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgIOKAkyBhbGwgY29ycmVjdC5cblxuQWhhLCBhbmQgYHN0bW1hY19vcGVuYCBjYWxscyBgX19zdG1tYWNfb3BlbmAsIHdoaWNoIGluIHR1cm4gY2FsbHMgYGFsbG9jX2RtYV9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIHRoZW4gY2FsbHMgYGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIGV2ZW50dWFsbHkgY2FsbHMgYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYC4gTmljZSwgdGhhdCBjb25maXJtcyB0aGF0IGBzdG1tYWNfb3BlbmAgaXMgYSBzb2xpZCBlbnRyeSBwb2ludCwgYW5kIHRoYXQgY292ZXJzIHRoZSBhbGxvY2F0aW9uLiBBbmQgYHN0bW1hY194bWl0YCBpcyB0aGUgdHJhbnNtaXQgZW50cnkgcG9pbnQuIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAgZXZlbnR1YWxseSBjYWxsIGBzdG1tYWNfdHhfY2xlYW5gLCB3aGljaCBjYWxscyBgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyYC4gU28gdGhhdCBjb25maXJtcyB0aG9zZSBjb3ZlciB0aGUgY2xlYW51cCBhbmQgdHJhbnNtaXQgcGF0aHMuIFRoaXMgY292ZXJzIGFsbCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocywgc28gd2UgaGF2ZSBnb29kIGNvdmVyYWdlLlxuXG5Ob3csIGNhbiB3ZSBhY3R1YWxseSBoaXQgdGhpcyBpbiBRRU1VPyBIbW0sIFFFTVUgZG9lc24ndCBlbXVsYXRlIHRoZSBzcGVjaWZpYyBgc29jZnBnYV9hZ2lsZXg1YCBkZXZpY2UgZGlyZWN0bHksIGJ1dCBpdCBkb2VzIGhhdmUgZW11bGF0aW9uIGZvciBgbnBjbTd4eGAgKHdoaWNoIGhhcyBhbiBFTUMpLCBhbmQgYGFsbHdpbm5lci1zdW44aS1lbWFjYCwgYW5kIGBody9uZXQvZGVzaWdud2FyZS5jYCwgd2hpY2ggaXMgdGhlIERlc2lnbldhcmUgTUFDIChEV01BQykuIEFuZCB0aGUgYHN0bW1hY2AgZHJpdmVyICppcyogdGhlIGRyaXZlciBmb3IgRGVzaWduV2FyZSBNQUMuIFNvLCB5ZXMsIHdlIGNhbiByZWFjaCBpdCB2aWEgdGhlIGBkZXNpZ253YXJlYCBuZXR3b3JrIGRldmljZSBlbXVsYXRpb24uIEFuZCBldmVuIGJldHRlciwgc3l6a2FsbGVyIGNhbiBmdXp6IFBDSSBkZXZpY2VzLCBhbmQgYHN0bW1hY2AgaGFzIGEgUENJIGJpbmRpbmcgKGBTVE1NQUNfUENJYCkuIEV2ZW4gdGhvdWdoIHRoaXMgcXVpcmsgaXMgZW5hYmxlZCB2aWEgdGhlIERULCB0aGUgcGFnZSBwb29sIGFsbG9jYXRpb24gaW4gYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBpcyB1bmNvbmRpdGlvbmFsIGFuZCBhZmZlY3RzIGFsbCBgc3RtbWFjYCBkZXZpY2VzLCBpbmNsdWRpbmcgUENJIG9uZXMuIFNvLCB0aGUgY29yZSBjaGFuZ2VzIGFyZSBhYnNvbHV0ZWx5IHJlYWNoYWJsZSBhbmQgZnVuY3Rpb25hbC5cblxuT2theSwgbGV0IG1lIHN1bW1hcml6ZSBteSBmaW5kaW5nczpcblxuKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKipcblxuKiAgICoqRm9jdXNTeW1ib2xzOioqXG5cbiAgICAqICAgYHN0bW1hY194bWl0YFxuICAgICogICBgc3RtbWFjX29wZW5gXG4gICAgKiAgIGBzdG1tYWNfbmFwaV9wb2xsX3R4YFxuICAgICogICBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YFxuXG4qICAgKipFbmFibGVDb25maWdzOioqXG5cbiAgICAqICAgYFNUTU1BQ19FVEhgXG4gICAgKiAgIGBTVE1NQUNfUExBVEZPUk1gXG4gICAgKiAgIGBEV01BQ19TT0NGUEdBYFxuICAgICogICBgU1RNTUFDX1BDSWBcblxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBgc3RtbWFjYCBkcml2ZXIgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgKS4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoYHN0bW1hY194bWl0YCkgYW5kIGNsZWFudXAgcGF0aCAoYHN0bW1hY190eF9jbGVhbmApIHRvIHVzZSB0aGVzZSBwYWdlIHBvb2xzIHdoZW4gYSBuZXcgZGV2aWNlIHRyZWUgcXVpcmsgKGBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlya2ApIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXG5cbkp1c3QgbmVlZCB0byB2ZXJpZnkgdGhvc2UgY29uZmlnIG5hbWVzIG9uZSBtb3JlIHRpbWU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGBEV01BQ19TT0NGUEdBYCwgYW5kIGBTVE1NQUNfUENJYC4gWWVwLCBhbGwgY29ycmVjdC4gVGhhdCdzIGEgZ3JlZW4gbGlnaHRcblxuIiwiSW5wdXRUb2tlbnMiOjM4MjcwLCJPdXRwdXRUb2tlbnMiOjIyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNzowNS40NTcyNjA0NTJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzQ5NzU2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowbb9h9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 07:07:54 +0000 UTC FinishedAt: 2026-08-03 07:27:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "415606a7be939835db9b0d6b711887586646346d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PLATFORM", "DWMAC_SOCFPGA", "STMMAC_PCI" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "linux-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next", "commit_hash": "415606a7be939835db9b0d6b711887586646346d", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "STMMAC_ETH", "STMMAC_PLATFORM", "DWMAC_SOCFPGA", "STMMAC_PCI" ], "series_id": "2bf278d7-4dcf-416f-9db3-2915443d2851" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "stmmac_xmit", "stmmac_open", "stmmac_napi_poll_tx", "stmmac_napi_poll_rxtx" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BMQVRGT1JNJiMzNDssCiAgICAmIzM0O0RXTUFDX1NPQ0ZQR0EmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY194bWl0JiMzNDssCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19uYXBpX3BvbGxfdHgmIzM0OywKICAgICYjMzQ7c3RtbWFjX25hcGlfcG9sbF9yeHR4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBieSB1bmNvbmRpdGlvbmFsbHkgYWxsb2NhdGluZyBhIHBhZ2UgcG9vbCBmb3IgZXZlcnkgVFggcXVldWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBJdCBhbHNvIG1vZGlmaWVzIHRoZSB0cmFuc21pdCBwYXRoIChzdG1tYWNfeG1pdCkgYW5kIGNsZWFudXAgcGF0aCAoc3RtbWFjX3R4X2NsZWFuKSB0byB1c2UgdGhlc2UgcGFnZSBwb29scyB3aGVuIGEgbmV3IGRldmljZSB0cmVlIHF1aXJrIChzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaykgaXMgZW5hYmxlZC4gVGhlIGNvcmUgZHJpdmVyIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgbmV0d29yayBvcGVyYXRpb25zIChvcGVuLCB4bWl0LCBOQVBJIHBvbGwpIGFuZCBhZmZlY3QgbWVtb3J5IGFsbG9jYXRpb24gZm9yIGFsbCBkZXZpY2VzIHVzaW5nIHRoaXMgZHJpdmVyLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDRjMzU2ZmVhZjM5NWY5ZTNmYzg1NjJjMTQ3ODBhMWRlYWY3MDA3M2JcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDA3OjI1OjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcbmluZGV4IDI0NDkzMTFjNmQyOGUuLjczMDQ1NTExNDQ2ZmQgMTAwNjQ0XG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbFxuJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcbkBAIC01NDUsNiAmIzQzOzU0NSwxNCBAQCBwcm9wZXJ0aWVzOlxuICAgICAgIEVuYWJsZXMgdGhlIFRTTyBmZWF0dXJlIG90aGVyd2lzZSBpdCB3aWxsIGJlIG1hbmFnZWQgYnkgTUFDIEhXIGNhcGFiaWxpdHlcbiAgICAgICByZWdpc3Rlci5cbiBcbiYjNDM7ICBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyazpcbiYjNDM7ICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL2ZsYWdcbiYjNDM7ICAgIGRlc2NyaXB0aW9uOlxuJiM0MzsgICAgICBFbmFibGUgdXNlIG9mIHBhZ2UgcG9vbCBidWZmZXJzIGluc3RlYWQgb2Ygc3RyZWFtaW5nIGJ1ZmZlcnMgZm9yIHRyYW5zbWl0LlxuJiM0MzsgICAgICBUaGlzIGF2b2lkcyBJT01NVSBpbnZhbGlkYXRlIHdhaXQgdGltZSBvbiBwbGF0Zm9ybXMgd2hlcmUgdGhhdCBjb3N0IGlzXG4mIzQzOyAgICAgIGhpZ2gsIHdpdGggdGhlIHRyYWRlLW9mZiBvZiBjb3B5aW5nIGRhdGEgZnJvbSB0aGUgc2tiIGludG8gZG1hLW1hcHBlZFxuJiM0MzsgICAgICBwYWdlIHBvb2wgYnVmZmVycy5cbiYjNDM7XG4gICBtZGlvOlxuICAgICAkcmVmOiBtZGlvLnlhbWwjXG4gICAgIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2VcbmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaVxuaW5kZXggZjU0NzY3ZDE1MjZlMS4uNGNlNGZhMDkxMzg1MiAxMDA2NDRcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcbkBAIC02MDUsNiAmIzQzOzYwNSw3IEBAIGdtYWMwOiBldGhlcm5ldEAxMDgxMDAwMCB7XG4gXHRcdFx0c25wcyxtdGwtdHgtY29uZmlnID0gXHUwMDNjXHUwMDI2bXRsX3R4X2VtYWMwX3NldHVwXHUwMDNlO1xuIFx0XHRcdHNucHMscGJsID0gXHUwMDNjMzJcdTAwM2U7XG4gXHRcdFx0c25wcyx0c287XG4mIzQzO1x0XHRcdHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrO1xuIFx0XHRcdGFsdHIsc3lzbWdyLXN5c2NvbiA9IFx1MDAzY1x1MDAyNnN5c21nciAweDQ0IDBcdTAwM2U7XG4gXHRcdFx0c25wcyxjbGstY3NyID0gXHUwMDNjMFx1MDAzZTtcbiBcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZzbW11IDFcdTAwM2U7XG5AQCAtNzUxLDYgJiM0Mzs3NTIsNyBAQCBnbWFjMTogZXRoZXJuZXRAMTA4MjAwMDAge1xuIFx0XHRcdHNucHMsbXRsLXR4LWNvbmZpZyA9IFx1MDAzY1x1MDAyNm10bF90eF9lbWFjMV9zZXR1cFx1MDAzZTtcbiBcdFx0XHRzbnBzLHBibCA9IFx1MDAzYzMyXHUwMDNlO1xuIFx0XHRcdHNucHMsdHNvO1xuJiM0MztcdFx0XHRzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaztcbiBcdFx0XHRhbHRyLHN5c21nci1zeXNjb24gPSBcdTAwM2NcdTAwMjZzeXNtZ3IgMHg0OCAwXHUwMDNlO1xuIFx0XHRcdHNucHMsY2xrLWNzciA9IFx1MDAzYzBcdTAwM2U7XG4gXHRcdFx0aW9tbXVzID0gXHUwMDNjXHUwMDI2c21tdSAyXHUwMDNlO1xuQEAgLTg5Nyw2ICYjNDM7ODk5LDcgQEAgZ21hYzI6IGV0aGVybmV0QDEwODMwMDAwIHtcbiBcdFx0XHRzbnBzLG10bC10eC1jb25maWcgPSBcdTAwM2NcdTAwMjZtdGxfdHhfZW1hYzJfc2V0dXBcdTAwM2U7XG4gXHRcdFx0c25wcyxwYmwgPSBcdTAwM2MzMlx1MDAzZTtcbiBcdFx0XHRzbnBzLHRzbztcbiYjNDM7XHRcdFx0c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms7XG4gXHRcdFx0YWx0cixzeXNtZ3Itc3lzY29uID0gXHUwMDNjXHUwMDI2c3lzbWdyIDB4NGMgMFx1MDAzZTtcbiBcdFx0XHRzbnBzLGNsay1jc3IgPSBcdTAwM2MwXHUwMDNlO1xuIFx0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNnNtbXUgM1x1MDAzZTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oXG5pbmRleCA4YmE4ZjAzZTFjZTAzLi4wOTNjMDUyYjQ5MDgyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oXG5AQCAtNDEsNiAmIzQzOzQxLDcgQEAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMge1xuIFxuIGVudW0gc3RtbWFjX3R4YnVmX3R5cGUge1xuIFx0U1RNTUFDX1RYQlVGX1RfU0tCLFxuJiM0MztcdFNUTU1BQ19UWEJVRl9UX0RNQSxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9UWCxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8sXG4gXHRTVE1NQUNfVFhCVUZfVF9YU0tfVFgsXG5AQCAtNDksNiAmIzQzOzUwLDcgQEAgZW51bSBzdG1tYWNfdHhidWZfdHlwZSB7XG4gc3RydWN0IHN0bW1hY190eF9pbmZvIHtcbiBcdHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfY29tcGwgeHNrX21ldGE7XG4gXHRkbWFfYWRkcl90IGJ1ZjtcbiYjNDM7XHRzdHJ1Y3QgcGFnZSAqcGFnZTtcbiBcdHVuc2lnbmVkIGxlbjtcbiBcdGVudW0gc3RtbWFjX3R4YnVmX3R5cGUgYnVmX3R5cGU7XG4gXHRib29sIG1hcF9hc19wYWdlO1xuQEAgLTY1LDYgJiM0Mzs2Nyw3IEBAIHN0cnVjdCBzdG1tYWNfdHhfcXVldWUge1xuIFx0aW50IHRicztcbiBcdHN0cnVjdCBocnRpbWVyIHR4dGltZXI7XG4gXHR1MzIgcXVldWVfaW5kZXg7XG4mIzQzO1x0c3RydWN0IHBhZ2VfcG9vbCAqcGFnZV9wb29sO1xuIFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2X2RhdGE7XG4gXHRzdHJ1Y3QgZG1hX2V4dGVuZGVkX2Rlc2MgKmRtYV9ldHggX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbiBcdHN0cnVjdCBkbWFfZWRlc2MgKmRtYV9lbnR4O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCBlZTQ0YmQ2ZjRkNDhlLi40YWE2YjFkMTUwN2JmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTE3MTIsNyAmIzQzOzE3MTIsMTAgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcbiBcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpIHtcbi1cdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtpXS5tYXBfYXNfcGFnZSlcbiYjNDM7XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKVxuJiM0MztcdFx0XHRwYWdlX3Bvb2xfcmVjeWNsZV9kaXJlY3QodHhfcS1cdTAwM2VwYWdlX3Bvb2wsXG4mIzQzO1x0XHRcdFx0XHRcdCB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ucGFnZSk7XG4mIzQzO1x0XHRlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4gXHRcdFx0ZG1hX3VubWFwX3BhZ2UocHJpdi1cdTAwM2VkZXZpY2UsXG4gXHRcdFx0XHQgICAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZixcbiBcdFx0XHRcdCAgICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubGVuLFxuQEAgLTE3MzUsNyAmIzQzOzE3MzgsOCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9idWZmZXIoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFx0XHR0eF9xLVx1MDAzZXhza19mcmFtZXNfZG9uZSYjNDM7JiM0Mzs7XG4gXG4gXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0gXHUwMDI2XHUwMDI2XG4tXHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuJiM0MztcdCAgICAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxuJiM0MztcdCAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkpIHtcbiBcdFx0ZGV2X2tmcmVlX3NrYl9hbnkodHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0pO1xuIFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZltpXSA9IE5VTEw7XG4gXHR9XG5AQCAtMjIwMSw2ICYjNDM7MjIwNSw4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFxuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKTtcbiBcdGtmcmVlKHR4X3EtXHUwMDNldHhfc2tidWZmKTtcbiYjNDM7XHRpZiAodHhfcS1cdTAwM2VwYWdlX3Bvb2wpXG4mIzQzO1x0XHRwYWdlX3Bvb2xfZGVzdHJveSh0eF9xLVx1MDAzZXBhZ2VfcG9vbCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbkBAIC0yMzM1LDEyICYjNDM7MjM0MSwzMiBAQCBzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbcXVldWVdO1xuJiM0MztcdHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zIHBwX3BhcmFtcyA9IHsgMCB9O1xuJiM0MztcdHVuc2lnbmVkIGludCBudW1fcGFnZXM7XG4gXHRzaXplX3Qgc2l6ZTtcbiBcdHZvaWQgKmFkZHI7XG4mIzQzO1x0aW50IHJldDtcbiBcbiBcdHR4X3EtXHUwMDNlcXVldWVfaW5kZXggPSBxdWV1ZTtcbiBcdHR4X3EtXHUwMDNlcHJpdl9kYXRhID0gcHJpdjtcbiBcbiYjNDM7XHRwcF9wYXJhbXMuZmxhZ3MgPSBQUF9GTEFHX0RNQV9NQVAgfCBQUF9GTEFHX0RNQV9TWU5DX0RFVjtcbiYjNDM7XHRwcF9wYXJhbXMucG9vbF9zaXplID0gZG1hX2NvbmYtXHUwMDNlZG1hX3R4X3NpemU7XG4mIzQzO1x0bnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLVx1MDAzZWRtYV9idWZfc3osIFBBR0VfU0laRSk7XG4mIzQzO1x0cHBfcGFyYW1zLm9yZGVyID0gaWxvZzIobnVtX3BhZ2VzKTtcbiYjNDM7XHRwcF9wYXJhbXMubmlkID0gZGV2X3RvX25vZGUocHJpdi1cdTAwM2VkZXZpY2UpO1xuJiM0MztcdHBwX3BhcmFtcy5kZXYgPSBwcml2LVx1MDAzZWRldmljZTtcbiYjNDM7XHRwcF9wYXJhbXMuZG1hX2RpciA9IERNQV9CSURJUkVDVElPTkFMO1xuJiM0MztcdHBwX3BhcmFtcy5vZmZzZXQgPSAwO1xuJiM0MztcdHBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFO1xuJiM0MztcbiYjNDM7XHR0eF9xLVx1MDAzZXBhZ2VfcG9vbCA9IHBhZ2VfcG9vbF9jcmVhdGUoXHUwMDI2cHBfcGFyYW1zKTtcbiYjNDM7XHRpZiAoSVNfRVJSKHR4X3EtXHUwMDNlcGFnZV9wb29sKSkge1xuJiM0MztcdFx0cmV0ID0gUFRSX0VSUih0eF9xLVx1MDAzZXBhZ2VfcG9vbCk7XG4mIzQzO1x0XHR0eF9xLVx1MDAzZXBhZ2VfcG9vbCA9IE5VTEw7XG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuJiM0MztcdH1cbiYjNDM7XG4gXHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEgPSBremFsbG9jX29ianMoKnR4X3EtXHUwMDNldHhfc2tidWZmX2RtYSxcbiBcdFx0XHRcdFx0ICAgZG1hX2NvbmYtXHUwMDNlZG1hX3R4X3NpemUpO1xuIFx0aWYgKCF0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEpXG5AQCAtMjgzNiw3ICYjNDM7Mjg2Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFx0XHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPKSB7XG4gXHRcdFx0eGRwZiA9IHR4X3EtXHUwMDNleGRwZltlbnRyeV07XG4gXHRcdFx0c2tiID0gTlVMTDtcbi1cdFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuJiM0MztcdFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxuJiM0MztcdFx0XHQgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkge1xuIFx0XHRcdHhkcGYgPSBOVUxMO1xuIFx0XHRcdHNrYiA9IHR4X3EtXHUwMDNldHhfc2tidWZmW2VudHJ5XTtcbiBcdFx0fSBlbHNlIHtcbkBAIC0yODg0LDcgJiM0MzsyOTExLDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFxuIFx0XHRpZiAobGlrZWx5KHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmIFx1MDAyNlx1MDAyNlxuIFx0XHRcdCAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSkge1xuLVx0XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxuJiM0MztcdFx0XHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpXG4mIzQzO1x0XHRcdFx0cGFnZV9wb29sX3JlY3ljbGVfZGlyZWN0KHR4X3EtXHUwMDNlcGFnZV9wb29sLFxuJiM0MztcdFx0XHRcdFx0XHRcdCB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLnBhZ2UpO1xuJiM0MztcdFx0XHRlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxuIFx0XHRcdFx0ZG1hX3VubWFwX3BhZ2UocHJpdi1cdTAwM2VkZXZpY2UsXG4gXHRcdFx0XHRcdCAgICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1ZixcbiBcdFx0XHRcdFx0ICAgICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubGVuLFxuQEAgLTI5MjIsNyAmIzQzOzI5NTIsOCBAQCBzdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcbiBcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWFNLX1RYKVxuIFx0XHRcdHR4X3EtXHUwMDNleHNrX2ZyYW1lc19kb25lJiM0MzsmIzQzOztcbiBcbi1cdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCKSB7XG4mIzQzO1x0XHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IgfHxcbiYjNDM7XHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkge1xuIFx0XHRcdGlmIChsaWtlbHkoc2tiKSkge1xuIFx0XHRcdFx0cGt0c19jb21wbCYjNDM7JiM0Mzs7XG4gXHRcdFx0XHRieXRlc19jb21wbCAmIzQzOz0gc2tiLVx1MDAzZWxlbjtcbkBAIC00NzQyLDEyICYjNDM7NDc3MywxNCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdGJvb2wgZW5oX2Rlc2MsIGhhc192bGFuLCBzZXRfaWMsIGlzX2p1bWJvID0gZmFsc2U7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuIFx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbiYjNDM7XHRnZnBfdCBnZnAgPSBHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOO1xuIFx0dTMyIHF1ZXVlID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYik7XG4gXHRpbnQgbmZyYWdzID0gc2tiX3NoaW5mbyhza2IpLVx1MDAzZW5yX2ZyYWdzO1xuIFx0dW5zaWduZWQgaW50IGZpcnN0X2VudHJ5LCB0eF9wYWNrZXRzO1xuIFx0c3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0cztcbiBcdHN0cnVjdCBkbWFfZGVzYyAqZGVzYywgKmZpcnN0X2Rlc2M7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xO1xuJiM0MztcdHN0cnVjdCBwYWdlICp0eF9idWZfcGFnZTtcbiBcdGludCBpLCBjc3VtX2luc2VydGlvbiA9IDA7XG4gXHRpbnQgZW50cnksIGZpcnN0X3R4O1xuIFx0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbkBAIC00ODE0LDEzICYjNDM7NDg0NywzMyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiBcdH0gZWxzZSB7XG4gXHRcdGJvb2wgbGFzdF9zZWdtZW50ID0gKG5mcmFncyA9PSAwKTtcbiBcbi1cdFx0ZG1hX2FkZHIgPSBkbWFfbWFwX3NpbmdsZShwcml2LVx1MDAzZWRldmljZSwgc2tiLVx1MDAzZWRhdGEsXG4tXHRcdFx0XHRcdCAgbm9wYWdlZF9sZW4sIERNQV9UT19ERVZJQ0UpO1xuLVx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyKSlcbi1cdFx0XHRnb3RvIGRtYV9tYXBfZXJyO1xuJiM0MztcdFx0aWYgKCEobGFzdF9zZWdtZW50IFx1MDAyNlx1MDAyNiBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfYnVmX3F1aXJrKSkge1xuJiM0MztcdFx0XHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXHUwMDNlZGV2aWNlLCBza2ItXHUwMDNlZGF0YSxcbiYjNDM7XHRcdFx0XHRcdFx0ICBub3BhZ2VkX2xlbiwgRE1BX1RPX0RFVklDRSk7XG4mIzQzO1x0XHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihwcml2LVx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxuJiM0MztcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4gXG4tXHRcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXG4tXHRcdFx0XHRcdCAgICBub3BhZ2VkX2xlbiwgZmFsc2UpO1xuJiM0MztcdFx0XHRzdG1tYWNfc2V0X3R4X3NrYl9kbWFfZW50cnkodHhfcSwgZmlyc3RfZW50cnksIGRtYV9hZGRyLFxuJiM0MztcdFx0XHRcdFx0XHQgICAgbm9wYWdlZF9sZW4sIGZhbHNlKTtcbiYjNDM7XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdHR4X2J1Zl9wYWdlID0gcGFnZV9wb29sX2FsbG9jX3BhZ2VzKHR4X3EtXHUwMDNlcGFnZV9wb29sLCBnZnApO1xuJiM0MztcdFx0XHRpZiAoIXR4X2J1Zl9wYWdlKVxuJiM0MztcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4mIzQzO1xuJiM0MztcdFx0XHRkbWFfYWRkciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2FkZHIodHhfYnVmX3BhZ2UpO1xuJiM0MztcdFx0XHRzdG1tYWNfc2V0X3R4X2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSxcbiYjNDM7XHRcdFx0XHRcdFx0U1RNTUFDX1RYQlVGX1RfRE1BLCBkbWFfYWRkcixcbiYjNDM7XHRcdFx0XHRcdFx0bm9wYWdlZF9sZW4sIGZhbHNlKTtcbiYjNDM7XHRcdFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ZpcnN0X2VudHJ5XS5wYWdlID0gdHhfYnVmX3BhZ2U7XG4mIzQzO1xuJiM0MztcdFx0XHRkbWFfc3luY19zaW5nbGVfZm9yX2NwdShwcml2LVx1MDAzZWRldmljZSwgZG1hX2FkZHIsXG4mIzQzO1x0XHRcdFx0XHRcdG5vcGFnZWRfbGVuLCBETUFfQklESVJFQ1RJT05BTCk7XG4mIzQzO1x0XHRcdHNrYl9jb3B5X2Zyb21fbGluZWFyX2RhdGEoc2tiLCBwYWdlX2FkZHJlc3ModHhfYnVmX3BhZ2UpLFxuJiM0MztcdFx0XHRcdFx0XHQgIG5vcGFnZWRfbGVuKTtcbiYjNDM7XHRcdFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxuJiM0MztcdFx0XHRcdFx0XHQgICBub3BhZ2VkX2xlbixcbiYjNDM7XHRcdFx0XHRcdFx0ICAgRE1BX0JJRElSRUNUSU9OQUwpO1xuJiM0MztcdFx0fVxuIFxuIFx0XHRzdG1tYWNfc2V0X2Rlc2NfYWRkcihwcml2LCBmaXJzdF9kZXNjLCBkbWFfYWRkcik7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuaW5kZXggZGM1Zjk1MWEzMTFkNC4uMGY4ZDJmYzYxY2U0OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuQEAgLTU3NSw2ICYjNDM7NTc1LDggQEAgc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuIFxuIFx0b2ZfcHJvcGVydHlfcmVhZF91MzIobnAsIFwmIzM0O3NucHMscHMtc3BlZWRcJiMzNDssIFx1MDAyNnBsYXQtXHUwMDNlbWFjX3BvcnRfc2VsX3NwZWVkKTtcbiBcbiYjNDM7XHRwbGF0LVx1MDAzZXR4X2J1Zl9xdWlyayA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgXCYjMzQ7c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmtcJiMzNDspO1xuJiM0MztcbiBcdHBsYXQtXHUwMDNlYXhpID0gc3RtbWFjX2F4aV9zZXR1cChwZGV2KTtcbiBcbiBcdHJjID0gc3RtbWFjX210bF9zZXR1cChwZGV2LCBwbGF0KTtcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oIGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxuaW5kZXggNDQzMGI5NjdhYmRlYi4uZDRjOWQ3N2E2ZjgxYSAxMDA2NDRcbi0tLSBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbGludXgvc3RtbWFjLmhcbkBAIC0yNjgsNiAmIzQzOzI2OCw3IEBAIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSB7XG4gXHR1OCB0eF9xdWV1ZXNfdG9fdXNlO1xuIFx0dTggcnhfc2NoZWRfYWxnb3JpdGhtO1xuIFx0dTggdHhfc2NoZWRfYWxnb3JpdGhtO1xuJiM0MztcdGJvb2wgdHhfYnVmX3F1aXJrO1xuIFx0c3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdO1xuIFx0c3RydWN0IHN0bW1hY190eHFfY2ZnIHR4X3F1ZXVlc19jZmdbTVRMX01BWF9UWF9RVUVVRVNdO1xuIFx0dm9pZCAoKmdldF9pbnRlcmZhY2VzKShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHZvaWQgKmJzcF9wcml2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtTVE1NQUNfRVRIJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QTEFURk9STSYjMzQ7LAogICAgJiMzNDtEV01BQ19TT0NGUEdBJiMzNDssCiAgICAmIzM0O1NUTU1BQ19QQ0kmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzdG1tYWNfeG1pdCYjMzQ7LAogICAgJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICAgJiMzNDtzdG1tYWNfbmFwaV9wb2xsX3R4JiMzNDssCiAgICAmIzM0O3N0bW1hY19uYXBpX3BvbGxfcnh0eCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0YzM1NmZlYWYzOTVmOWUzZmM4NTYyYzE0NzgwYTFkZWFmNzAwNzNiCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMyAwNzoyNTozNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKaW5kZXggMjQ0OTMxMWM2ZDI4ZS4uNzMwNDU1MTE0NDZmZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKJiM0MzsmIzQzOyYjNDM7IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwKQEAgLTU0NSw2ICYjNDM7NTQ1LDE0IEBAIHByb3BlcnRpZXM6CiAgICAgICBFbmFibGVzIHRoZSBUU08gZmVhdHVyZSBvdGhlcndpc2UgaXQgd2lsbCBiZSBtYW5hZ2VkIGJ5IE1BQyBIVyBjYXBhYmlsaXR5CiAgICAgICByZWdpc3Rlci4KIAomIzQzOyAgc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms6CiYjNDM7ICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL2ZsYWcKJiM0MzsgICAgZGVzY3JpcHRpb246CiYjNDM7ICAgICAgRW5hYmxlIHVzZSBvZiBwYWdlIHBvb2wgYnVmZmVycyBpbnN0ZWFkIG9mIHN0cmVhbWluZyBidWZmZXJzIGZvciB0cmFuc21pdC4KJiM0MzsgICAgICBUaGlzIGF2b2lkcyBJT01NVSBpbnZhbGlkYXRlIHdhaXQgdGltZSBvbiBwbGF0Zm9ybXMgd2hlcmUgdGhhdCBjb3N0IGlzCiYjNDM7ICAgICAgaGlnaCwgd2l0aCB0aGUgdHJhZGUtb2ZmIG9mIGNvcHlpbmcgZGF0YSBmcm9tIHRoZSBza2IgaW50byBkbWEtbWFwcGVkCiYjNDM7ICAgICAgcGFnZSBwb29sIGJ1ZmZlcnMuCiYjNDM7CiAgIG1kaW86CiAgICAgJHJlZjogbWRpby55YW1sIwogICAgIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpCmluZGV4IGY1NDc2N2QxNTI2ZTEuLjRjZTRmYTA5MTM4NTIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2kKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaQpAQCAtNjA1LDYgJiM0Mzs2MDUsNyBAQCBnbWFjMDogZXRoZXJuZXRAMTA4MTAwMDAgewogCQkJc25wcyxtdGwtdHgtY29uZmlnID0gJmx0OyZhbXA7bXRsX3R4X2VtYWMwX3NldHVwJmd0OzsKIAkJCXNucHMscGJsID0gJmx0OzMyJmd0OzsKIAkJCXNucHMsdHNvOwomIzQzOwkJCXNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrOwogCQkJYWx0cixzeXNtZ3Itc3lzY29uID0gJmx0OyZhbXA7c3lzbWdyIDB4NDQgMCZndDs7CiAJCQlzbnBzLGNsay1jc3IgPSAmbHQ7MCZndDs7CiAJCQlpb21tdXMgPSAmbHQ7JmFtcDtzbW11IDEmZ3Q7OwpAQCAtNzUxLDYgJiM0Mzs3NTIsNyBAQCBnbWFjMTogZXRoZXJuZXRAMTA4MjAwMDAgewogCQkJc25wcyxtdGwtdHgtY29uZmlnID0gJmx0OyZhbXA7bXRsX3R4X2VtYWMxX3NldHVwJmd0OzsKIAkJCXNucHMscGJsID0gJmx0OzMyJmd0OzsKIAkJCXNucHMsdHNvOwomIzQzOwkJCXNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrOwogCQkJYWx0cixzeXNtZ3Itc3lzY29uID0gJmx0OyZhbXA7c3lzbWdyIDB4NDggMCZndDs7CiAJCQlzbnBzLGNsay1jc3IgPSAmbHQ7MCZndDs7CiAJCQlpb21tdXMgPSAmbHQ7JmFtcDtzbW11IDImZ3Q7OwpAQCAtODk3LDYgJiM0Mzs4OTksNyBAQCBnbWFjMjogZXRoZXJuZXRAMTA4MzAwMDAgewogCQkJc25wcyxtdGwtdHgtY29uZmlnID0gJmx0OyZhbXA7bXRsX3R4X2VtYWMyX3NldHVwJmd0OzsKIAkJCXNucHMscGJsID0gJmx0OzMyJmd0OzsKIAkJCXNucHMsdHNvOwomIzQzOwkJCXNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrOwogCQkJYWx0cixzeXNtZ3Itc3lzY29uID0gJmx0OyZhbXA7c3lzbWdyIDB4NGMgMCZndDs7CiAJCQlzbnBzLGNsay1jc3IgPSAmbHQ7MCZndDs7CiAJCQlpb21tdXMgPSAmbHQ7JmFtcDtzbW11IDMmZ3Q7OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaAppbmRleCA4YmE4ZjAzZTFjZTAzLi4wOTNjMDUyYjQ5MDgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaApAQCAtNDEsNiAmIzQzOzQxLDcgQEAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgewogCiBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHsKIAlTVE1NQUNfVFhCVUZfVF9TS0IsCiYjNDM7CVNUTU1BQ19UWEJVRl9UX0RNQSwKIAlTVE1NQUNfVFhCVUZfVF9YRFBfVFgsCiAJU1RNTUFDX1RYQlVGX1RfWERQX05ETywKIAlTVE1NQUNfVFhCVUZfVF9YU0tfVFgsCkBAIC00OSw2ICYjNDM7NTAsNyBAQCBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHsKIHN0cnVjdCBzdG1tYWNfdHhfaW5mbyB7CiAJc3RydWN0IHhza190eF9tZXRhZGF0YV9jb21wbCB4c2tfbWV0YTsKIAlkbWFfYWRkcl90IGJ1ZjsKJiM0MzsJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdW5zaWduZWQgbGVuOwogCWVudW0gc3RtbWFjX3R4YnVmX3R5cGUgYnVmX3R5cGU7CiAJYm9vbCBtYXBfYXNfcGFnZTsKQEAgLTY1LDYgJiM0Mzs2Nyw3IEBAIHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgewogCWludCB0YnM7CiAJc3RydWN0IGhydGltZXIgdHh0aW1lcjsKIAl1MzIgcXVldWVfaW5kZXg7CiYjNDM7CXN0cnVjdCBwYWdlX3Bvb2wgKnBhZ2VfcG9vbDsKIAlzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXZfZGF0YTsKIAlzdHJ1Y3QgZG1hX2V4dGVuZGVkX2Rlc2MgKmRtYV9ldHggX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKIAlzdHJ1Y3QgZG1hX2VkZXNjICpkbWFfZW50eDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IGVlNDRiZDZmNGQ0OGUuLjRhYTZiMWQxNTA3YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwpAQCAtMTcxMiw3ICYjNDM7MTcxMiwxMCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9idWZmZXIoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCiAJaWYgKHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0uYnVmICZhbXA7JmFtcDsKIAkgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpIHsKLQkJaWYgKHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpCiYjNDM7CQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpCiYjNDM7CQkJcGFnZV9wb29sX3JlY3ljbGVfZGlyZWN0KHR4X3EtJmd0O3BhZ2VfcG9vbCwKJiM0MzsJCQkJCQkgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5wYWdlKTsKJiM0MzsJCWVsc2UgaWYgKHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpCiAJCQlkbWFfdW5tYXBfcGFnZShwcml2LSZndDtkZXZpY2UsCiAJCQkJICAgICAgIHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0uYnVmLAogCQkJCSAgICAgICB0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2ldLmxlbiwKQEAgLTE3MzUsNyAmIzQzOzE3MzgsOCBAQCBzdGF0aWMgdm9pZCBzdG1tYWNfZnJlZV90eF9idWZmZXIoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCQl0eF9xLSZndDt4c2tfZnJhbWVzX2RvbmUmIzQzOyYjNDM7OwogCiAJaWYgKHR4X3EtJmd0O3R4X3NrYnVmZltpXSAmYW1wOyZhbXA7Ci0JICAgIHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCKSB7CiYjNDM7CSAgICAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IgfHwKJiM0MzsJICAgICB0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkpIHsKIAkJZGV2X2tmcmVlX3NrYl9hbnkodHhfcS0mZ3Q7dHhfc2tidWZmW2ldKTsKIAkJdHhfcS0mZ3Q7dHhfc2tidWZmW2ldID0gTlVMTDsKIAl9CkBAIC0yMjAxLDYgJiM0MzsyMjA1LDggQEAgc3RhdGljIHZvaWQgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsCiAKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmZfZG1hKTsKIAlrZnJlZSh0eF9xLSZndDt0eF9za2J1ZmYpOwomIzQzOwlpZiAodHhfcS0mZ3Q7cGFnZV9wb29sKQomIzQzOwkJcGFnZV9wb29sX2Rlc3Ryb3kodHhfcS0mZ3Q7cGFnZV9wb29sKTsKIH0KIAogc3RhdGljIHZvaWQgZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LApAQCAtMjMzNSwxMiAmIzQzOzIzNDEsMzIgQEAgc3RhdGljIGludCBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsCiAJCQkJCSB1MzIgcXVldWUpCiB7CiAJc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSA9ICZhbXA7ZG1hX2NvbmYtJmd0O3R4X3F1ZXVlW3F1ZXVlXTsKJiM0MzsJc3RydWN0IHBhZ2VfcG9vbF9wYXJhbXMgcHBfcGFyYW1zID0geyAwIH07CiYjNDM7CXVuc2lnbmVkIGludCBudW1fcGFnZXM7CiAJc2l6ZV90IHNpemU7CiAJdm9pZCAqYWRkcjsKJiM0MzsJaW50IHJldDsKIAogCXR4X3EtJmd0O3F1ZXVlX2luZGV4ID0gcXVldWU7CiAJdHhfcS0mZ3Q7cHJpdl9kYXRhID0gcHJpdjsKIAomIzQzOwlwcF9wYXJhbXMuZmxhZ3MgPSBQUF9GTEFHX0RNQV9NQVAgfCBQUF9GTEFHX0RNQV9TWU5DX0RFVjsKJiM0MzsJcHBfcGFyYW1zLnBvb2xfc2l6ZSA9IGRtYV9jb25mLSZndDtkbWFfdHhfc2l6ZTsKJiM0MzsJbnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLSZndDtkbWFfYnVmX3N6LCBQQUdFX1NJWkUpOwomIzQzOwlwcF9wYXJhbXMub3JkZXIgPSBpbG9nMihudW1fcGFnZXMpOwomIzQzOwlwcF9wYXJhbXMubmlkID0gZGV2X3RvX25vZGUocHJpdi0mZ3Q7ZGV2aWNlKTsKJiM0MzsJcHBfcGFyYW1zLmRldiA9IHByaXYtJmd0O2RldmljZTsKJiM0MzsJcHBfcGFyYW1zLmRtYV9kaXIgPSBETUFfQklESVJFQ1RJT05BTDsKJiM0MzsJcHBfcGFyYW1zLm9mZnNldCA9IDA7CiYjNDM7CXBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFOwomIzQzOwomIzQzOwl0eF9xLSZndDtwYWdlX3Bvb2wgPSBwYWdlX3Bvb2xfY3JlYXRlKCZhbXA7cHBfcGFyYW1zKTsKJiM0MzsJaWYgKElTX0VSUih0eF9xLSZndDtwYWdlX3Bvb2wpKSB7CiYjNDM7CQlyZXQgPSBQVFJfRVJSKHR4X3EtJmd0O3BhZ2VfcG9vbCk7CiYjNDM7CQl0eF9xLSZndDtwYWdlX3Bvb2wgPSBOVUxMOwomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsJfQomIzQzOwogCXR4X3EtJmd0O3R4X3NrYnVmZl9kbWEgPSBremFsbG9jX29ianMoKnR4X3EtJmd0O3R4X3NrYnVmZl9kbWEsCiAJCQkJCSAgIGRtYV9jb25mLSZndDtkbWFfdHhfc2l6ZSk7CiAJaWYgKCF0eF9xLSZndDt0eF9za2J1ZmZfZG1hKQpAQCAtMjgzNiw3ICYjNDM7Mjg2Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLAogCQkgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWERQX05ETykgewogCQkJeGRwZiA9IHR4X3EtJmd0O3hkcGZbZW50cnldOwogCQkJc2tiID0gTlVMTDsKLQkJfSBlbHNlIGlmICh0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHsKJiM0MzsJCX0gZWxzZSBpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8CiYjNDM7CQkJICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSB7CiAJCQl4ZHBmID0gTlVMTDsKIAkJCXNrYiA9IHR4X3EtJmd0O3R4X3NrYnVmZltlbnRyeV07CiAJCX0gZWxzZSB7CkBAIC0yODg0LDcgJiM0MzsyOTExLDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLAogCiAJCWlmIChsaWtlbHkodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmICZhbXA7JmFtcDsKIAkJCSAgIHR4X3EtJmd0O3R4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlICE9IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCkpIHsKLQkJCWlmICh0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2VudHJ5XS5tYXBfYXNfcGFnZSkKJiM0MzsJCQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKQomIzQzOwkJCQlwYWdlX3Bvb2xfcmVjeWNsZV9kaXJlY3QodHhfcS0mZ3Q7cGFnZV9wb29sLAomIzQzOwkJCQkJCQkgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0ucGFnZSk7CiYjNDM7CQkJZWxzZSBpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpCiAJCQkJZG1hX3VubWFwX3BhZ2UocHJpdi0mZ3Q7ZGV2aWNlLAogCQkJCQkgICAgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmLAogCQkJCQkgICAgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0ubGVuLApAQCAtMjkyMiw3ICYjNDM7Mjk1Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLAogCQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWFNLX1RYKQogCQkJdHhfcS0mZ3Q7eHNrX2ZyYW1lc19kb25lJiM0MzsmIzQzOzsKIAotCQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCKSB7CiYjNDM7CQlpZiAodHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8CiYjNDM7CQkgICAgdHhfcS0mZ3Q7dHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSB7CiAJCQlpZiAobGlrZWx5KHNrYikpIHsKIAkJCQlwa3RzX2NvbXBsJiM0MzsmIzQzOzsKIAkJCQlieXRlc19jb21wbCAmIzQzOz0gc2tiLSZndDtsZW47CkBAIC00NzQyLDEyICYjNDM7NDc3MywxNCBAQCBzdGF0aWMgbmV0ZGV2X3R4X3Qgc3RtbWFjX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlib29sIGVuaF9kZXNjLCBoYXNfdmxhbiwgc2V0X2ljLCBpc19qdW1ibyA9IGZhbHNlOwogCXN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CiAJdW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTsKJiM0MzsJZ2ZwX3QgZ2ZwID0gR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTjsKIAl1MzIgcXVldWUgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTsKIAlpbnQgbmZyYWdzID0gc2tiX3NoaW5mbyhza2IpLSZndDtucl9mcmFnczsKIAl1bnNpZ25lZCBpbnQgZmlyc3RfZW50cnksIHR4X3BhY2tldHM7CiAJc3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0czsKIAlzdHJ1Y3QgZG1hX2Rlc2MgKmRlc2MsICpmaXJzdF9kZXNjOwogCXN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3E7CiYjNDM7CXN0cnVjdCBwYWdlICp0eF9idWZfcGFnZTsKIAlpbnQgaSwgY3N1bV9pbnNlcnRpb24gPSAwOwogCWludCBlbnRyeSwgZmlyc3RfdHg7CiAJZG1hX2FkZHJfdCBkbWFfYWRkcjsKQEAgLTQ4MTQsMTMgJiM0Mzs0ODQ3LDMzIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCX0gZWxzZSB7CiAJCWJvb2wgbGFzdF9zZWdtZW50ID0gKG5mcmFncyA9PSAwKTsKIAotCQlkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtJmd0O2RldmljZSwgc2tiLSZndDtkYXRhLAotCQkJCQkgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTsKLQkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKHByaXYtJmd0O2RldmljZSwgZG1hX2FkZHIpKQotCQkJZ290byBkbWFfbWFwX2VycjsKJiM0MzsJCWlmICghKGxhc3Rfc2VnbWVudCAmYW1wOyZhbXA7IHByaXYtJmd0O3BsYXQtJmd0O3R4X2J1Zl9xdWlyaykpIHsKJiM0MzsJCQlkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtJmd0O2RldmljZSwgc2tiLSZndDtkYXRhLAomIzQzOwkJCQkJCSAgbm9wYWdlZF9sZW4sIERNQV9UT19ERVZJQ0UpOwomIzQzOwkJCWlmIChkbWFfbWFwcGluZ19lcnJvcihwcml2LSZndDtkZXZpY2UsIGRtYV9hZGRyKSkKJiM0MzsJCQkJZ290byBkbWFfbWFwX2VycjsKIAotCQlzdG1tYWNfc2V0X3R4X3NrYl9kbWFfZW50cnkodHhfcSwgZmlyc3RfZW50cnksIGRtYV9hZGRyLAotCQkJCQkgICAgbm9wYWdlZF9sZW4sIGZhbHNlKTsKJiM0MzsJCQlzdG1tYWNfc2V0X3R4X3NrYl9kbWFfZW50cnkodHhfcSwgZmlyc3RfZW50cnksIGRtYV9hZGRyLAomIzQzOwkJCQkJCSAgICBub3BhZ2VkX2xlbiwgZmFsc2UpOwomIzQzOwkJfSBlbHNlIHsKJiM0MzsJCQl0eF9idWZfcGFnZSA9IHBhZ2VfcG9vbF9hbGxvY19wYWdlcyh0eF9xLSZndDtwYWdlX3Bvb2wsIGdmcCk7CiYjNDM7CQkJaWYgKCF0eF9idWZfcGFnZSkKJiM0MzsJCQkJZ290byBkbWFfbWFwX2VycjsKJiM0MzsKJiM0MzsJCQlkbWFfYWRkciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2FkZHIodHhfYnVmX3BhZ2UpOwomIzQzOwkJCXN0bW1hY19zZXRfdHhfZG1hX2VudHJ5KHR4X3EsIGZpcnN0X2VudHJ5LAomIzQzOwkJCQkJCVNUTU1BQ19UWEJVRl9UX0RNQSwgZG1hX2FkZHIsCiYjNDM7CQkJCQkJbm9wYWdlZF9sZW4sIGZhbHNlKTsKJiM0MzsJCQl0eF9xLSZndDt0eF9za2J1ZmZfZG1hW2ZpcnN0X2VudHJ5XS5wYWdlID0gdHhfYnVmX3BhZ2U7CiYjNDM7CiYjNDM7CQkJZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocHJpdi0mZ3Q7ZGV2aWNlLCBkbWFfYWRkciwKJiM0MzsJCQkJCQlub3BhZ2VkX2xlbiwgRE1BX0JJRElSRUNUSU9OQUwpOwomIzQzOwkJCXNrYl9jb3B5X2Zyb21fbGluZWFyX2RhdGEoc2tiLCBwYWdlX2FkZHJlc3ModHhfYnVmX3BhZ2UpLAomIzQzOwkJCQkJCSAgbm9wYWdlZF9sZW4pOwomIzQzOwkJCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHByaXYtJmd0O2RldmljZSwgZG1hX2FkZHIsCiYjNDM7CQkJCQkJICAgbm9wYWdlZF9sZW4sCiYjNDM7CQkJCQkJICAgRE1BX0JJRElSRUNUSU9OQUwpOwomIzQzOwkJfQogCiAJCXN0bW1hY19zZXRfZGVzY19hZGRyKHByaXYsIGZpcnN0X2Rlc2MsIGRtYV9hZGRyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYwppbmRleCBkYzVmOTUxYTMxMWQ0Li4wZjhkMmZjNjFjZTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYwpAQCAtNTc1LDYgJiM0Mzs1NzUsOCBAQCBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpCiAKIAlvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgJiMzNDtzbnBzLHBzLXNwZWVkJiMzNDssICZhbXA7cGxhdC0mZ3Q7bWFjX3BvcnRfc2VsX3NwZWVkKTsKIAomIzQzOwlwbGF0LSZndDt0eF9idWZfcXVpcmsgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsICYjMzQ7c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmsmIzM0Oyk7CiYjNDM7CiAJcGxhdC0mZ3Q7YXhpID0gc3RtbWFjX2F4aV9zZXR1cChwZGV2KTsKIAogCXJjID0gc3RtbWFjX210bF9zZXR1cChwZGV2LCBwbGF0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmggYi9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oCmluZGV4IDQ0MzBiOTY3YWJkZWIuLmQ0YzlkNzdhNmY4MWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaApAQCAtMjY4LDYgJiM0MzsyNjgsNyBAQCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgewogCXU4IHR4X3F1ZXVlc190b191c2U7CiAJdTggcnhfc2NoZWRfYWxnb3JpdGhtOwogCXU4IHR4X3NjaGVkX2FsZ29yaXRobTsKJiM0MzsJYm9vbCB0eF9idWZfcXVpcms7CiAJc3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdOwogCXN0cnVjdCBzdG1tYWNfdHhxX2NmZyB0eF9xdWV1ZXNfY2ZnW01UTF9NQVhfVFhfUVVFVUVTXTsKIAl2b2lkICgqZ2V0X2ludGVyZmFjZXMpKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdm9pZCAqYnNwX3ByaXYsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY2MzEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQXNzZXNzaW5nIHRoZSBJbXBhY3Qgb2YgYSBOZXcgc3RtbWFjIEZlYXR1cmU6IEEgUUVNVSBQZXJzcGVjdGl2ZSoqCgpPa2F5LCBzbyB3ZSBoYXZlIHRoaXMgbmV3IHBhdGNoIGFkZGluZyB0aGUgYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYCBmZWF0dXJlIHRvIHRoZSBgc3RtbWFjYCBldGhlcm5ldCBkcml2ZXIuIEVzc2VudGlhbGx5LCBpdCYjMzk7cyBhYm91dCBvcHRpbWl6aW5nIHRyYW5zbWl0IG9wZXJhdGlvbnMgYnkgc3dhcHBpbmcgb3V0IHN0cmVhbWluZyBidWZmZXJzIGZvciBwYWdlIHBvb2wgYnVmZmVycyB3aGVuIHRoZSBxdWlyayBpcyBlbmFibGVkLiBUaGUgZGV2aWNlIHRyZWUgYmluZGluZyBpcyBpbiBwbGFjZS4gVGhlIGNvcmUgZHJpdmVyIGlzIGBzdG1tYWNgIChzdG1pY3JvL3N0bW1hYykgLSB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIHJpZ2h0PwoKTXkgaW1tZWRpYXRlIGNvbmNlcm4gaXMgcmVhY2hhYmlsaXR5LCBlc3BlY2lhbGx5IGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSXMgdGhpcyBldmVuIGdvaW5nIHRvIGJlIHRlc3RhYmxlIGluIHNvbWV0aGluZyBsaWtlIFFFTVU/IEkgbmVlZCB0byBxdWlja2x5IGVzdGFibGlzaCBpZiBgc3RtbWFjYCBpcyB1c2VkIGluIGFueSB2aXJ0dWFsaXplZCBzZXR1cHMsIG9yIGlmIFFFTVUgaGFzIGFueSByZWxldmFudCBlbXVsYXRpb24gc3VwcG9ydC4gV2FpdCBhIG1pbnV0ZSwgd2FzbiYjMzk7dCBTeW5vcHN5cyBEZXNpZ25XYXJlIE1BQyBzdXBwb3J0ZWQgaW4gc29tZSBRRU1VIHBsYXRmb3Jtcz8gSSYjMzk7bSBwcmV0dHkgc3VyZSBJJiMzOTt2ZSBzZWVuIG1lbnRpb25zIG9mIHRoYXQgYmVmb3JlLi4uIHllcywgbGV0JiMzOTtzIGxvb2sgdGhyb3VnaCB0aGUgUUVNVSBkb2N1bWVudGF0aW9uIGFuZCBjb2RlLiBPa2F5LCBsZXQmIzM5O3Mgc2VhcmNoIHRoZSBrZXJuZWwgYW5kIFFFTVUgc291cmNlIGZvciBgc3RtbWFjYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHZpYWJsZSB0aGlzIHBhdGNoIGlzIGluIHRlcm1zIG9mIHRlc3RhYmlsaXR5IHdpdGhpbiBhIGNvbW1vbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNDpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVx0ICBUaGlzIGlzIHRoZSBkcml2ZXIgdXNlZCBvbiBzZXZlcmFsIFNvQ3M6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3Olx0ICBUaGlzIHNlbGVjdHMgdGhlIEFuYXJpb24gU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo4NjpcdCAgVGhpcyBzZWxlY3RzIEluZ2VuaWMgU29DcyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBJbmdlbmljIFNvQ3Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XHQgIFRoaXMgc2VsZWN0cyB0aGUgSVBRODA2eCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk5LVx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMjA6XHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMjI9Y29uZmlnIERXTUFDX01FU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjktXHQgIFRoaXMgc2VsZWN0cyB0aGUgQW1sb2dpYyBNZXNvbiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTWVzb242LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzEtXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDEtXHQgIFRoaXMgc2VsZWN0cyB0aGUgTnV2b3RvbiBNQTM1IHNlcmllcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhlIG51dm90b24tZHdtYWMgZHJpdmVyIGlzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0My1cdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Mi1cdCAgVGhpcyBzZWxlY3RzIHRoZSBRdWFsY29tbSBFVEhRT1MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0Olx0ICBUaGlzIHNlbGVjdHMgUmVuZXNhcyBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRldmljZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNjUtXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE2OD1jb25maWcgRFdNQUNfUk9DS0NISVBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Ni1cdCAgVGhpcyBzZWxlY3RzIHRoZSBSb2NrY2hpcCBSSzMyODggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xODctXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODg6XHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBzdXBwb3J0IGNhbiBtYWtlIHVzZSBvZiBhIGN1c3RvbSBNSUlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVx0ICBjb252ZXJ0ZXIgUENTIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5OS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjAzPWNvbmZpZyBEV01BQ19TT0NGUEdBXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTQtXHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNi1cdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMTg9Y29uZmlnIERXTUFDX1NPUEhHT1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI1LVx0ICBUaGlzIHNlbGVjdHMgdGhlIFNvcGhnbyBTb0Mgc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNy1cdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIyOT1jb25maWcgRFdNQUNfU1BBQ0VNSVRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzNy1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTcGFjZW1pdCBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4Olx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjM5LVx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0OS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBTdGFyRml2ZSBwbGF0Zm9ybSBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjUxLVx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2MTpcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBvbiBmb3IgdGhlIFNUaSBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI2NT1jb25maWcgRFdNQUNfU1RNMzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjczOlx0ICBUaGlzIHNlbGVjdHMgU1RNMzIgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXHQgIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgb24gZm9yIHRoZSBTVE0zMiBzZXJpZXNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI4NC1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjg1Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgQTIwL0EzMVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXHQgIEdNQUMgZXRoZXJuZXQgY29udHJvbGxlci5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Ni1cdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk3Olx0ICBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSDMvQTgzVC9BNjRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVx0ICBFTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA4LVx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMDk6XHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBNTIzL1Q1MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVx0ICBHTUFDMjAwIGV0aGVybmV0IGNvbnRyb2xsZXIuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTgtXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzE5Olx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIFQtSEVBRCBUSDE1MjBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVx0ICBldGhlcm5ldCBjb250cm9sbGVyLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcdCAgVGhpcyBzZWxlY3RzIE5YUCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzMS1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2Vcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMzND1jb25maWcgRFdNQUNfSU5URUxfUExBVFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQwLVx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZSBJbnRlbCBLZWVtIEJheVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDItXHQgIFNvQy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM0ND1jb25maWcgRFdNQUNfTE9PTkdTT04xXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM1MTpcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1Mi1cdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgTG9vbmdzb24xLWJhc2VkIGJvYXJkc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVx0ICBmb3VuZCBvbiB0aGUgTlZJRElBIFRlZ3JhIFNvQyBkZXZpY2VzLiBUaGlzIGRyaXZlciBwcm92aWRlcyB0aGUgZ2x1ZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjE6XHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjItXHQgIGRldmljZXMuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzM9Y29uZmlnIFNUTU1BQ19MSUJQQ0lcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cdGhlbHBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mzc2Olx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4NS1cdCAgVGhpcyBzZWxlY3RzIHRoZSBJbnRlbCBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcdCAgc3RtbWFjIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgSW50ZWwgUXVhcmsvRUhML1RHTC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTQtXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5NTpcdCAgVGhpcyBzZWxlY3RzIHRoZSBMT09OR1NPTiBQQ0kgYnVzIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gTG9vbmdzb24tMksxMDAwIFNvQyBhbmQgTFM3QTEwMDAgYnJpZGdlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00MTItXHRoZWxwXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQxMzpcdCAgVGhpcyBzZWxlY3RzIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cdCAgVGhpcyBkcml2ZXIgd2FzIHRlc3RlZCBvbiBYTElOWCBYQzJWMzAwMCBGRjExNTJBTVQwMjIxXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOm9iai0kKENPTkZJR19TVE1NQUNfRVRIKSAmIzQzOz0gc3RtbWFjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjM6c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTQtXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01LVx0ICAgICAgZHdtYWMxMDBfY29yZS5vIGR3bWFjMTAwX2RtYS5vIGVuaF9kZXNjLm8gbm9ybV9kZXNjLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2Olx0ICAgICAgbW1jX2NvcmUubyBzdG1tYWNfaHd0c3RhbXAubyBzdG1tYWNfcHRwLm8gZHdtYWM0X2Rlc2NzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo5Olx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTA6XHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTI6c3RtbWFjLSQoQ09ORklHX1NUTU1BQ19TRUxGVEVTVFMpICYjNDM7PSBzdG1tYWNfc2VsZnRlc3RzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxNTpvYmotJChDT05GSUdfU1RNTUFDX1BMQVRGT1JNKVx0JiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xNi1vYmotJChDT05GSUdfRFdNQUNfQU5BUklPTilcdCYjNDM7PSBkd21hYy1hbmFyaW9uLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT00NT1vYmotJChDT05GSUdfRFdNQUNfVklTQ09OVEkpXHQmIzQzOz0gZHdtYWMtdmlzY29udGkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDY6c3RtbWFjLXBsYXRmb3JtLW9ianM6PSBzdG1tYWNfcGxhdGZvcm0ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19TVE1NQUNfTElCUENJKVx0JiM0Mzs9IHN0bW1hY19saWJwY2kub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXHQmIzQzOz0gc3RtbWFjLXBjaS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS01MS1vYmotJChDT05GSUdfRFdNQUNfSU5URUwpXHQmIzQzOz0gZHdtYWMtaW50ZWwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXHQmIzQzOz0gZHdtYWMtbW90b3Jjb21tLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlOjU0OnN0bW1hYy1wY2ktb2Jqczo9IHN0bW1hY19wY2kub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE3OnN0YXRpYyBpbnQganVtYm9fZnJtKHN0cnVjdCBzdG1tYWNfdHhfcXVldWUgKnR4X3EsIHN0cnVjdCBza19idWZmICpza2IsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXHRcdCAgICAgaW50IGNzdW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIwLVx0dW5zaWduZWQgaW50IG5vcGFnZWRfbGVuID0gc2tiX2hlYWRsZW4oc2tiKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHR4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cdTAwM2VjdXJfdHg7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTQ0LVx0LyogZG8gbm90IGNsb3NlIHRoZSBkZXNjcmlwdG9yIGFuZCBkbyBub3Qgc2V0IG93biBiaXQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMSwgYnVmX2xlbiwgY3N1bSwgU1RNTUFDX0NIQUlOX01PREUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNDYtXHRcdFx0MCwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy02MS1cdFx0XHR0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6NjI6XHRcdFx0c3RtbWFjX3ByZXBhcmVfdHhfZGVzYyhwcml2LCBkZXNjLCAwLCBibWF4LCBjc3VtLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYzLVx0XHRcdFx0XHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgZmFsc2UsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03NS1cdFx0XHQvKiBsYXN0IGRlc2NyaXB0b3IgY2FuIGJlIHNldCBub3cgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo3NjpcdFx0XHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDAsIGxlbiwgY3N1bSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cdFx0XHRcdFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIHRydWUsIHNrYi1cdTAwM2VsZW4pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYz05OD1zdGF0aWMgdm9pZCBpbml0X2RtYV9jaGFpbih2b2lkICpkZXMsIGRtYV9hZGRyX3QgcGh5X2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMjg6c3RhdGljIHZvaWQgcmVmaWxsX2Rlc2MzKHN0cnVjdCBzdG1tYWNfcnhfcXVldWUgKnJ4X3EsIHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEzMDpcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IHJ4X3EtXHUwMDNlcHJpdl9kYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTEzMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjE0MzpzdGF0aWMgdm9pZCBjbGVhbl9kZXNjMyhzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xLCBzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQ0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVx1MDAzZXByaXZfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXHR1bnNpZ25lZCBpbnQgZW50cnkgPSB0eF9xLVx1MDAzZWRpcnR5X3R4O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTYwOmNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVx0LmluaXQgPSBpbml0X2RtYV9jaGFpbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcdTAwM2NsaW51eC9uZXRkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NzE6c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcyLVx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzktXHR1NjRfc3RhdHNfdCB0eF9wYWNrZXRzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTg1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6ODY6c3RydWN0IHN0bW1hY190eHFfc3RhdHMge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXHQvKiBVcGRhdGVzIHByb3RlY3RlZCBieSB0eCBxdWV1ZSBsb2NrLiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODgtXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjg5Olx0c3RydWN0IHN0bW1hY19xX3R4X3N0YXRzIHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05Mi1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTM6XHRzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMgbmFwaTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6OTY6c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVx0dTY0X3N0YXRzX3QgcnhfYnl0ZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTAzOnN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNC1cdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2Olx0c3RydWN0IHN0bW1hY19uYXBpX3J4X3N0YXRzIG5hcGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDctfSBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwOS0vKiBVcGRhdGVzIG9uIGVhY2ggQ1BVIHByb3RlY3RlZCBieSBub3QgYWxsb3dpbmcgbmVzdGVkIGlycXMuICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTA6c3RydWN0IHN0bW1hY19wY3B1X3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBzeW5jcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExNzpzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExOC1cdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTIzNy1cdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoyMzg6XHRzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB0eHFfc3RhdHNbTVRMX01BWF9UWF9RVUVVRVNdO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5Olx0c3RydWN0IHN0bW1hY19yeHFfc3RhdHMgcnhxX3N0YXRzW01UTF9NQVhfUlhfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0MDpcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI0MS1cdHVuc2lnbmVkIGxvbmcgcnhfZHJvcHBlZDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDctLyogU2FmZXR5IEZlYXR1cmUgc3RhdGlzdGljcyBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI0ODpzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXHR1bnNpZ25lZCBsb25nIG1hY19lcnJvcnNbMzJdO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjU3Olx0KHNpemVvZihzdHJ1Y3Qgc3RtbWFjX3NhZmV0eV9zdGF0cykgLyBzaXplb2YodW5zaWduZWQgbG9uZykpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDE2PXN0cnVjdCBkbWFfZmVhdHVyZXMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTU2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjU2NTp2b2lkIHN0bW1hY19heGlfYmxlbl90b19tYXNrKHUzMiAqcmVndmFsLCBjb25zdCB1MzIgKmJsZW4sIHNpemVfdCBsZW4pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTYxMz1zdHJ1Y3QgbWFjX2RldmljZV9pbmZvIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzICptYWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTU6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE2Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19kbWFfb3BzICpkbWE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzICptb2RlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE4Olx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjE5Olx0Y29uc3Qgc3RydWN0IHN0bW1hY190Y19vcHMgKnRjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlx0Y29uc3Qgc3RydWN0IHN0bW1hY19tbWNfb3BzICptbWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjE6XHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMjpcdGNvbnN0IHN0cnVjdCBzdG1tYWNfdmxhbl9vcHMgKnZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXHRzdHJ1Y3QgZHdfeHBjcyAqeHBjcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NDU6c3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0Ni1cdHUzMiByZWdfbWFzaztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTE6aW50IGR3bWFjMTAwMF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUyOmludCBkd21hYzRfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1NDppbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU3LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTg6dm9pZCBzdG1tYWNfZ2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1bnNpZ25lZCBjaGFyICphZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVx0XHRcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjA6dm9pZCBzdG1tYWNfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjMtXHRcdFx0XHR1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2NS1cdFx0XHRcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjY3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9uZXQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFx1MDAzY2xpbnV4L3N0bW1hYy5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTQ6I2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxNTojaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGxhdGZvcm0uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTE2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjY0Olx0XHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTYtXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjk3Olx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcdHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHN0bW1hY19yZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlx0cmV0ID0gc3RtbWFjX2dldF9wbGF0Zm9ybV9yZXNvdXJjZXMocGRldiwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjExNjpcdHJldHVybiBkZXZtX3N0bW1hY19wbHRmcl9wcm9iZShwZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE3LX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjgtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2FuYXJpb24tZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTI5Olx0XHQucG1cdFx0PSBcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEzMC1cdFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIxLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjI6I2luY2x1ZGUgXHUwMDNjbGludXgvc3RtbWFjLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFwmIzM0O2R3bWFjNC5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNj1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM3Olx0XHRcdFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXHRcdHBsYXRfZGF0LVx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcdTAwMjZwZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XHRcdFx0XHRcdCAgICAgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfYXhpKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXHRcdFx0XHRcdCAgICAgR0ZQX0tFUk5FTCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz05Nj1zdGF0aWMgaW50IGR3Y19xb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6OTc6XHRcdFx0IHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4Olx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtOTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxMDA6XHRwbGF0X2RhdC1cdTAwM2VwY2xrID0gc3RtbWFjX3BsdGZyX2ZpbmRfY2xrKHBsYXRfZGF0LCBcJiMzNDtwaHlfcmVmX2Nsa1wmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTEwMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTExOS1cdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTIwOlx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXHR1MzIgdmFsdWU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXHRcdC8qIENhbGlicmF0aW9uIHNob3VsZCBiZSBkb25lIHdpdGggdGhlIE1ESU8gYnVzIGlkbGUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlx0XHRzdG1tYWNfbWRpb19sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcdFx0c3RtbWFjX21kaW9fdW5sb2NrKHByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXHR9IGVsc2Uge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoxODc6XHRcdFx0ICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE4ODpcdFx0XHQgICAgc3RydWN0IHN0bW1hY19yZXNvdXJjZXMgKnJlcylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0Olx0cGxhdF9kYXQtXHUwMDNlY2xrX3R4X2kgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsIFwmIzM0O3R4XCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjA1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM3LVx0cGxhdF9kYXQtXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMzg6XHRwbGF0X2RhdC1cdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMzktXHRwbGF0X2RhdC1cdTAwM2Vic3BfcHJpdiA9IGVxb3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNTI9c3RhdGljIHZvaWQgdGVncmFfZXFvc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjU0Olx0c3RydWN0IHRlZ3JhX2Vxb3MgKmVxb3MgPSBnZXRfc3RtbWFjX2JzcF9wcml2KFx1MDAyNnBkZXYtXHUwMDNlZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjYwPXN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjEtXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjYyOlx0XHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MzpcdFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY0LVx0dm9pZCAoKnJlbW92ZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcdGNvbnN0IGNoYXIgKnN0bW1hY19jbGtfbmFtZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjY2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZHdjX3Fvc19kYXRhID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjktXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzA6XHQuc3RtbWFjX2Nsa19uYW1lID0gXCYjMzQ7YXBiX3BjbGtcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3MS19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjczPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHRlZ3JhX2Vxb3NfZGF0YSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cdC5yZW1vdmUgPSB0ZWdyYV9lcW9zX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjc2Olx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBkd2NfZXRoX2R3bWFjX2RhdGEgZnNkX2Vxb3NfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlx0LnN0bW1hY19jbGtfbmFtZSA9IFwmIzM0O3NsYXZlX2J1c1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjgxLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODUtXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODY6XHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yODgtXHRpbnQgcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XHRtZW1zZXQoXHUwMDI2c3RtbWFjX3JlcywgMCwgc2l6ZW9mKHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk0LVx0LyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcdCAqIFNpbmNlIHN0bW1hY19wbGF0Zm9ybSBzdXBwb3J0cyBuYW1lIElSUSBvbmx5LCBiYXNpYyBwbGF0Zm9ybVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTYtXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTctXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4Olx0c3RtbWFjX3Jlcy5pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTk6XHRpZiAoc3RtbWFjX3Jlcy5pcnEgXHUwMDNjIDApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMDpcdFx0cmV0dXJuIHN0bW1hY19yZXMuaXJxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDE6XHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDM6XHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNDpcdGlmIChJU19FUlIoc3RtbWFjX3Jlcy5hZGRyKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1Olx0XHRyZXR1cm4gUFRSX0VSUihzdG1tYWNfcmVzLmFkZHIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNjpcdHBsYXRfZGF0LVx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMxNzpcdFx0XHRcdFx0XHQgICAgIGRhdGEtXHUwMDNlc3RtbWFjX2Nsa19uYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTktXHRpZiAoZGF0YS1cdTAwM2Vwcm9iZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzIwOlx0XHRyZXQgPSBkYXRhLVx1MDAzZXByb2JlKHBkZXYsIHBsYXRfZGF0LCBcdTAwMjZzdG1tYWNfcmVzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVx0aWYgKHJldCBcdTAwM2MgMCkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMzA6XHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBwbGF0X2RhdCwgXHUwMDI2c3RtbWFjX3Jlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNDM9c3RhdGljIHZvaWQgZHdjX2V0aF9kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzQ3Olx0c3RtbWFjX2R2cl9yZW1vdmUoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNDgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0zNjE9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdjX2V0aF9kd21hY19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXHRcdC5uYW1lICAgICAgICAgICA9IFwmIzM0O2R3Yy1ldGgtZHdtYWNcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM2NjpcdFx0LnBtICAgICAgICAgICAgID0gXHUwMDI2c3RtbWFjX3BsdGZyX3BtX29wcyxcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNTM0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNTA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYHN0bW1hY2AgRHJpdmVyIGFuZCBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gdGhlIGBzdG1tYWNgIGRyaXZlciBpcyBwcmV0dHkgd2lkZXNwcmVhZDsgSW50ZWwgS2VlbSBCYXksIFJvY2tjaGlwLCBUZWdyYSwgQWxsd2lubmVyIOKAkyBpdCYjMzk7cyBhbGwgb3ZlciB0aGUgcGxhY2UuIENsZWFybHksIGl0JiMzOTtzIGEgZnVuY3Rpb25pbmcgZHJpdmVyLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBwYWdlIHBvb2wgcXVpcmsgZm9yIHRyYW5zbWl0IGJ1ZmZlcnMsIHRyaWdnZXJlZCBieSB0aGUgZGV2aWNlIHRyZWUgZW50cnkgYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYC4gVGhpcyBpcyBpbnRlcmVzdGluZy4uLiBpZiBpdCYjMzk7cyBkZXZpY2UgdHJlZSBjb250cm9sbGVkLCBjb3VsZCBJIHBvdGVudGlhbGx5IGhpdCB0aGlzIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VPyBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IFFFTVUgbW9kZWxzIHRoZSBgc3RtbWFjYCBoYXJkd2FyZS4gSXMgaXQgdXNpbmcgc29tZXRoaW5nIGxpa2UgYGh3L25ldC9kZXNpZ253YXJlLmNgPyAKCkhtbSwgdGhlIHBhdGNoIGFsc28gbW9kaWZpZXMgYHNvY2ZwZ2FfYWdpbGV4NS5kdHNpYC4gT2theSwgc28gdGhleSYjMzk7cmUgZW5hYmxpbmcgdGhlIHF1aXJrIGZvciB0aGF0IHBsYXRmb3JtLiBOb3csIHRoZSByZWFsIHF1ZXN0aW9uOiBjYW4gSSBmdXp6IHRoaXMgd2l0aCBzeXprYWxsZXI/IFN5emthbGxlciBjYW4gaW5qZWN0IGRldmljZSB0cmVlIG5vZGVzIG9yIHZpcnR1YWwgZGV2aWNlcyBpZiBpdCYjMzk7cyBhIHBsYXRmb3JtIGRyaXZlci4gSSBrbm93IGl0IGNhbiB1c2UgYHN5el9kZXZtZW1gIG9yIHNpbWlsYXIsIGJ1dCB0eXBpY2FsbHkgaXQgZGVwZW5kcyBvbiBleGlzdGluZyBkZXZpY2VzIG9yIHVzZXMgYHN5el9nZW5ldGxpbmtgLiBCdXQsIGl0IGNhbiBhbHNvIHVzZSBgdHVuYC9gdGFwYCBvciBpbnRlcmFjdCB3aXRoIHRoZSBuZXR3b3JrIHN0YWNrLiBIb3dldmVyLCBJIG5lZWQgdGhlIGRldmljZSB0byBiZSBwcm9iZWQgdG8gcmVhY2ggdGhpcyBzcGVjaWZpYyBjb2RlLiBTbywgdGhlIHF1ZXN0aW9uIGJlY29tZXMsIGlzIGBzdG1tYWNgIHByb2JlZCBpbiBzeXprYWxsZXImIzM5O3Mgc3RhbmRhcmQgZW52aXJvbm1lbnRzPyBTeXprYWxsZXIgdXNlcyBgcWVtdS1zeXN0ZW0teDg2XzY0YCwgYGFhcmNoNjRgLCBvciBgYXJtYC4gSWYgaXQmIzM5O3MgYW4gQVJNNjQgZW52aXJvbm1lbnQsIGBzb2NmcGdhX2FnaWxleDVgIG1pZ2h0IG5vdCBiZSB0aGUgZGVmYXVsdCBtYWNoaW5lLgoKV2FpdCwgYHN0bW1hY2AgY2FuIGFsc28gYmUgYSBQQ0kgZGV2aWNlISBUaGF0JiMzOTtzIGEga2V5IG9ic2VydmF0aW9uLiBJIG5lZWQgdG8gY2hlY2sgaWYgYHN0bW1hY2AgaGFzIGEgUENJIGJpbmRpbmcuIExldCYjMzk7cyBzZWUuLi4gWWVwLCBgQ09ORklHX1NUTU1BQ19QQ0lgIGlzIHRoZXJlISBPa2F5LCBzbyBpdCBjYW4gYmUgYSBQQ0kgZGV2aWNlLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgZG9lcyBgc3RtbWFjX3BjaS5jYCBhY3R1YWxseSBzZXQgdGhpcyBgdHhfYnVmX3F1aXJrYD8gVGhhdCYjMzk7cyB3aGF0IEkgbmVlZCB0byB2ZXJpZnkgbmV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0eF9idWZfcXVpcmsmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz00NzcxPXN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDg0OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDg1MDpcdFx0aWYgKCEobGFzdF9zZWdtZW50IFx1MDAyNlx1MDAyNiBwcml2LVx1MDAzZXBsYXQtXHUwMDNldHhfYnVmX3F1aXJrKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00ODUxLVx0XHRcdGRtYV9hZGRyID0gZG1hX21hcF9zaW5nbGUocHJpdi1cdTAwM2VkZXZpY2UsIHNrYi1cdTAwM2VkYXRhLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxNj1zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTc3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTc4Olx0cGxhdC1cdTAwM2V0eF9idWZfcXVpcmsgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsIFwmIzM0O3NucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU3OS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjkxNgoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDMxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXIgQ2hhbmdlKioKCk9rYXksIHNvIHRoaXMgYHR4X2J1Zl9xdWlya2AgZmxhZ+KApiBJIHNlZSBpdCYjMzk7cyBvbmx5IHNldCB3aXRoaW4gYHN0bW1hY19wcm9iZV9jb25maWdfZHRgLiBUaGF0JiMzOTtzIGEgRGV2aWNlIFRyZWUgdGhpbmcsIHNwZWNpZmljYWxseSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG1tbSwgY291bGQgU3l6a2FsbGVyIHBvdGVudGlhbGx5IHRyaWdnZXIgdGhpcyBzb21laG93PyBJdCAqY2FuKiBsb2FkIGN1c3RvbSBEZXZpY2UgVHJlZXMgb3IgdXNlIGBzeXpfZGV2bWVtYCB0byBwb2tlIGFyb3VuZC4gQnV0IGhvbGQgb24sIHR5cGljYWxseSBpdCBkb2VzbiYjMzk7dCBkeW5hbWljYWxseSBsb2FkIERldmljZSBUcmVlcyB1bmxlc3Mgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBzb21ldGhpbmcgbGlrZSBgc3l6X21vdW50X2ltYWdlYCwgYW5kIHRoZXJlJiMzOTtzIG5vIGdlbmVyYWwgbWVjaGFuaXNtIHRvIGFkZCBEVCBub2RlcyBvbiB0aGUgZmx5IGZvciBwbGF0Zm9ybSBkZXZpY2VzIHdpdGhvdXQgRFQgb3ZlcmxheXMsIHJpZ2h0PwoKV2FpdCwgZG9lcyBTeXprYWxsZXIgaGF2ZSBzb21lIHNvcnQgb2YgYHN5el9pbml0X25ldF9kZXZpY2VgIGNhbGwgb3Igc2ltaWxhcj8gTm8sIGNhbiYjMzk7dCB0aGluayBvZiBhbnl0aGluZy4KCkJ1dCB3YWl0IGFnYWluIOKAkyBTeXprYWxsZXIgKmRvZXMqIGZ1enogQVJNNjQgcGxhdGZvcm1zIHdpdGggZGlmZmVyZW50IERldmljZSBUcmVlcy4gSWYgdGhlIEFnaWxleDUgRFQgaXMgYmVpbmcgdXNlZCwgb3IgaWYgdGhlIHJlbGV2YW50IHByb3BlcnR5IGlzIHByZXNlbnQsIHRoZW4gaXQmIzM5O3MgKnBvc3NpYmxlKiBpdCBjb3VsZCBnZXQgZnV6emVkLiBUaGF0JiMzOTtzIGEgcG9pbnQuCgpSaWdodCwgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBzdG1tYWNfbWFpbi5jYCDigJMgdGhhdCYjMzk7cyB0aGUgZHJpdmVyJiMzOTtzIGNvcmUuIEFuZCB0aGUgY2hhbmdlcyBhcmUgaW4ga2V5IGFyZWFzOiBgc3RtbWFjX3R4X2NsZWFuYCwgYHN0bW1hY19mcmVlX3R4X2J1ZmZlcmAsIGBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGBfX2ZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgYW5kIGBzdG1tYWNfeG1pdGAuCgpOb3csIHRoZSBpbXBvcnRhbnQgcGFydDogYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBsb29rcyBsaWtlIGl0JiMzOTtzIGNhbGxlZCB1bmNvbmRpdGlvbmFsbHkhIFRoYXQmIzM5O3MgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgaW50byB0aGF0IGZ1bmN0aW9uIGFuZCBzZWUgd2hhdCYjMzk7cyBnb2luZyBvbi4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjMwNz1zdGF0aWMgaW50IGFsbG9jX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMzI5LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMzMwOiAqIF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzIC0gYWxsb2MgVFggcmVzb3VyY2VzIChwZXIgcXVldWUpLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMzMxLSAqIEBwcml2OiBwcml2YXRlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjMzOC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjMzOTpzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjM0MC1cdFx0XHRcdFx0IHN0cnVjdCBzdG1tYWNfZG1hX2NvbmYgKmRtYV9jb25mLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjM5Nj1zdGF0aWMgaW50IGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNDA0LVx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyB0eF9jb3VudDsgcXVldWUmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0MDU6XHRcdHJldCA9IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIGRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0MDYtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03MDg4PXZvaWQgc3RtbWFjX2VuYWJsZV90eF9xdWV1ZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjcwOTU6XHRyZXQgPSBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhwcml2LCBcdTAwMjZwcml2LVx1MDAzZWRtYV9jb25mLCBxdWV1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwOTYtXHRpZiAocmV0KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQzMTQKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA2NzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBwYWdlX3Bvb2xgIEludHJvZHVjdGlvbiBpbiB0aGUgU1RNTUFDIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgbXkgaW5pdGlhbCB0aG91Z2h0IGlzOiBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgIGlzIG5vdyAqYWx3YXlzKiBjYWxsZWQgZm9yIGV2ZXJ5IHRyYW5zbWl0IHF1ZXVlLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhhdCBxdWlya3kgYHR4X2J1Zl9xdWlya2AgaXMgYWN0aXZlLiAgSW50ZXJlc3RpbmcuIExldCYjMzk7cyBtYWtlIHN1cmUuIFJpZ2h0LCBzbyBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCBjcmVhdGVzIGEgYHBhZ2VfcG9vbGAgZm9yIGVhY2ggVFggcXVldWUgKnVuY29uZGl0aW9uYWxseSouIFRoYXQmIzM5O3MgdGhlIGtleS4gVGhpcyByZXByZXNlbnRzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gZHJpdmVyIGluaXRpYWxpemF0aW9uIGFuZCBtZW1vcnkgYWxsb2NhdGlvbiwgcmVnYXJkbGVzcyBvZiBhbnkgc3BlY2lmaWMgcXVpcmsgc2V0dGluZ3MuIFRoaXMgaGFzIGltbWVkaWF0ZSBhbmQgZmFyLXJlYWNoaW5nIGltcGxpY2F0aW9ucy4gSWYgdGhlIHF1aXJrIGlzIGVuYWJsZWQsIHRoZSBjb2RlIHdpbGwgKmFsc28qIHVzZSB0aGUgcGFnZSBwb29sIHdpdGhpbiBgc3RtbWFjX3htaXRgLgoKVGhpcyBmdW5kYW1lbnRhbGx5IGFsdGVycyB0aGUgZHJpdmVyJiMzOTtzIG1lbW9yeSBtYW5hZ2VtZW50IHN0cmF0ZWd5LCBhbmQsIGFzIGEgZHJpdmVyIGV4cGVydCwgSSBjYW4gdGVsbCB5b3UgdGhpcyBuZWVkcyBhIGNsb3NlIGV4YW1pbmF0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZnV6eiB0aGlzIGFyZWEuIEFueSBjaGFuZ2UgbGlrZSB0aGlzIGlzIGEgcG90ZW50aWFsIHNvdXJjZSBvZiBpc3N1ZXMuCgpOb3csIEkgbmVlZCB0byBmb2N1cyBvbiB0aGUga2V5IHN5bWJvbHMgaW52b2x2ZWQuIExldCYjMzk7cyBsaXN0IHRob3NlLiBUaGUgcGF0Y2ggbW9kaWZpZWQ6Ci0gYHN0bW1hY19mcmVlX3R4X2J1ZmZlcmAgKHN0YXRpYykKLSBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgKHN0YXRpYykKLSBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgIChzdGF0aWMpCi0gYHN0bW1hY190eF9jbGVhbmAgKHN0YXRpYykKLSBgc3RtbWFjX3htaXRgIChzdGF0aWMpCgpIbW0sIGFsbCBvZiB0aGVzZSBhcmUgc3RhdGljLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgKmV4dGVybmFsKiBpbXBhY3QuIFNvLCBJIG5lZWQgdG8gZ28gdXBzdHJlYW0gYW5kIGZpbmQgdGhlIG5vbi1zdGF0aWMgZnVuY3Rpb25zIHRoYXQgY2FsbCB0aGVtLiBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCwgdGhlIHdheSB0aGUgZnVuY3Rpb25hbGl0eSBjaGFuZ2VzIGludGVyYWN0IHdpdGggdGhlIGJyb2FkZXIgY29kZSBiYXNlLiBGcm9tIGhlcmUsIEkgY2FuIHRyYWNlIHBvdGVudGlhbCBhcmVhcyBvZiBicmVha2FnZSB0byB0ZXN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfeG1pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQ3NTE9c3RhdGljIGJvb2wgc3RtbWFjX2hhc19pcF9ldGhlcnR5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ3NjMtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ3NjQ6ICogIHN0bW1hY194bWl0IC0gVHggZW50cnkgcG9pbnQgb2YgdGhlIGRyaXZlclxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzY1LSAqICBAc2tiIDogdGhlIHNvY2tldCBidWZmZXJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ3NzAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ3NzE6c3RhdGljIG5ldGRldl90eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ3NzIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzM0MD1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHN0bW1hY19uZXRkZXZfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQxLVx0Lm5kb19vcGVuID0gc3RtbWFjX29wZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNDI6XHQubmRvX3N0YXJ0X3htaXQgPSBzdG1tYWNfeG1pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM0My1cdC5uZG9fZmVhdHVyZXNfY2hlY2sgPSBzdG1tYWNfZmVhdHVyZXNfY2hlY2ssXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1ODc3CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gQ2FsbCBTdHJ1Y3R1cmUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgYHN0bW1hY194bWl0YCBmdW5jdGlvbi4gSXQmIzM5O3MgdGhlIGBuZG9fc3RhcnRfeG1pdGAgY2FsbGJhY2ssIHJpZ2h0PyBUaGUgaW5zdHJ1Y3Rpb25zIEkmIzM5O3ZlIGJlZW4gZ2l2ZW4gc2F5IHRvIHByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMuIE5vdywgdGhlIGRvY3VtZW50YXRpb24gc2F5cyB0byBwcmlvcml0aXplIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIHN0YXRpYyBpbnRlcm5hbCBoZWxwZXIgZnVuY3Rpb25zLgoKSW5pdGlhbGx5LCBJIHRob3VnaHQsICYjMzQ7SG1tLCBgc3RtbWFjX3htaXRgIGlzICpzdGF0aWMqLiYjMzQ7IEJ1dCBob2xkIG9uLCBpdCYjMzk7cyBiZWluZyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIsIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQgbWVhbnMgdGhlIGNvbXBpbGVyICpjYW4mIzM5O3QqIGlubGluZSBpdCwgcmlnaHQ/IEl0JiMzOTtsbCBkZWZpbml0ZWx5IGhhdmUgaXRzIG93biBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gU28sIHdoaWxlIGl0JiMzOTtzIHN0YXRpYywgaXQmIzM5O3MgYmVoYXZpbmcgbGlrZSBhIG5vbi1zdGF0aWMgZW50cnlwb2ludCBpbiBwcmFjdGljZS4gVG8gYmUgYWJzb2x1dGVseSBzYWZlLCBJJiMzOTtsbCBhZGQgYHN0bW1hY194bWl0YCB0byB0aGUgbGlzdC4KCk5vdywgd2hhdCBhYm91dCBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgPyBMZXQmIzM5O3MgdHJhY2UgaXQuIEl0JiMzOTtzIGNhbGxlZCBieSBgYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggaXMgY2FsbGVkIGJ5IGBhbGxvY19kbWFfZGVzY19yZXNvdXJjZXNgLCB3aGljaCBpcyBjYWxsZWQgYnkuLi4gb2theSwgbG9va3MgbGlrZSBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX3Jlc3VtZWAuIFJpZ2h0LiBJdCYjMzk7cyB0aW1lIHRvIGNoZWNrIG91dCBgc3RtbWFjX29wZW5gLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzdG1tYWNfb3BlbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQwODE9c3RtbWFjX3NldHVwX2RtYV9kZXNjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdW5zaWduZWQgaW50IG10dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxNDYtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxNDc6ICogIF9fc3RtbWFjX29wZW4gLSBvcGVuIGVudHJ5IHBvaW50IG9mIHRoZSBkcml2ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE0OC0gKiAgQGRldiA6IHBvaW50ZXIgdG8gdGhlIGRldmljZSBzdHJ1Y3R1cmUuXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTU1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0MTU2OnN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTU3LVx0XHRcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMDU6c3RhdGljIGludCBzdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjA2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMzM6XHRyZXQgPSBfX3N0bW1hY19vcGVuKGRldiwgZG1hX2NvbmYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjM0LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTYxNDU9c3RhdGljIGludCBzdG1tYWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYxODE6XHRcdHJldCA9IF9fc3RtbWFjX29wZW4oZGV2LCBkbWFfY29uZik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYxODItXHRcdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNDA9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBzdG1tYWNfbmV0ZGV2X29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM0MTpcdC5uZG9fb3BlbiA9IHN0bW1hY19vcGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQyLVx0Lm5kb19zdGFydF94bWl0ID0gc3RtbWFjX3htaXQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03NjI3PWludCBzdG1tYWNfcmVpbml0X3F1ZXVlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCByeF9jbnQsIHU4IHR4X2NudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2NDYtXHRpZiAobmV0aWZfcnVubmluZyhkZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NjQ3Olx0XHRyZXQgPSBzdG1tYWNfb3BlbihkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzY1Mj1pbnQgc3RtbWFjX3JlaW5pdF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJ4X3NpemUsIHUzMiB0eF9zaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzY2My1cdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc2NjQ6XHRcdHJldCA9IHN0bW1hY19vcGVuKGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2NjUtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3NTcxCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgSSBkZWx2ZSBpbnRvIHRoaXMgY29kZToKCioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyJiMzOTtzIEZ1bmN0aW9uIENhbGxzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgdGhlIFNUTU1BQyBkcml2ZXIgaXMgc3RydWN0dXJlZCwgc3BlY2lmaWNhbGx5IGhvdyB0aGUgbmV0d29yayBkZXZpY2Ugb3BlcmF0aW9ucyBhcmUgZGVmaW5lZC4gSSBzZWUgdGhhdCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX3htaXRgIGFyZSBib3RoIGRlY2xhcmVkIGFzIHN0YXRpYyBmdW5jdGlvbnMsIHdoaWNoIGlzIHN0YW5kYXJkIHByYWN0aWNlIGZvciBpbnRlcm5hbCBkcml2ZXIgZnVuY3Rpb25zLCBidXQgdGhleSYjMzk7cmUgYXNzaWduZWQgdG8gdGhlIGBzdG1tYWNfbmV0ZGV2X29wc2Agc3RydWN0dXJlLiBUaGF0IG1ha2VzIHBlcmZlY3Qgc2Vuc2UsIHRoZXkgYXJlIHRoZSBlbnRyeSBwb2ludHMgZm9yIHRoZSBuZXR3b3JrIGRldmljZS4gTm93LCBJJiMzOTttIHRyeWluZyB0byB0cmFjZSB0aGUgZGF0YSBmbG93IGFuZCBJJiMzOTttIHdvbmRlcmluZyB3aGVyZSBlbHNlIGBzdG1tYWNfdHhfY2xlYW5gIGZpdHMgaW50byB0aGlzIHBpY3R1cmUsIGFzIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB0cmFuc21pdCBwYXRoLgoKSSBrbm93IGBzdG1tYWNfdHhfY2xlYW5gIGlzIHJlc3BvbnNpYmxlIGZvciBjbGVhbmluZyB1cCB0aGUgdHJhbnNtaXQgcXVldWUsIG9idmlvdXNseS4gSSYjMzk7bSBhd2FyZSB0aGF0IGBzdG1tYWNfdHhfY2xlYW5gIGlzIGNhbGxlZCBieSBgc3RtbWFjX3R4X3RpbWVyYCBhbmQgYHN0bW1hY19wb2xsYC4gU2luY2UgYHN0bW1hY19wb2xsYCBoYW5kbGVzIHRoZSBpbnRlcnJ1cHQgZHJpdmVuIGNvbXBsZXRpb24sIEkgc2hvdWxkIHByb2JhYmx5IGNoZWNrIHRoYXQgbmV4dC4gSSB3aWxsIGV4YW1pbmUgYHN0bW1hY19wb2xsYCBhbmQgaXRzIHJlbGF0aW9uc2hpcCB3aXRoIGBzdG1tYWNfdHhfY2xlYW5gIHRvIGZ1bGx5IHVuZGVyc3RhbmQgaG93IHRyYW5zbWl0IGRlc2NyaXB0b3JzIGFyZSBwcm9jZXNzZWQuIEkmIzM5O20gY29uZmlkZW50IHRoYXQgdW5kZXJzdGFuZGluZyB0aGlzIGNhbGwgcGF0aCB3aWxsIGNsYXJpZnkgdGhlIGRyaXZlciYjMzk7cyB0cmFuc21pdCBtZWNoYW5pc20uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX3BvbGwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzk5NwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkLCBhbmQgd3JpdGluZyBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipQb3RlbnRpYWwgU3VzcGVjdCBJZGVudGlmaWVkOiBgc3RtbWFjX25hcGlfcG9sbGAqKgoKSG1tLCBqdXN0IGEgbW9tZW50LiBNeSBpbml0aWFsIGxpbmUgb2YgcmVhc29uaW5nIHdhcyBsZWFkaW5nIG1lIGRvd24gYSBjZXJ0YWluIHBhdGgsIGJ1dCBzb21ldGhpbmcmIzM5O3MgbmFnZ2luZyBhdCBtZS4gQ29uc2lkZXJpbmcgdGhlIGNvbnRleHQsIGFuZCB0aGUgc3BlY2lmaWMgbnVhbmNlcyBvZiB0aGUgc2l0dWF0aW9uLCBJJiMzOTttIGJlZ2lubmluZyB0byByZWNvbnNpZGVyLiBUaGUgcG90ZW50aWFsIGN1bHByaXQsIHRoZSBmdW5jdGlvbiB0aGF0JiMzOTtzIG1vc3QgbGlrZWx5IGNhdXNpbmcgdGhlIGlzc3VlLCBpcyBpbmNyZWFzaW5nbHkgcG9pbnRpbmcgdG93YXJkcyBgc3RtbWFjX25hcGlfcG9sbGAuIEkgc2hvdWxkJiMzOTt2ZSBzZWVuIGl0IHNvb25lci4gSSBuZWVkIHRvIHRha2UgYSBjbG9zZXIgbG9vayBhdCB0aGF0IGZ1bmN0aW9uLiBJdCYjMzk7cyBsaWtlbHkgaW52b2x2ZWQgaW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGNvbnRyb2xsZXLigJlzIHBvbGxpbmcgbWVjaGFuaXNtLiBJIHNob3VsZCBzdGFydCB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RtbWFjX25hcGlfcG9sbCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTU3MTY9c3RhdGljIGludCBzdG1tYWNfcngoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgbGltaXQsIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTU5ODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjU5ODc6c3RhdGljIGludCBzdG1tYWNfbmFwaV9wb2xsX3J4KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTk4OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MDEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MDEzOnN0YXRpYyBpbnQgc3RtbWFjX25hcGlfcG9sbF90eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYwMTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjA0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjA0NjpzdGF0aWMgaW50IHN0bW1hY19uYXBpX3BvbGxfcnh0eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYwNDcte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzU3Nz1zdGF0aWMgdm9pZCBzdG1tYWNfbmFwaV9hZGQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OTEtXHRcdGlmIChxdWV1ZSBcdTAwM2MgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXJ4X3F1ZXVlc190b191c2UpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5MjpcdFx0XHRuZXRpZl9uYXBpX2FkZChkZXYsIFx1MDAyNmNoLVx1MDAzZXJ4X25hcGksIHN0bW1hY19uYXBpX3BvbGxfcngpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTkzLVx0XHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTk1LVx0XHRcdG5ldGlmX25hcGlfYWRkX3R4KGRldiwgXHUwMDI2Y2gtXHUwMDNldHhfbmFwaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5NjpcdFx0XHRcdFx0ICBzdG1tYWNfbmFwaV9wb2xsX3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzU5Ny1cdFx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzYwMC1cdFx0XHRuZXRpZl9uYXBpX2FkZChkZXYsIFx1MDAyNmNoLVx1MDAzZXJ4dHhfbmFwaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzYwMTpcdFx0XHRcdCAgICAgICBzdG1tYWNfbmFwaV9wb2xsX3J4dHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjAyLVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MDQ1CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMjE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIFBvbGwgRnVuY3Rpb25zIGZvciBPcHRpbWl6YXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRnJvbSB3aGF0IEkgc2VlLCBgc3RtbWFjX25hcGlfcG9sbF90eGAgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgIGFyZSB0aGUgY29yZSBOZXR3b3JrIEFQSSAoTkFQSSkgcG9sbCBmdW5jdGlvbnMgaW4gdGhpcyBTVE1NQUMgZHJpdmVyLiBTbywgSSBuZWVkIHRvIGZvY3VzIG9uIGtleSBzeW1ib2xzIHJlbGF0ZWQgdG8gdGhlIHRyYW5zbWl0IGFuZCByZWNlaXZlIG9wZXJhdGlvbnMuIEl0IGxvb2tzIGxpa2UgdGhlIG1vc3QgcmVsZXZhbnQgb25lcyBhcmU6IGBzdG1tYWNfeG1pdGAsIGBzdG1tYWNfb3BlbmAsIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCwgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgLgoKTm93LCBgc3RtbWFjX3htaXRgIGltbWVkaWF0ZWx5IGNhdGNoZXMgbXkgZXllIGFzIGEgcG90ZW50aWFsIGVudHJ5IHBvaW50IGZvciB0cmFuc21pdC4gSG9sZCBvbi4uLiBJIHNlZSB0aGF0IGBzdG1tYWNfdHhfY2xlYW5gIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCwgc28gaXQmIzM5O3Mgb2J2aW91c2x5IGltcG9ydGFudCBmb3IgY2xlYW5pbmcgdXAgdGhlIHRyYW5zbWl0IHByb2Nlc3MuIExldCBtZSBxdWlja2x5IGNoZWNrIGlmIGBzdG1tYWNfeG1pdGAgaXMgc3RhdGljLiBZZXMsIGl0JiMzOTtzIG1hcmtlZCBhcyBzdGF0aWMsIGJ1dCBpdCYjMzk7cyBhc3NpZ25lZCB0byBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0JiMzOTtzIGEga2V5IGRldGFpbCEgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgZ29pbmcgb24gdGhlcmUuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgKm5vbiotc3RhdGljIGZ1bmN0aW9ucyB0aGF0IEkgY2FuIGxldmVyYWdlIG9yIHVuZGVyc3RhbmQgYmV0dGVyLiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgYHN0bW1hY19tYWluLmNgIGZpbGUgdG8gc2VlIHdoYXQgZnVuY3Rpb25zIGFyZSBiZWluZyBleHBvcnRlZC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGNsZWFyZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVyJiMzOTtzIGV4dGVybmFsIGludGVyZmFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0xOTU9aW50IHN0bW1hY19zZXRfY2xrX3R4X3JhdGUodm9pZCAqYnNwX3ByaXYsIHN0cnVjdCBjbGsgKmNsa190eF9pLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjA4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjA5OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19zZXRfY2xrX3R4X3JhdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz0yMTc9dm9pZCBzdG1tYWNfYXhpX2JsZW5fdG9fbWFzayh1MzIgKnJlZ3ZhbCwgY29uc3QgdTMyICpibGVuLCBzaXplX3QgbGVuKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ2LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MjQ3OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19heGlfYmxlbl90b19tYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MzIyMj1pbnQgc3RtbWFjX2dldF9waHlfaW50Zl9zZWwocGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTMyMzctfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzozMjM4OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19nZXRfcGh5X2ludGZfc2VsKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMzIzOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc3OTA9c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpzdG1tYWNfcGxhdF9kYXRfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzgyMy19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc4MjQ6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3BsYXRfZGF0X2FsbG9jKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzgyNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgxMzg9aW50IHN0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE1NC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgxNTU6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX2R2cl9wcm9iZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgxNTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MTYzPXZvaWQgc3RtbWFjX2R2cl9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE5Ni19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgxOTc6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX2R2cl9yZW1vdmUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MTk4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9ODIwNj1pbnQgc3RtbWFjX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODI1Ny19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgyNTg6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3N1c3BlbmQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MjU5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9ODMwMj1pbnQgc3RtbWFjX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzg4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODM4OTpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfcmVzdW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODM5MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgzOTI9REVGSU5FX1NJTVBMRV9ERVZfUE1fT1BTKHN0bW1hY19zaW1wbGVfcG1fb3BzLCBzdG1tYWNfc3VzcGVuZCwgc3RtbWFjX3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgzOTM6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3NpbXBsZV9wbV9vcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzk0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTAyOAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDE5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXImIzM5O3MgQXJjaGl0ZWN0dXJlKioKCk9rYXksIHNvIGBzdG1tYWNfZHZyX3Byb2JlYCBpcyB0aGUgZW50cnkgcG9pbnQsIHRoZSBtYWluIHByb2JlIGZ1bmN0aW9uLCB0aGF0IG1ha2VzIHNlbnNlLiBCdXQgdGhlIG5ldHdvcmsgb3BlcmF0aW9ucyB0aGVtc2VsdmVzLCB0aG9zZSBhcmUgZGVjbGFyZWQgYXMgYHN0YXRpY2AuIFRoYXQgaW1tZWRpYXRlbHkganVtcHMgb3V0IGF0IG1lIGJlY2F1c2UgdGhlIGRvY3VtZW50YXRpb24gc3BlY2lmaWNhbGx5IGFkdmlzZXMgYWdhaW5zdCB1c2luZyBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucyB3aGVyZSBwb3NzaWJsZSwgcHJlZmVycmluZyBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMuIFRoZSByZWFzb24gaXMgcHJldHR5IGNsZWFyIOKAkyB0aG9zZSBzdGF0aWMgZnVuY3Rpb25zIGFyZSBvZnRlbiBpbmxpbmVkLCBhbmQgZG9uJiMzOTt0IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcy4KCk5vdywgYHN0bW1hY194bWl0YCBpcyAqdGVjaG5pY2FsbHkqIHN0YXRpYywgYnV0IGl0JiMzOTtzIGFzc2lnbmVkIHRvIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQgYWxvbmUgdGVsbHMgbWUgaXQmIzM5O3MgKm5vdCogaW5saW5lZCwgYmVjYXVzZSBpdHMgYWRkcmVzcyBpcyBiZWluZyB0YWtlbi4gVGhlIHNhbWUgbG9naWMgbGlrZWx5IGFwcGxpZXMgdG8gYHN0bW1hY19vcGVuYCwgYHN0bW1hY19uYXBpX3BvbGxfdHhgLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAuICBXZSBjYW4gZWFzaWx5IHZlcmlmeSB0aGF0IGJ5IGxpc3RpbmcgdGhlbSwganVzdCB0byBiZSBzdXJlLgoKTmV4dCBzdGVwOiBsZXQmIzM5O3MgdmVyaWZ5IHRoZSBLY29uZmlnIG9wdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gZW5hYmxlIHRoaXMuIFRoZSBkcml2ZXImIzM5O3MgYFNUTU1BQ19FVEhgLCBzbyBsZXQmIzM5O3MgY2hlY2sgdGhlIHJlbGV2YW50IGBLY29uZmlnYCBmaWxlIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNUTU1BQ19FVEgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE2NDUKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqSW5pdGlhbCBBc3Nlc3NtZW50KioKClJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gaWRlbnRpZnkgdGhlIGRlcGVuZGVuY2llcy4gV2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhIHN5c3RlbSwgYSBwcm9jZXNzLCBhIHByb2JsZW0g4oCTIHdoYXRldmVyICYjMzQ7aXQmIzM0OyBpcyDigJMgYW5kIHVuZGVyc3RhbmRpbmcgdGhlIGZvdW5kYXRpb25hbCBlbGVtZW50cyBpcyBwYXJhbW91bnQuIFdoYXQgYXJlIHRoZSBrZXkgdmFyaWFibGVzPyBUaGUgY29yZSBpbnB1dHM/IFRoZSB1bmRlcmx5aW5nIGFzc3VtcHRpb25zPyBQaW5wb2ludGluZyB0aGVzZSBkZXBlbmRlbmNpZXMgaXMgdGhlIGVzc2VudGlhbCBmaXJzdCBzdGVwIHRvIGFueSBlZmZlY3RpdmUgYW5hbHlzaXMuIFdoZXJlIGRvIHdlIGJlZ2luIHRvIHVucmF2ZWwgY29tcGxleGl0eT8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDpcdGRlcGVuZHMgb24gSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiBIQVNfRE1BXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjU6XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY6XHRkZXBlbmRzIG9uIEVUSFRPT0xfTkVUTElOS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy03LVx0c2VsZWN0IE1JSVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjA9Y29uZmlnIFNUTU1BQ19TRUxGVEVTVFNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXHRib29sIFwmIzM0O1N1cHBvcnQgZm9yIFNUTU1BQyBTZWxmdGVzdHNcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI6XHRkZXBlbmRzIG9uIElORVRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjMtXHRkZWZhdWx0IG5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTQ0PWNvbmZpZyBEV01BQ19EV0NfUU9TX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDctXHRzZWxlY3QgTUlJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQ4Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgSEFTX0RNQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy00OS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTYwPWNvbmZpZyBEV01BQ19BTkFSSU9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Mi1cdGRlZmF1bHQgQVJDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjYzOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQyB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY0LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Njk9Y29uZmlnIERXTUFDX0VJQzc3MDBcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzAtXHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBFc3dpbiBlaWM3NzAwIGV0aGVybmV0IGRyaXZlclwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo3MTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IEFSQ0hfRVNXSU4gfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTcyLVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Nzg9Y29uZmlnIERXTUFDX0lOR0VOSUNcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTgwLVx0ZGVmYXVsdCBNQUNIX0lOR0VOSUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODE6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiBIQVNfSU9NRU0gXHUwMDI2XHUwMDI2IChNQUNIX0lOR0VOSUMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04Mi1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz05MD1jb25maWcgRFdNQUNfSVBRODA2WFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTItXHRkZWZhdWx0IEFSQ0hfUUNPTVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5MzpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1FDT00gfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05NC1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMDY9Y29uZmlnIERXTUFDX0xQQzE4WFhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEwOC1cdGRlZmF1bHQgQVJDSF9MUEMxOFhYXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEwOTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0xQQzE4WFggfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTAtXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTUtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDI3eHggR01BQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE3LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTIyPWNvbmZpZyBEV01BQ19NRVNPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI0LVx0ZGVmYXVsdCBBUkNIX01FU09OXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyNTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IENPTU1PTl9DTEsgXHUwMDI2XHUwMDI2IChBUkNIX01FU09OIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI2LVx0aGVscFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTMzPWNvbmZpZyBEV01BQ19OVVZPVE9OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMzUtXHRkZWZhdWx0IEFSQ0hfTUEzNVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzY6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9NQTM1IHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTM3LVx0c2VsZWN0IE1GRF9TWVNDT05cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE0NT1jb25maWcgRFdNQUNfUUNPTV9FVEhRT1Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0Ny1cdGRlZmF1bHQgQVJDSF9RQ09NXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0ODpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1FDT00gfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDktXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1Ny1cdGRlZmF1bHQgQVJDSF9SRU5FU0FTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE1ODpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1JFTkVTQVMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTktXHRzZWxlY3QgUENTX1JaTjFfTUlJQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTY4PWNvbmZpZyBEV01BQ19ST0NLQ0hJUFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTcwLVx0ZGVmYXVsdCBBUkNIX1JPQ0tDSElQXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE3MTpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1JPQ0tDSElQIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTcyLVx0c2VsZWN0IE1GRF9TWVNDT05cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE3OT1jb25maWcgRFdNQUNfUlpOMVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTgxLVx0ZGVmYXVsdCBBUkNIX1JaTjFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTgyOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfUlpOMSB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4My1cdHNlbGVjdCBQQ1NfUlpOMV9NSUlDXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTkzLVx0ZGVmYXVsdCBBUkNIX1MzMlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxOTQ6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9TMzIgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTUtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMDM9Y29uZmlnIERXTUFDX1NPQ0ZQR0Fcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwNS1cdGRlZmF1bHQgQVJDSF9JTlRFTF9TT0NGUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDctXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjE4PWNvbmZpZyBEV01BQ19TT1BIR09cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE5LVx0dHJpc3RhdGUgXCYjMzQ7U29waGdvIGR3bWFjIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjIwOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU09QSEdPIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjIxLVx0ZGVmYXVsdCBtIGlmIEFSQ0hfU09QSEdPXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMjk9Y29uZmlnIERXTUFDX1NQQUNFTUlUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIzMC1cdHRyaXN0YXRlIFwmIzM0O1NwYWNlbWl0IGR3bWFjIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjMxOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU1BBQ0VNSVQgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzItXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjQxPWNvbmZpZyBEV01BQ19TVEFSRklWRVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDItXHR0cmlzdGF0ZSBcJiMzNDtTdGFyRml2ZSBkd21hYyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MzpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjQ0LVx0c2VsZWN0IE1GRF9TWVNDT05cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI1Mz1jb25maWcgRFdNQUNfU1RJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTUtXHRkZWZhdWx0IEFSQ0hfU1RJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI1NjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1NUSSB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1Ny1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjctXHRkZWZhdWx0IEFSQ0hfU1RNMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjY4Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiAoQVJDSF9TVE0zMiB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2OS1cdHNlbGVjdCBNRkRfU1lTQ09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNzc9Y29uZmlnIERXTUFDX1NVTlhJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzktXHRkZWZhdWx0IEFSQ0hfU1VOWElcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjgwOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU1VOWEkgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODEtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yODg9Y29uZmlnIERXTUFDX1NVTjhJXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTAtXHRkZWZhdWx0IEFSQ0hfU1VOWElcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjkxOlx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfU1VOWEkgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOTItXHRzZWxlY3QgTURJT19CVVNfTVVYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzAyLVx0ZGVmYXVsdCBBUkNIX1NVTlhJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMwMzpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzA0LVx0c2VsZWN0IE1ESU9fQlVTX01VWFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzEyPWNvbmZpZyBEV01BQ19USEVBRFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTMtXHR0cmlzdGF0ZSBcJiMzNDtULUhFQUQgZHdtYWMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTQ6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9USEVBRCB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxNS1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMyMj1jb25maWcgRFdNQUNfSU1YOFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI0LVx0ZGVmYXVsdCBBUkNIX01YQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMjU6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiAoQVJDSF9NWEMgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjYtXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMzNS1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIGR3bWFjIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzM2Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgQ09NTU9OX0NMS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzctXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNDQ9Y29uZmlnIERXTUFDX0xPT05HU09OMVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQ2LVx0ZGVmYXVsdCBNQUNIX0xPT05HU09OMzJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ3Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKE1BQ0hfTE9PTkdTT04zMiB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM1NT1jb25maWcgRFdNQUNfVEVHUkFcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzU2LVx0dHJpc3RhdGUgXCYjMzQ7TlZJRElBIFRlZ3JhIE1HQkUgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNTc6XHRkZXBlbmRzIG9uIEFSQ0hfVEVHUkEgfHwgQ09NUElMRV9URVNUXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM2ND1jb25maWcgRFdNQUNfVklTQ09OVElcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2Ni1cdGRlZmF1bHQgQVJDSF9WSVNDT05USVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNjc6XHRkZXBlbmRzIG9uIE9GIFx1MDAyNlx1MDAyNiBDT01NT05fQ0xLIFx1MDAyNlx1MDAyNiAoQVJDSF9WSVNDT05USSB8fCBDT01QSUxFX1RFU1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM2OC1cdGhlbHBcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3OD1jb25maWcgRFdNQUNfSU5URUxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4MC1cdGRlZmF1bHQgWDg2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4MTpcdGRlcGVuZHMgb24gWDg2IFx1MDAyNlx1MDAyNiBQQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgyOlx0ZGVwZW5kcyBvbiBDT01NT05fQ0xLXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4MzpcdGRlcGVuZHMgb24gQUNQSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODQtXHRoZWxwXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTAtXHRkZWZhdWx0IE1BQ0hfTE9PTkdTT042NFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTE6XHRkZXBlbmRzIG9uIChNQUNIX0xPT05HU09ONjQgfHwgQ09NUElMRV9URVNUKSBcdTAwMjZcdTAwMjYgUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5MjpcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTMtXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk5LVx0dHJpc3RhdGUgXCYjMzQ7TW90b3Jjb21tIFBDSSBEV01BQyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwMDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwMS1cdHNlbGVjdCBNT1RPUkNPTU1fUEhZXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00MDc9Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDk6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MTA6XHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDExLVx0c2VsZWN0IFNUTU1BQ19MSUJQQ0lcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzY0NjgKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA0OTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhpcyBTVE1NQUMgZHJpdmVyIGNvbmZpZ3VyYXRpb24uIFRoZSBtYWluIGZvY3VzIGhlcmUgc2VlbXMgdG8gYmUgYFNUTU1BQ19FVEhgLiBUaGF0JiMzOTtzIHRoZSBjb3JlLCBidXQgdGhpcyBwYXRjaCBhbHNvIHRvdWNoZXMgYGFyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lgLCB3aGljaCBpbW1lZGlhdGVseSBzdWdnZXN0cyBpdCYjMzk7cyBiZWluZyB1c2VkIG9uIEludGVsIFNPQ0ZQR0FzLiBTbywgYERXTUFDX1NPQ0ZQR0FgIGNvbWVzIGludG8gcGxheS4KClRoZSBjcnVjaWFsIHBhcnQgaXMgdGhlIGNoYW5nZSB3aXRoaW4gYHN0bW1hY19tYWluLmNgLCBhbmQgdGhhdCYjMzk7cyBnb3Zlcm5lZCBieSBgU1RNTUFDX0VUSGAuIE5vdywgYFNUTU1BQ19FVEhgIGl0c2VsZiBkZXBlbmRzIG9uIGBIQVNfSU9NRU0gJmFtcDsmYW1wOyBIQVNfRE1BICZhbXA7JmFtcDsgUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUwgJmFtcDsmYW1wOyBFVEhUT09MX05FVExJTktgLiBUbyB0ZXN0IHRoaXMgcHJvcGVybHksIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRyaXZlciBub3Qgb25seSBjb21waWxlcyBidXQgKnByb2JlcyogY29ycmVjdGx5LgoKSW5pdGlhbGx5LCBJIHRob3VnaHQgZW5hYmxpbmcgYFNUTU1BQ19FVEhgIGFuZCBwb3NzaWJseSBgRFdNQUNfU09DRlBHQWAsIGBTVE1NQUNfUENJYCwgb3IgYERXTUFDX0lOVEVMYCB3b3VsZCBiZSBzdWZmaWNpZW50IGZvciBjb21wcmVoZW5zaXZlIHRlc3RpbmcsIGNvdmVyaW5nIHRoZSBjb21waWxhdGlvbiBhbmQgcHJvYmluZyBhc3BlY3QuIEJ1dCB0aGVuIEkgcmVhbGl6ZWQgYFNUTU1BQ19FVEhgIGlzIGVub3VnaCB0byBjb21waWxlIHRoZSBkcml2ZXIgY29yZS4gVGhlIHByb2JlIGlzIHdoYXQgcmVsaWVzIG9uIGEgcGxhdGZvcm0gb3IgUENJIGRyaXZlci4KCkdpdmVuIFBDSSBkZXZpY2VzIGFyZSBlYXNpbHkgZW11bGF0ZWQgb3IgcHJvYmVkIHdpdGhpbiBzeXprYWxsZXIsIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNlZW0gbGlrZSBhIGRlY2VudCBjb21iaW5hdGlvbiBmb3IgY29tcGlsZS1hbmQtcHJvYmUgdGVzdGluZy4gSSBuZWVkIHRvIGtlZXAgaW4gbWluZCB0aGF0IGBEV01BQ19TT0NGUEdBYCByZWxpZXMgb24gYEFSQ0hfSU5URUxfU09DRlBHQSB8fCBDT01QSUxFX1RFU1RgLCB3aGljaCBpc24mIzM5O3QgZXNzZW50aWFsIGZvciBqdXN0IGJ1aWxkaW5nIGFuZCB0ZXN0aW5nIHRoZSBkcml2ZXIuIFNvLCBzdGlja2luZyB3aXRoIGBTVE1NQUNfRVRIYCBhbmQgYFNUTU1BQ19QQ0lgIHNob3VsZCBkby4KCkEgY3J1Y2lhbCBwb2ludCBub3cgaXMgdGhlIGB0eF9idWZfcXVpcmtgLiBUaGlzIGlzIHNldCB3aXRoaW4gYHN0bW1hY19wbGF0Zm9ybS5jYC4gSXMgdGhhdCBmaWxlIGV2ZW4gYmVpbmcgY29tcGlsZWQ/IEEgcXVpY2sgY2hlY2sgcmV2ZWFscyBgb2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSkgJiM0Mzs9IHN0bW1hYy1wbGF0Zm9ybS5vYC4gYFNUTU1BQ19QTEFURk9STWAgaXMgc2VsZWN0ZWQgYnkgYWxsIHBsYXRmb3JtIGRyaXZlcnMuIFNvLCBJIG5lZWQgdG8gZW5hYmxlIGBTVE1NQUNfUExBVEZPUk1gIG9yIG9uZSBvZiB0aGUgcGxhdGZvcm0gZHJpdmVycyB0byBlbnN1cmUgYHN0bW1hY19wbGF0Zm9ybS5jYCBnZXRzIGluY2x1ZGVkLgoKTXkgZmluYWwgbGlzdCBmb3IgdGVzdGluZyB3aWxsIGluY2x1ZGUgYFNUTU1BQ19FVEhgLCBgU1RNTUFDX1BMQVRGT1JNYCwgYW5kIGBEV01BQ19TT0NGUEdBYC4gQW5kLCB5ZXMsIGBTVE1NQUNfUExBVEZPUk1gIGlzIGEgY29uZmlnIG9wdGlvbiBpbiBpdHMgb3duIHJpZ2h0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgU1RNTUFDX1BMQVRGT1JNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwPWNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk6Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQbGF0Zm9ybSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzY5MwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDEzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDdXJyZW50IEFzc2Vzc21lbnQgb2YgdGhlIFNUTU1BQyBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGF0IGBTVE1NQUNfUExBVEZPUk1gIGlzIGluZGVlZCBhIHRyaXN0YXRlIG9wdGlvbi4gVGhhdCBtZWFucywgdG8gY29ycmVjdGx5IGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG15IGBFbmFibGVDb25maWdzYCBsaXN0IG5lZWRzIHRvIGluY2x1ZGU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCwgZ2l2ZW4gdGhlIERldmljZSBUcmVlIGNoYW5nZSwgYERXTUFDX1NPQ0ZQR0FgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZC4KCkJ1dCBoYW5nIG9u4oCmIHRoaXMgbmV3ICYjMzQ7cGFnZSBwb29sJiMzNDsgZmVhdHVyZeKApiBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGRlcGVuZGVudCBvbiBgUEFHRV9QT09MYC4gTm93LCB0aGUgY3J1Y2lhbCBxdWVzdGlvbjogaXMgYFBBR0VfUE9PTGAgYXV0b21hdGljYWxseSBzZWxlY3RlZCBzb21ld2hlcmUsIG9yIGRvIEkgbmVlZCB0byBleHBsaWNpdGx5IGVuYWJsZSBpdD8gTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IGluIGBuZXQvY29yZS9LY29uZmlnYCBvciBhIHNpbWlsYXIgY29uZmlndXJhdGlvbiBmaWxlLCB0aGUgdXN1YWwgbG9jYXRpb24gZm9yIHRoZXNlIGRlcGVuZGVuY2llcy4gSSYjMzk7bSBmYWlybHkgY2VydGFpbiB0aGUgc3RhbmRhcmQgYmVoYXZpb3IgaXMgZm9yIGBQQUdFX1BPT0xgIHRvIGJlICpzZWxlY3RlZCogYnkgZHJpdmVycyB0aGF0IHJlcXVpcmUgaXQuCgpOb3csIGEgY3JpdGljYWwgcG9pbnQsIGFuZCBJIG5lZWQgdG8gYmUgY2VydGFpbiBhYm91dCB0aGlzOiBkb2VzIGBTVE1NQUNfRVRIYCBpdHNlbGYgc2VsZWN0IGBQQUdFX1BPT0xgPyBUaGF0JiMzOTtzIHRoZSBrZXkuIElmIGl0IGRvZXMsIHRoZW4gSSYjMzk7bSBnb29kIHRvIGdvLiBJZiBub3QsIEkmIzM5O2xsIG5lZWQgdG8gZXhwbGljaXRseSBhZGQgYFBBR0VfUE9PTGAgdG8gdGhlIGNvbmZpZ3VyYXRpb24sIG9yIHRyYWNlIHRoZSBkZXBlbmRlbmN5IGNoYWluIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhlIHNlbGVjdGlvbiBzaG91bGQgaGFwcGVuLiBUaGlzIHdpbGwgZGV0ZXJtaW5lIGlmIHRoZSBjb25maWd1cmF0aW9uIGlzIGNvbXBsZXRlIGFuZCBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAwNzoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtQQUdFX1BPT0wmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mj1jb25maWcgU1RNTUFDX0VUSFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOC1cdHNlbGVjdCBQQ1NfWFBDU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo5Olx0c2VsZWN0IFBBR0VfUE9PTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMC1cdHNlbGVjdCBQSFlMSU5LXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDA3OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4MjcwCgkJCQkJCQlvdXRwdXQ6IDIyNQoJCQkJCQkJdGhvdWdodHM6IDk1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgc3RtbWFjIERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBJJiMzOTt2ZSBnb3QgdGhpcy4gRmlyc3QsIHRoZSBwYXRjaCBzZWxlY3RzIGBQQUdFX1BPT0xgLCB0aGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTGV0JiMzOTtzIGRpZyBpbiBhbmQgcmV2aWV3IHRob3NlIGZvY3VzIHN5bWJvbHM6IGBzdG1tYWNfeG1pdGAsIGBzdG1tYWNfb3BlbmAsIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCwgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgLgoKTm93LCB3YWl0IGEgbWludXRlLCBgc3RtbWFjX3htaXRgIGlzIHN0YXRpYywgd2hpY2ggaXMgdXN1YWxseSBhIHJlZCBmbGFnLiBCdXQsIGhhbmcgb24sIGl0JiMzOTtzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgd2hpY2ggbWVhbnMgaXQgaXNuJiMzOTt0IGlubGluZWQhIFRoYXQmIzM5O3MgcGVyZmVjdDsgaXQgaGFzIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MgYW5kLCB0aGVyZWZvcmUsIGlzIGEgdmFsaWQgZW50cnkgcG9pbnQuIFRoZSBzYW1lIGdvZXMgZm9yIGBzdG1tYWNfb3BlbmAgKGFzc2lnbmVkIHRvIGBuZG9fb3BlbmApLCBgc3RtbWFjX25hcGlfcG9sbF90eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZF90eGApLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZGApLiBFeGNlbGxlbnQuIExldCYjMzk7cyBqdXN0IGRvdWJsZS1jaGVjayB0aGUgbmFtZXMgYWdhaW4gaW4gYHN0bW1hY19tYWluLmNgOiBgc3RtbWFjX3htaXRgLCBgc3RtbWFjX29wZW5gLCBgc3RtbWFjX25hcGlfcG9sbF90eGAsIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCDigJMgYWxsIGNvcnJlY3QuCgpBaGEsIGFuZCBgc3RtbWFjX29wZW5gIGNhbGxzIGBfX3N0bW1hY19vcGVuYCwgd2hpY2ggaW4gdHVybiBjYWxscyBgYWxsb2NfZG1hX2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggdGhlbiBjYWxscyBgYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggZXZlbnR1YWxseSBjYWxscyBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgLiBOaWNlLCB0aGF0IGNvbmZpcm1zIHRoYXQgYHN0bW1hY19vcGVuYCBpcyBhIHNvbGlkIGVudHJ5IHBvaW50LCBhbmQgdGhhdCBjb3ZlcnMgdGhlIGFsbG9jYXRpb24uIEFuZCBgc3RtbWFjX3htaXRgIGlzIHRoZSB0cmFuc21pdCBlbnRyeSBwb2ludC4gYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCBldmVudHVhbGx5IGNhbGwgYHN0bW1hY190eF9jbGVhbmAsIHdoaWNoIGNhbGxzIGBzdG1tYWNfZnJlZV90eF9idWZmZXJgLiBTbyB0aGF0IGNvbmZpcm1zIHRob3NlIGNvdmVyIHRoZSBjbGVhbnVwIGFuZCB0cmFuc21pdCBwYXRocy4gVGhpcyBjb3ZlcnMgYWxsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzLCBzbyB3ZSBoYXZlIGdvb2QgY292ZXJhZ2UuCgpOb3csIGNhbiB3ZSBhY3R1YWxseSBoaXQgdGhpcyBpbiBRRU1VPyBIbW0sIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGUgc3BlY2lmaWMgYHNvY2ZwZ2FfYWdpbGV4NWAgZGV2aWNlIGRpcmVjdGx5LCBidXQgaXQgZG9lcyBoYXZlIGVtdWxhdGlvbiBmb3IgYG5wY203eHhgICh3aGljaCBoYXMgYW4gRU1DKSwgYW5kIGBhbGx3aW5uZXItc3VuOGktZW1hY2AsIGFuZCBgaHcvbmV0L2Rlc2lnbndhcmUuY2AsIHdoaWNoIGlzIHRoZSBEZXNpZ25XYXJlIE1BQyAoRFdNQUMpLiBBbmQgdGhlIGBzdG1tYWNgIGRyaXZlciAqaXMqIHRoZSBkcml2ZXIgZm9yIERlc2lnbldhcmUgTUFDLiBTbywgeWVzLCB3ZSBjYW4gcmVhY2ggaXQgdmlhIHRoZSBgZGVzaWdud2FyZWAgbmV0d29yayBkZXZpY2UgZW11bGF0aW9uLiBBbmQgZXZlbiBiZXR0ZXIsIHN5emthbGxlciBjYW4gZnV6eiBQQ0kgZGV2aWNlcywgYW5kIGBzdG1tYWNgIGhhcyBhIFBDSSBiaW5kaW5nIChgU1RNTUFDX1BDSWApLiBFdmVuIHRob3VnaCB0aGlzIHF1aXJrIGlzIGVuYWJsZWQgdmlhIHRoZSBEVCwgdGhlIHBhZ2UgcG9vbCBhbGxvY2F0aW9uIGluIGBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgaXMgdW5jb25kaXRpb25hbCBhbmQgYWZmZWN0cyBhbGwgYHN0bW1hY2AgZGV2aWNlcywgaW5jbHVkaW5nIFBDSSBvbmVzLiBTbywgdGhlIGNvcmUgY2hhbmdlcyBhcmUgYWJzb2x1dGVseSByZWFjaGFibGUgYW5kIGZ1bmN0aW9uYWwuCgpPa2F5LCBsZXQgbWUgc3VtbWFyaXplIG15IGZpbmRpbmdzOgoKKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKioKCiogICAqKkZvY3VzU3ltYm9sczoqKgoKICAgICogICBgc3RtbWFjX3htaXRgCiAgICAqICAgYHN0bW1hY19vcGVuYAogICAgKiAgIGBzdG1tYWNfbmFwaV9wb2xsX3R4YAogICAgKiAgIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgCgoqICAgKipFbmFibGVDb25maWdzOioqCgogICAgKiAgIGBTVE1NQUNfRVRIYAogICAgKiAgIGBTVE1NQUNfUExBVEZPUk1gCiAgICAqICAgYERXTUFDX1NPQ0ZQR0FgCiAgICAqICAgYFNUTU1BQ19QQ0lgCgoqICAgKipSZWFzb25pbmc6KiogVGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBieSB1bmNvbmRpdGlvbmFsbHkgYWxsb2NhdGluZyBhIHBhZ2UgcG9vbCBmb3IgZXZlcnkgVFggcXVldWUgaW4gdGhlIGBzdG1tYWNgIGRyaXZlciBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKGBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2ApLiBJdCBhbHNvIG1vZGlmaWVzIHRoZSB0cmFuc21pdCBwYXRoIChgc3RtbWFjX3htaXRgKSBhbmQgY2xlYW51cCBwYXRoIChgc3RtbWFjX3R4X2NsZWFuYCkgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYCkgaXMgZW5hYmxlZC4gVGhlIGNvcmUgZHJpdmVyIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgbmV0d29yayBvcGVyYXRpb25zIChvcGVuLCB4bWl0LCBOQVBJIHBvbGwpIGFuZCBhZmZlY3QgbWVtb3J5IGFsbG9jYXRpb24gZm9yIGFsbCBkZXZpY2VzIHVzaW5nIHRoaXMgZHJpdmVyLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4KCkp1c3QgbmVlZCB0byB2ZXJpZnkgdGhvc2UgY29uZmlnIG5hbWVzIG9uZSBtb3JlIHRpbWU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGBEV01BQ19TT0NGUEdBYCwgYW5kIGBTVE1NQUNfUENJYC4gWWVwLCBhbGwgY29ycmVjdC4gVGhhdCYjMzk7cyBhIGdyZWVuIGxpZ2h0Cgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMDc6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NUTU1BQ19FVEgmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BMQVRGT1JNJiMzNDssCiAgICAmIzM0O0RXTUFDX1NPQ0ZQR0EmIzM0OywKICAgICYjMzQ7U1RNTUFDX1BDSSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3N0bW1hY194bWl0JiMzNDssCiAgICAmIzM0O3N0bW1hY19vcGVuJiMzNDssCiAgICAmIzM0O3N0bW1hY19uYXBpX3BvbGxfdHgmIzM0OywKICAgICYjMzQ7c3RtbWFjX25hcGlfcG9sbF9yeHR4JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBieSB1bmNvbmRpdGlvbmFsbHkgYWxsb2NhdGluZyBhIHBhZ2UgcG9vbCBmb3IgZXZlcnkgVFggcXVldWUgaW4gdGhlIHN0bW1hYyBkcml2ZXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLiBJdCBhbHNvIG1vZGlmaWVzIHRoZSB0cmFuc21pdCBwYXRoIChzdG1tYWNfeG1pdCkgYW5kIGNsZWFudXAgcGF0aCAoc3RtbWFjX3R4X2NsZWFuKSB0byB1c2UgdGhlc2UgcGFnZSBwb29scyB3aGVuIGEgbmV3IGRldmljZSB0cmVlIHF1aXJrIChzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaykgaXMgZW5hYmxlZC4gVGhlIGNvcmUgZHJpdmVyIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSB2aWEgc3RhbmRhcmQgbmV0d29yayBvcGVyYXRpb25zIChvcGVuLCB4bWl0LCBOQVBJIHBvbGwpIGFuZCBhZmZlY3QgbWVtb3J5IGFsbG9jYXRpb24gZm9yIGFsbCBkZXZpY2VzIHVzaW5nIHRoaXMgZHJpdmVyLCBtYWtpbmcgaXQgd29ydGggZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U1RNTUFDX0VUSCYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUExBVEZPUk0mIzM0OywKICAgICYjMzQ7RFdNQUNfU09DRlBHQSYjMzQ7LAogICAgJiMzNDtTVE1NQUNfUENJJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c3RtbWFjX3htaXQmIzM0OywKICAgICYjMzQ7c3RtbWFjX29wZW4mIzM0OywKICAgICYjMzQ7c3RtbWFjX25hcGlfcG9sbF90eCYjMzQ7LAogICAgJiMzNDtzdG1tYWNfbmFwaV9wb2xsX3J4dHgmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGJ5IHVuY29uZGl0aW9uYWxseSBhbGxvY2F0aW5nIGEgcGFnZSBwb29sIGZvciBldmVyeSBUWCBxdWV1ZSBpbiB0aGUgc3RtbWFjIGRyaXZlciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uIEl0IGFsc28gbW9kaWZpZXMgdGhlIHRyYW5zbWl0IHBhdGggKHN0bW1hY194bWl0KSBhbmQgY2xlYW51cCBwYXRoIChzdG1tYWNfdHhfY2xlYW4pIHRvIHVzZSB0aGVzZSBwYWdlIHBvb2xzIHdoZW4gYSBuZXcgZGV2aWNlIHRyZWUgcXVpcmsgKHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrKSBpcyBlbmFibGVkLiBUaGUgY29yZSBkcml2ZXIgY2hhbmdlcyBhcmUgcmVhY2hhYmxlIHZpYSBzdGFuZGFyZCBuZXR3b3JrIG9wZXJhdGlvbnMgKG9wZW4sIHhtaXQsIE5BUEkgcG9sbCkgYW5kIGFmZmVjdCBtZW1vcnkgYWxsb2NhdGlvbiBmb3IgYWxsIGRldmljZXMgdXNpbmcgdGhpcyBkcml2ZXIsIG1ha2luZyBpdCB3b3J0aCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6MzUuOTc3MjY2NzM2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk1NzM1MTA4NzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI1OjM1Ljk3NzI3NDkxNloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU1ODQ1MDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGMzNTZmZWFmMzk1ZjllM2ZjODU2MmMxNDc4MGExZGVhZjcwMDczYlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDA3OjI1OjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcXG5pbmRleCAyNDQ5MzExYzZkMjhlLi43MzA0NTUxMTQ0NmZkIDEwMDY0NFxcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sXFxuKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWxcXG5AQCAtNTQ1LDYgKzU0NSwxNCBAQCBwcm9wZXJ0aWVzOlxcbiAgICAgICBFbmFibGVzIHRoZSBUU08gZmVhdHVyZSBvdGhlcndpc2UgaXQgd2lsbCBiZSBtYW5hZ2VkIGJ5IE1BQyBIVyBjYXBhYmlsaXR5XFxuICAgICAgIHJlZ2lzdGVyLlxcbiBcXG4rICBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyazpcXG4rICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRpb25zL2ZsYWdcXG4rICAgIGRlc2NyaXB0aW9uOlxcbisgICAgICBFbmFibGUgdXNlIG9mIHBhZ2UgcG9vbCBidWZmZXJzIGluc3RlYWQgb2Ygc3RyZWFtaW5nIGJ1ZmZlcnMgZm9yIHRyYW5zbWl0LlxcbisgICAgICBUaGlzIGF2b2lkcyBJT01NVSBpbnZhbGlkYXRlIHdhaXQgdGltZSBvbiBwbGF0Zm9ybXMgd2hlcmUgdGhhdCBjb3N0IGlzXFxuKyAgICAgIGhpZ2gsIHdpdGggdGhlIHRyYWRlLW9mZiBvZiBjb3B5aW5nIGRhdGEgZnJvbSB0aGUgc2tiIGludG8gZG1hLW1hcHBlZFxcbisgICAgICBwYWdlIHBvb2wgYnVmZmVycy5cXG4rXFxuICAgbWRpbzpcXG4gICAgICRyZWY6IG1kaW8ueWFtbCNcXG4gICAgIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2VcXG5kaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaSBiL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcXG5pbmRleCBmNTQ3NjdkMTUyNmUxLi40Y2U0ZmEwOTEzODUyIDEwMDY0NFxcbi0tLSBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2lcXG4rKysgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpXFxuQEAgLTYwNSw2ICs2MDUsNyBAQCBnbWFjMDogZXRoZXJuZXRAMTA4MTAwMDAge1xcbiBcXHRcXHRcXHRzbnBzLG10bC10eC1jb25maWcgPSBcXHUwMDNjXFx1MDAyNm10bF90eF9lbWFjMF9zZXR1cFxcdTAwM2U7XFxuIFxcdFxcdFxcdHNucHMscGJsID0gXFx1MDAzYzMyXFx1MDAzZTtcXG4gXFx0XFx0XFx0c25wcyx0c287XFxuK1xcdFxcdFxcdHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrO1xcbiBcXHRcXHRcXHRhbHRyLHN5c21nci1zeXNjb24gPSBcXHUwMDNjXFx1MDAyNnN5c21nciAweDQ0IDBcXHUwMDNlO1xcbiBcXHRcXHRcXHRzbnBzLGNsay1jc3IgPSBcXHUwMDNjMFxcdTAwM2U7XFxuIFxcdFxcdFxcdGlvbW11cyA9IFxcdTAwM2NcXHUwMDI2c21tdSAxXFx1MDAzZTtcXG5AQCAtNzUxLDYgKzc1Miw3IEBAIGdtYWMxOiBldGhlcm5ldEAxMDgyMDAwMCB7XFxuIFxcdFxcdFxcdHNucHMsbXRsLXR4LWNvbmZpZyA9IFxcdTAwM2NcXHUwMDI2bXRsX3R4X2VtYWMxX3NldHVwXFx1MDAzZTtcXG4gXFx0XFx0XFx0c25wcyxwYmwgPSBcXHUwMDNjMzJcXHUwMDNlO1xcbiBcXHRcXHRcXHRzbnBzLHRzbztcXG4rXFx0XFx0XFx0c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms7XFxuIFxcdFxcdFxcdGFsdHIsc3lzbWdyLXN5c2NvbiA9IFxcdTAwM2NcXHUwMDI2c3lzbWdyIDB4NDggMFxcdTAwM2U7XFxuIFxcdFxcdFxcdHNucHMsY2xrLWNzciA9IFxcdTAwM2MwXFx1MDAzZTtcXG4gXFx0XFx0XFx0aW9tbXVzID0gXFx1MDAzY1xcdTAwMjZzbW11IDJcXHUwMDNlO1xcbkBAIC04OTcsNiArODk5LDcgQEAgZ21hYzI6IGV0aGVybmV0QDEwODMwMDAwIHtcXG4gXFx0XFx0XFx0c25wcyxtdGwtdHgtY29uZmlnID0gXFx1MDAzY1xcdTAwMjZtdGxfdHhfZW1hYzJfc2V0dXBcXHUwMDNlO1xcbiBcXHRcXHRcXHRzbnBzLHBibCA9IFxcdTAwM2MzMlxcdTAwM2U7XFxuIFxcdFxcdFxcdHNucHMsdHNvO1xcbitcXHRcXHRcXHRzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaztcXG4gXFx0XFx0XFx0YWx0cixzeXNtZ3Itc3lzY29uID0gXFx1MDAzY1xcdTAwMjZzeXNtZ3IgMHg0YyAwXFx1MDAzZTtcXG4gXFx0XFx0XFx0c25wcyxjbGstY3NyID0gXFx1MDAzYzBcXHUwMDNlO1xcbiBcXHRcXHRcXHRpb21tdXMgPSBcXHUwMDNjXFx1MDAyNnNtbXUgM1xcdTAwM2U7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcXG5pbmRleCA4YmE4ZjAzZTFjZTAzLi4wOTNjMDUyYjQ5MDgyIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcXG5AQCAtNDEsNiArNDEsNyBAQCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyB7XFxuIFxcbiBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHtcXG4gXFx0U1RNTUFDX1RYQlVGX1RfU0tCLFxcbitcXHRTVE1NQUNfVFhCVUZfVF9ETUEsXFxuIFxcdFNUTU1BQ19UWEJVRl9UX1hEUF9UWCxcXG4gXFx0U1RNTUFDX1RYQlVGX1RfWERQX05ETyxcXG4gXFx0U1RNTUFDX1RYQlVGX1RfWFNLX1RYLFxcbkBAIC00OSw2ICs1MCw3IEBAIGVudW0gc3RtbWFjX3R4YnVmX3R5cGUge1xcbiBzdHJ1Y3Qgc3RtbWFjX3R4X2luZm8ge1xcbiBcXHRzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhX2NvbXBsIHhza19tZXRhO1xcbiBcXHRkbWFfYWRkcl90IGJ1ZjtcXG4rXFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuIFxcdHVuc2lnbmVkIGxlbjtcXG4gXFx0ZW51bSBzdG1tYWNfdHhidWZfdHlwZSBidWZfdHlwZTtcXG4gXFx0Ym9vbCBtYXBfYXNfcGFnZTtcXG5AQCAtNjUsNiArNjcsNyBAQCBzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlIHtcXG4gXFx0aW50IHRicztcXG4gXFx0c3RydWN0IGhydGltZXIgdHh0aW1lcjtcXG4gXFx0dTMyIHF1ZXVlX2luZGV4O1xcbitcXHRzdHJ1Y3QgcGFnZV9wb29sICpwYWdlX3Bvb2w7XFxuIFxcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdl9kYXRhO1xcbiBcXHRzdHJ1Y3QgZG1hX2V4dGVuZGVkX2Rlc2MgKmRtYV9ldHggX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG4gXFx0c3RydWN0IGRtYV9lZGVzYyAqZG1hX2VudHg7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuaW5kZXggZWU0NGJkNmY0ZDQ4ZS4uNGFhNmIxZDE1MDdiZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xcbkBAIC0xNzEyLDcgKzE3MTIsMTAgQEAgc3RhdGljIHZvaWQgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFxuIFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZiBcXHUwMDI2XFx1MDAyNlxcbiBcXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSAhPSBTVE1NQUNfVFhCVUZfVF9YRFBfVFgpIHtcXG4tXFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXFxuK1xcdFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSlcXG4rXFx0XFx0XFx0cGFnZV9wb29sX3JlY3ljbGVfZGlyZWN0KHR4X3EtXFx1MDAzZXBhZ2VfcG9vbCxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0IHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ucGFnZSk7XFxuK1xcdFxcdGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXFxuIFxcdFxcdFxcdGRtYV91bm1hcF9wYWdlKHByaXYtXFx1MDAzZWRldmljZSxcXG4gXFx0XFx0XFx0XFx0ICAgICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmLFxcbiBcXHRcXHRcXHRcXHQgICAgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5sZW4sXFxuQEAgLTE3MzUsNyArMTczOCw4IEBAIHN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X2J1ZmZlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdFxcdHR4X3EtXFx1MDAzZXhza19mcmFtZXNfZG9uZSsrO1xcbiBcXG4gXFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZltpXSBcXHUwMDI2XFx1MDAyNlxcbi1cXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHtcXG4rXFx0ICAgICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxcbitcXHQgICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSkge1xcbiBcXHRcXHRkZXZfa2ZyZWVfc2tiX2FueSh0eF9xLVxcdTAwM2V0eF9za2J1ZmZbaV0pO1xcbiBcXHRcXHR0eF9xLVxcdTAwM2V0eF9za2J1ZmZbaV0gPSBOVUxMO1xcbiBcXHR9XFxuQEAgLTIyMDEsNiArMjIwNSw4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbiBcXG4gXFx0a2ZyZWUodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYSk7XFxuIFxcdGtmcmVlKHR4X3EtXFx1MDAzZXR4X3NrYnVmZik7XFxuK1xcdGlmICh0eF9xLVxcdTAwM2VwYWdlX3Bvb2wpXFxuK1xcdFxcdHBhZ2VfcG9vbF9kZXN0cm95KHR4X3EtXFx1MDAzZXBhZ2VfcG9vbCk7XFxuIH1cXG4gXFxuIHN0YXRpYyB2b2lkIGZyZWVfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG5AQCAtMjMzNSwxMiArMjM0MSwzMiBAQCBzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG4gXFx0XFx0XFx0XFx0XFx0IHUzMiBxdWV1ZSlcXG4ge1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXFx1MDAyNmRtYV9jb25mLVxcdTAwM2V0eF9xdWV1ZVtxdWV1ZV07XFxuK1xcdHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zIHBwX3BhcmFtcyA9IHsgMCB9O1xcbitcXHR1bnNpZ25lZCBpbnQgbnVtX3BhZ2VzO1xcbiBcXHRzaXplX3Qgc2l6ZTtcXG4gXFx0dm9pZCAqYWRkcjtcXG4rXFx0aW50IHJldDtcXG4gXFxuIFxcdHR4X3EtXFx1MDAzZXF1ZXVlX2luZGV4ID0gcXVldWU7XFxuIFxcdHR4X3EtXFx1MDAzZXByaXZfZGF0YSA9IHByaXY7XFxuIFxcbitcXHRwcF9wYXJhbXMuZmxhZ3MgPSBQUF9GTEFHX0RNQV9NQVAgfCBQUF9GTEFHX0RNQV9TWU5DX0RFVjtcXG4rXFx0cHBfcGFyYW1zLnBvb2xfc2l6ZSA9IGRtYV9jb25mLVxcdTAwM2VkbWFfdHhfc2l6ZTtcXG4rXFx0bnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLVxcdTAwM2VkbWFfYnVmX3N6LCBQQUdFX1NJWkUpO1xcbitcXHRwcF9wYXJhbXMub3JkZXIgPSBpbG9nMihudW1fcGFnZXMpO1xcbitcXHRwcF9wYXJhbXMubmlkID0gZGV2X3RvX25vZGUocHJpdi1cXHUwMDNlZGV2aWNlKTtcXG4rXFx0cHBfcGFyYW1zLmRldiA9IHByaXYtXFx1MDAzZWRldmljZTtcXG4rXFx0cHBfcGFyYW1zLmRtYV9kaXIgPSBETUFfQklESVJFQ1RJT05BTDtcXG4rXFx0cHBfcGFyYW1zLm9mZnNldCA9IDA7XFxuK1xcdHBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFO1xcbitcXG4rXFx0dHhfcS1cXHUwMDNlcGFnZV9wb29sID0gcGFnZV9wb29sX2NyZWF0ZShcXHUwMDI2cHBfcGFyYW1zKTtcXG4rXFx0aWYgKElTX0VSUih0eF9xLVxcdTAwM2VwYWdlX3Bvb2wpKSB7XFxuK1xcdFxcdHJldCA9IFBUUl9FUlIodHhfcS1cXHUwMDNlcGFnZV9wb29sKTtcXG4rXFx0XFx0dHhfcS1cXHUwMDNlcGFnZV9wb29sID0gTlVMTDtcXG4rXFx0XFx0cmV0dXJuIHJldDtcXG4rXFx0fVxcbitcXG4gXFx0dHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYSA9IGt6YWxsb2Nfb2JqcygqdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYSxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgZG1hX2NvbmYtXFx1MDAzZWRtYV90eF9zaXplKTtcXG4gXFx0aWYgKCF0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hKVxcbkBAIC0yODM2LDcgKzI4NjIsOCBAQCBzdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcXG4gXFx0XFx0ICAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8pIHtcXG4gXFx0XFx0XFx0eGRwZiA9IHR4X3EtXFx1MDAzZXhkcGZbZW50cnldO1xcbiBcXHRcXHRcXHRza2IgPSBOVUxMO1xcbi1cXHRcXHR9IGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xcbitcXHRcXHR9IGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxcbitcXHRcXHRcXHQgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpIHtcXG4gXFx0XFx0XFx0eGRwZiA9IE5VTEw7XFxuIFxcdFxcdFxcdHNrYiA9IHR4X3EtXFx1MDAzZXR4X3NrYnVmZltlbnRyeV07XFxuIFxcdFxcdH0gZWxzZSB7XFxuQEAgLTI4ODQsNyArMjkxMSwxMCBAQCBzdGF0aWMgaW50IHN0bW1hY190eF9jbGVhbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBidWRnZXQsIHUzMiBxdWV1ZSxcXG4gXFxuIFxcdFxcdGlmIChsaWtlbHkodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmIFxcdTAwMjZcXHUwMDI2XFxuIFxcdFxcdFxcdCAgIHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlICE9IFNUTU1BQ19UWEJVRl9UX1hEUF9UWCkpIHtcXG4tXFx0XFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxcbitcXHRcXHRcXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKVxcbitcXHRcXHRcXHRcXHRwYWdlX3Bvb2xfcmVjeWNsZV9kaXJlY3QodHhfcS1cXHUwMDNlcGFnZV9wb29sLFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ucGFnZSk7XFxuK1xcdFxcdFxcdGVsc2UgaWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxcbiBcXHRcXHRcXHRcXHRkbWFfdW5tYXBfcGFnZShwcml2LVxcdTAwM2VkZXZpY2UsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWYsXFxuIFxcdFxcdFxcdFxcdFxcdCAgICAgICB0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5sZW4sXFxuQEAgLTI5MjIsNyArMjk1Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxcbiBcXHRcXHRpZiAodHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfWFNLX1RYKVxcbiBcXHRcXHRcXHR0eF9xLVxcdTAwM2V4c2tfZnJhbWVzX2RvbmUrKztcXG4gXFxuLVxcdFxcdGlmICh0eF9xLVxcdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHtcXG4rXFx0XFx0aWYgKHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQiB8fFxcbitcXHRcXHQgICAgdHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKSB7XFxuIFxcdFxcdFxcdGlmIChsaWtlbHkoc2tiKSkge1xcbiBcXHRcXHRcXHRcXHRwa3RzX2NvbXBsKys7XFxuIFxcdFxcdFxcdFxcdGJ5dGVzX2NvbXBsICs9IHNrYi1cXHUwMDNlbGVuO1xcbkBAIC00NzQyLDEyICs0NzczLDE0IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiBcXHRib29sIGVuaF9kZXNjLCBoYXNfdmxhbiwgc2V0X2ljLCBpc19qdW1ibyA9IGZhbHNlO1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbiBcXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xcbitcXHRnZnBfdCBnZnAgPSBHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOO1xcbiBcXHR1MzIgcXVldWUgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKTtcXG4gXFx0aW50IG5mcmFncyA9IHNrYl9zaGluZm8oc2tiKS1cXHUwMDNlbnJfZnJhZ3M7XFxuIFxcdHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSwgdHhfcGFja2V0cztcXG4gXFx0c3RydWN0IHN0bW1hY190eHFfc3RhdHMgKnR4cV9zdGF0cztcXG4gXFx0c3RydWN0IGRtYV9kZXNjICpkZXNjLCAqZmlyc3RfZGVzYztcXG4gXFx0c3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcTtcXG4rXFx0c3RydWN0IHBhZ2UgKnR4X2J1Zl9wYWdlO1xcbiBcXHRpbnQgaSwgY3N1bV9pbnNlcnRpb24gPSAwO1xcbiBcXHRpbnQgZW50cnksIGZpcnN0X3R4O1xcbiBcXHRkbWFfYWRkcl90IGRtYV9hZGRyO1xcbkBAIC00ODE0LDEzICs0ODQ3LDMzIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbiBcXHR9IGVsc2Uge1xcbiBcXHRcXHRib29sIGxhc3Rfc2VnbWVudCA9IChuZnJhZ3MgPT0gMCk7XFxuIFxcbi1cXHRcXHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXFx1MDAzZWRldmljZSwgc2tiLVxcdTAwM2VkYXRhLFxcbi1cXHRcXHRcXHRcXHRcXHQgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTtcXG4tXFx0XFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKHByaXYtXFx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxcbi1cXHRcXHRcXHRnb3RvIGRtYV9tYXBfZXJyO1xcbitcXHRcXHRpZiAoIShsYXN0X3NlZ21lbnQgXFx1MDAyNlxcdTAwMjYgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNldHhfYnVmX3F1aXJrKSkge1xcbitcXHRcXHRcXHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXFx1MDAzZWRldmljZSwgc2tiLVxcdTAwM2VkYXRhLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTtcXG4rXFx0XFx0XFx0aWYgKGRtYV9tYXBwaW5nX2Vycm9yKHByaXYtXFx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxcbitcXHRcXHRcXHRcXHRnb3RvIGRtYV9tYXBfZXJyO1xcbiBcXG4tXFx0XFx0c3RtbWFjX3NldF90eF9za2JfZG1hX2VudHJ5KHR4X3EsIGZpcnN0X2VudHJ5LCBkbWFfYWRkcixcXG4tXFx0XFx0XFx0XFx0XFx0ICAgIG5vcGFnZWRfbGVuLCBmYWxzZSk7XFxuK1xcdFxcdFxcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgICBub3BhZ2VkX2xlbiwgZmFsc2UpO1xcbitcXHRcXHR9IGVsc2Uge1xcbitcXHRcXHRcXHR0eF9idWZfcGFnZSA9IHBhZ2VfcG9vbF9hbGxvY19wYWdlcyh0eF9xLVxcdTAwM2VwYWdlX3Bvb2wsIGdmcCk7XFxuK1xcdFxcdFxcdGlmICghdHhfYnVmX3BhZ2UpXFxuK1xcdFxcdFxcdFxcdGdvdG8gZG1hX21hcF9lcnI7XFxuK1xcbitcXHRcXHRcXHRkbWFfYWRkciA9IHBhZ2VfcG9vbF9nZXRfZG1hX2FkZHIodHhfYnVmX3BhZ2UpO1xcbitcXHRcXHRcXHRzdG1tYWNfc2V0X3R4X2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSxcXG4rXFx0XFx0XFx0XFx0XFx0XFx0U1RNTUFDX1RYQlVGX1RfRE1BLCBkbWFfYWRkcixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0bm9wYWdlZF9sZW4sIGZhbHNlKTtcXG4rXFx0XFx0XFx0dHhfcS1cXHUwMDNldHhfc2tidWZmX2RtYVtmaXJzdF9lbnRyeV0ucGFnZSA9IHR4X2J1Zl9wYWdlO1xcbitcXG4rXFx0XFx0XFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocHJpdi1cXHUwMDNlZGV2aWNlLCBkbWFfYWRkcixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0bm9wYWdlZF9sZW4sIERNQV9CSURJUkVDVElPTkFMKTtcXG4rXFx0XFx0XFx0c2tiX2NvcHlfZnJvbV9saW5lYXJfZGF0YShza2IsIHBhZ2VfYWRkcmVzcyh0eF9idWZfcGFnZSksXFxuK1xcdFxcdFxcdFxcdFxcdFxcdCAgbm9wYWdlZF9sZW4pO1xcbitcXHRcXHRcXHRkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShwcml2LVxcdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxcbitcXHRcXHRcXHRcXHRcXHRcXHQgICBub3BhZ2VkX2xlbixcXG4rXFx0XFx0XFx0XFx0XFx0XFx0ICAgRE1BX0JJRElSRUNUSU9OQUwpO1xcbitcXHRcXHR9XFxuIFxcbiBcXHRcXHRzdG1tYWNfc2V0X2Rlc2NfYWRkcihwcml2LCBmaXJzdF9kZXNjLCBkbWFfYWRkcik7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXFxuaW5kZXggZGM1Zjk1MWEzMTFkNC4uMGY4ZDJmYzYxY2U0OCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXFxuQEAgLTU3NSw2ICs1NzUsOCBAQCBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXFxuIFxcbiBcXHRvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgXFxcInNucHMscHMtc3BlZWRcXFwiLCBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX3BvcnRfc2VsX3NwZWVkKTtcXG4gXFxuK1xcdHBsYXQtXFx1MDAzZXR4X2J1Zl9xdWlyayA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwgXFxcInNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrXFxcIik7XFxuK1xcbiBcXHRwbGF0LVxcdTAwM2VheGkgPSBzdG1tYWNfYXhpX3NldHVwKHBkZXYpO1xcbiBcXG4gXFx0cmMgPSBzdG1tYWNfbXRsX3NldHVwKHBkZXYsIHBsYXQpO1xcbmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oIGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxcbmluZGV4IDQ0MzBiOTY3YWJkZWIuLmQ0YzlkNzdhNmY4MWEgMTAwNjQ0XFxuLS0tIGEvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxcbisrKyBiL2luY2x1ZGUvbGludXgvc3RtbWFjLmhcXG5AQCAtMjY4LDYgKzI2OCw3IEBAIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSB7XFxuIFxcdHU4IHR4X3F1ZXVlc190b191c2U7XFxuIFxcdHU4IHJ4X3NjaGVkX2FsZ29yaXRobTtcXG4gXFx0dTggdHhfc2NoZWRfYWxnb3JpdGhtO1xcbitcXHRib29sIHR4X2J1Zl9xdWlyaztcXG4gXFx0c3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdO1xcbiBcXHRzdHJ1Y3Qgc3RtbWFjX3R4cV9jZmcgdHhfcXVldWVzX2NmZ1tNVExfTUFYX1RYX1FVRVVFU107XFxuIFxcdHZvaWQgKCpnZXRfaW50ZXJmYWNlcykoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB2b2lkICpic3BfcHJpdixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6MzYuNDM0MDk2MTU0WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6ODkxMTY2Njc0NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRjMzU2ZmVhZjM5NWY5ZTNmYzg1NjJjMTQ3ODBhMWRlYWY3MDA3M2JcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDA3OjI1OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zbnBzLGR3bWFjLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbFxuaW5kZXggMjQ0OTMxMWM2ZDI4ZS4uNzMwNDU1MTE0NDZmZCAxMDA2NDRcbi0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvc25wcyxkd21hYy55YW1sXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L3NucHMsZHdtYWMueWFtbFxuQEAgLTU0NSw2ICs1NDUsMTQgQEAgcHJvcGVydGllczpcbiAgICAgICBFbmFibGVzIHRoZSBUU08gZmVhdHVyZSBvdGhlcndpc2UgaXQgd2lsbCBiZSBtYW5hZ2VkIGJ5IE1BQyBIVyBjYXBhYmlsaXR5XG4gICAgICAgcmVnaXN0ZXIuXG4gXG4rICBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyazpcbisgICAgJHJlZjogL3NjaGVtYXMvdHlwZXMueWFtbCMvZGVmaW5pdGlvbnMvZmxhZ1xuKyAgICBkZXNjcmlwdGlvbjpcbisgICAgICBFbmFibGUgdXNlIG9mIHBhZ2UgcG9vbCBidWZmZXJzIGluc3RlYWQgb2Ygc3RyZWFtaW5nIGJ1ZmZlcnMgZm9yIHRyYW5zbWl0LlxuKyAgICAgIFRoaXMgYXZvaWRzIElPTU1VIGludmFsaWRhdGUgd2FpdCB0aW1lIG9uIHBsYXRmb3JtcyB3aGVyZSB0aGF0IGNvc3QgaXNcbisgICAgICBoaWdoLCB3aXRoIHRoZSB0cmFkZS1vZmYgb2YgY29weWluZyBkYXRhIGZyb20gdGhlIHNrYiBpbnRvIGRtYS1tYXBwZWRcbisgICAgICBwYWdlIHBvb2wgYnVmZmVycy5cbitcbiAgIG1kaW86XG4gICAgICRyZWY6IG1kaW8ueWFtbCNcbiAgICAgdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzOiBmYWxzZVxuZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQvYm9vdC9kdHMvaW50ZWwvc29jZnBnYV9hZ2lsZXg1LmR0c2kgYi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpXG5pbmRleCBmNTQ3NjdkMTUyNmUxLi40Y2U0ZmEwOTEzODUyIDEwMDY0NFxuLS0tIGEvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaVxuKysrIGIvYXJjaC9hcm02NC9ib290L2R0cy9pbnRlbC9zb2NmcGdhX2FnaWxleDUuZHRzaVxuQEAgLTYwNSw2ICs2MDUsNyBAQCBnbWFjMDogZXRoZXJuZXRAMTA4MTAwMDAge1xuIFx0XHRcdHNucHMsbXRsLXR4LWNvbmZpZyA9IFx1MDAzY1x1MDAyNm10bF90eF9lbWFjMF9zZXR1cFx1MDAzZTtcbiBcdFx0XHRzbnBzLHBibCA9IFx1MDAzYzMyXHUwMDNlO1xuIFx0XHRcdHNucHMsdHNvO1xuK1x0XHRcdHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrO1xuIFx0XHRcdGFsdHIsc3lzbWdyLXN5c2NvbiA9IFx1MDAzY1x1MDAyNnN5c21nciAweDQ0IDBcdTAwM2U7XG4gXHRcdFx0c25wcyxjbGstY3NyID0gXHUwMDNjMFx1MDAzZTtcbiBcdFx0XHRpb21tdXMgPSBcdTAwM2NcdTAwMjZzbW11IDFcdTAwM2U7XG5AQCAtNzUxLDYgKzc1Miw3IEBAIGdtYWMxOiBldGhlcm5ldEAxMDgyMDAwMCB7XG4gXHRcdFx0c25wcyxtdGwtdHgtY29uZmlnID0gXHUwMDNjXHUwMDI2bXRsX3R4X2VtYWMxX3NldHVwXHUwMDNlO1xuIFx0XHRcdHNucHMscGJsID0gXHUwMDNjMzJcdTAwM2U7XG4gXHRcdFx0c25wcyx0c287XG4rXHRcdFx0c25wcyxwYWdlcG9vbC10eC1idWYtcXVpcms7XG4gXHRcdFx0YWx0cixzeXNtZ3Itc3lzY29uID0gXHUwMDNjXHUwMDI2c3lzbWdyIDB4NDggMFx1MDAzZTtcbiBcdFx0XHRzbnBzLGNsay1jc3IgPSBcdTAwM2MwXHUwMDNlO1xuIFx0XHRcdGlvbW11cyA9IFx1MDAzY1x1MDAyNnNtbXUgMlx1MDAzZTtcbkBAIC04OTcsNiArODk5LDcgQEAgZ21hYzI6IGV0aGVybmV0QDEwODMwMDAwIHtcbiBcdFx0XHRzbnBzLG10bC10eC1jb25maWcgPSBcdTAwM2NcdTAwMjZtdGxfdHhfZW1hYzJfc2V0dXBcdTAwM2U7XG4gXHRcdFx0c25wcyxwYmwgPSBcdTAwM2MzMlx1MDAzZTtcbiBcdFx0XHRzbnBzLHRzbztcbitcdFx0XHRzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlyaztcbiBcdFx0XHRhbHRyLHN5c21nci1zeXNjb24gPSBcdTAwM2NcdTAwMjZzeXNtZ3IgMHg0YyAwXHUwMDNlO1xuIFx0XHRcdHNucHMsY2xrLWNzciA9IFx1MDAzYzBcdTAwM2U7XG4gXHRcdFx0aW9tbXVzID0gXHUwMDNjXHUwMDI2c21tdSAzXHUwMDNlO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hYy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcbmluZGV4IDhiYThmMDNlMWNlMDMuLjA5M2MwNTJiNDkwODIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWMuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjLmhcbkBAIC00MSw2ICs0MSw3IEBAIHN0cnVjdCBzdG1tYWNfcmVzb3VyY2VzIHtcbiBcbiBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHtcbiBcdFNUTU1BQ19UWEJVRl9UX1NLQixcbitcdFNUTU1BQ19UWEJVRl9UX0RNQSxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9UWCxcbiBcdFNUTU1BQ19UWEJVRl9UX1hEUF9ORE8sXG4gXHRTVE1NQUNfVFhCVUZfVF9YU0tfVFgsXG5AQCAtNDksNiArNTAsNyBAQCBlbnVtIHN0bW1hY190eGJ1Zl90eXBlIHtcbiBzdHJ1Y3Qgc3RtbWFjX3R4X2luZm8ge1xuIFx0c3RydWN0IHhza190eF9tZXRhZGF0YV9jb21wbCB4c2tfbWV0YTtcbiBcdGRtYV9hZGRyX3QgYnVmO1xuK1x0c3RydWN0IHBhZ2UgKnBhZ2U7XG4gXHR1bnNpZ25lZCBsZW47XG4gXHRlbnVtIHN0bW1hY190eGJ1Zl90eXBlIGJ1Zl90eXBlO1xuIFx0Ym9vbCBtYXBfYXNfcGFnZTtcbkBAIC02NSw2ICs2Nyw3IEBAIHN0cnVjdCBzdG1tYWNfdHhfcXVldWUge1xuIFx0aW50IHRicztcbiBcdHN0cnVjdCBocnRpbWVyIHR4dGltZXI7XG4gXHR1MzIgcXVldWVfaW5kZXg7XG4rXHRzdHJ1Y3QgcGFnZV9wb29sICpwYWdlX3Bvb2w7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXZfZGF0YTtcbiBcdHN0cnVjdCBkbWFfZXh0ZW5kZWRfZGVzYyAqZG1hX2V0eCBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wO1xuIFx0c3RydWN0IGRtYV9lZGVzYyAqZG1hX2VudHg7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbmluZGV4IGVlNDRiZDZmNGQ0OGUuLjRhYTZiMWQxNTA3YmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtMTcxMiw3ICsxNzEyLDEwIEBAIHN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X2J1ZmZlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXG4gXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZiBcdTAwMjZcdTAwMjZcbiBcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSB7XG4tXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4rXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfRE1BKVxuK1x0XHRcdHBhZ2VfcG9vbF9yZWN5Y2xlX2RpcmVjdCh0eF9xLVx1MDAzZXBhZ2VfcG9vbCxcbitcdFx0XHRcdFx0XHQgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLnBhZ2UpO1xuK1x0XHRlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubWFwX2FzX3BhZ2UpXG4gXHRcdFx0ZG1hX3VubWFwX3BhZ2UocHJpdi1cdTAwM2VkZXZpY2UsXG4gXHRcdFx0XHQgICAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1ZixcbiBcdFx0XHRcdCAgICAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0ubGVuLFxuQEAgLTE3MzUsNyArMTczOCw4IEBAIHN0YXRpYyB2b2lkIHN0bW1hY19mcmVlX3R4X2J1ZmZlcihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHRcdHR4X3EtXHUwMDNleHNrX2ZyYW1lc19kb25lKys7XG4gXG4gXHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0gXHUwMDI2XHUwMDI2XG4tXHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuK1x0ICAgICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbaV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8XG4rXHQgICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtpXS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpKSB7XG4gXHRcdGRldl9rZnJlZV9za2JfYW55KHR4X3EtXHUwMDNldHhfc2tidWZmW2ldKTtcbiBcdFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZbaV0gPSBOVUxMO1xuIFx0fVxuQEAgLTIyMDEsNiArMjIwNSw4IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9kbWFfdHhfZGVzY19yZXNvdXJjZXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIFxuIFx0a2ZyZWUodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKTtcbiBcdGtmcmVlKHR4X3EtXHUwMDNldHhfc2tidWZmKTtcbitcdGlmICh0eF9xLVx1MDAzZXBhZ2VfcG9vbClcbitcdFx0cGFnZV9wb29sX2Rlc3Ryb3kodHhfcS1cdTAwM2VwYWdlX3Bvb2wpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBmcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5AQCAtMjMzNSwxMiArMjM0MSwzMiBAQCBzdGF0aWMgaW50IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbiBcdFx0XHRcdFx0IHUzMiBxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3Qgc3RtbWFjX3R4X3F1ZXVlICp0eF9xID0gXHUwMDI2ZG1hX2NvbmYtXHUwMDNldHhfcXVldWVbcXVldWVdO1xuK1x0c3RydWN0IHBhZ2VfcG9vbF9wYXJhbXMgcHBfcGFyYW1zID0geyAwIH07XG4rXHR1bnNpZ25lZCBpbnQgbnVtX3BhZ2VzO1xuIFx0c2l6ZV90IHNpemU7XG4gXHR2b2lkICphZGRyO1xuK1x0aW50IHJldDtcbiBcbiBcdHR4X3EtXHUwMDNlcXVldWVfaW5kZXggPSBxdWV1ZTtcbiBcdHR4X3EtXHUwMDNlcHJpdl9kYXRhID0gcHJpdjtcbiBcbitcdHBwX3BhcmFtcy5mbGFncyA9IFBQX0ZMQUdfRE1BX01BUCB8IFBQX0ZMQUdfRE1BX1NZTkNfREVWO1xuK1x0cHBfcGFyYW1zLnBvb2xfc2l6ZSA9IGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplO1xuK1x0bnVtX3BhZ2VzID0gRElWX1JPVU5EX1VQKGRtYV9jb25mLVx1MDAzZWRtYV9idWZfc3osIFBBR0VfU0laRSk7XG4rXHRwcF9wYXJhbXMub3JkZXIgPSBpbG9nMihudW1fcGFnZXMpO1xuK1x0cHBfcGFyYW1zLm5pZCA9IGRldl90b19ub2RlKHByaXYtXHUwMDNlZGV2aWNlKTtcbitcdHBwX3BhcmFtcy5kZXYgPSBwcml2LVx1MDAzZWRldmljZTtcbitcdHBwX3BhcmFtcy5kbWFfZGlyID0gRE1BX0JJRElSRUNUSU9OQUw7XG4rXHRwcF9wYXJhbXMub2Zmc2V0ID0gMDtcbitcdHBwX3BhcmFtcy5tYXhfbGVuID0gbnVtX3BhZ2VzICogUEFHRV9TSVpFO1xuK1xuK1x0dHhfcS1cdTAwM2VwYWdlX3Bvb2wgPSBwYWdlX3Bvb2xfY3JlYXRlKFx1MDAyNnBwX3BhcmFtcyk7XG4rXHRpZiAoSVNfRVJSKHR4X3EtXHUwMDNlcGFnZV9wb29sKSkge1xuK1x0XHRyZXQgPSBQVFJfRVJSKHR4X3EtXHUwMDNlcGFnZV9wb29sKTtcbitcdFx0dHhfcS1cdTAwM2VwYWdlX3Bvb2wgPSBOVUxMO1xuK1x0XHRyZXR1cm4gcmV0O1xuK1x0fVxuK1xuIFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hID0ga3phbGxvY19vYmpzKCp0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWEsXG4gXHRcdFx0XHRcdCAgIGRtYV9jb25mLVx1MDAzZWRtYV90eF9zaXplKTtcbiBcdGlmICghdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hKVxuQEAgLTI4MzYsNyArMjg2Miw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFx0XHQgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9YRFBfTkRPKSB7XG4gXHRcdFx0eGRwZiA9IHR4X3EtXHUwMDNleGRwZltlbnRyeV07XG4gXHRcdFx0c2tiID0gTlVMTDtcbi1cdFx0fSBlbHNlIGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1NLQikge1xuK1x0XHR9IGVsc2UgaWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8XG4rXHRcdFx0ICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9ETUEpIHtcbiBcdFx0XHR4ZHBmID0gTlVMTDtcbiBcdFx0XHRza2IgPSB0eF9xLVx1MDAzZXR4X3NrYnVmZltlbnRyeV07XG4gXHRcdH0gZWxzZSB7XG5AQCAtMjg4NCw3ICsyOTExLDEwIEBAIHN0YXRpYyBpbnQgc3RtbWFjX3R4X2NsZWFuKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IGJ1ZGdldCwgdTMyIHF1ZXVlLFxuIFxuIFx0XHRpZiAobGlrZWx5KHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmIFx1MDAyNlx1MDAyNlxuIFx0XHRcdCAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgIT0gU1RNTUFDX1RYQlVGX1RfWERQX1RYKSkge1xuLVx0XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLm1hcF9hc19wYWdlKVxuK1x0XHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSlcbitcdFx0XHRcdHBhZ2VfcG9vbF9yZWN5Y2xlX2RpcmVjdCh0eF9xLVx1MDAzZXBhZ2VfcG9vbCxcbitcdFx0XHRcdFx0XHRcdCB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLnBhZ2UpO1xuK1x0XHRcdGVsc2UgaWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0ubWFwX2FzX3BhZ2UpXG4gXHRcdFx0XHRkbWFfdW5tYXBfcGFnZShwcml2LVx1MDAzZWRldmljZSxcbiBcdFx0XHRcdFx0ICAgICAgIHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmLFxuIFx0XHRcdFx0XHQgICAgICAgdHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5sZW4sXG5AQCAtMjkyMiw3ICsyOTUyLDggQEAgc3RhdGljIGludCBzdG1tYWNfdHhfY2xlYW4oc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgYnVkZ2V0LCB1MzIgcXVldWUsXG4gXHRcdGlmICh0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX1hTS19UWClcbiBcdFx0XHR0eF9xLVx1MDAzZXhza19mcmFtZXNfZG9uZSsrO1xuIFxuLVx0XHRpZiAodHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2VudHJ5XS5idWZfdHlwZSA9PSBTVE1NQUNfVFhCVUZfVF9TS0IpIHtcbitcdFx0aWYgKHR4X3EtXHUwMDNldHhfc2tidWZmX2RtYVtlbnRyeV0uYnVmX3R5cGUgPT0gU1RNTUFDX1RYQlVGX1RfU0tCIHx8XG4rXHRcdCAgICB0eF9xLVx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmJ1Zl90eXBlID09IFNUTU1BQ19UWEJVRl9UX0RNQSkge1xuIFx0XHRcdGlmIChsaWtlbHkoc2tiKSkge1xuIFx0XHRcdFx0cGt0c19jb21wbCsrO1xuIFx0XHRcdFx0Ynl0ZXNfY29tcGwgKz0gc2tiLVx1MDAzZWxlbjtcbkBAIC00NzQyLDEyICs0NzczLDE0IEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0Ym9vbCBlbmhfZGVzYywgaGFzX3ZsYW4sIHNldF9pYywgaXNfanVtYm8gPSBmYWxzZTtcbiBcdHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG4gXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xuK1x0Z2ZwX3QgZ2ZwID0gR0ZQX0FUT01JQyB8IF9fR0ZQX05PV0FSTjtcbiBcdHUzMiBxdWV1ZSA9IHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpO1xuIFx0aW50IG5mcmFncyA9IHNrYl9zaGluZm8oc2tiKS1cdTAwM2Vucl9mcmFncztcbiBcdHVuc2lnbmVkIGludCBmaXJzdF9lbnRyeSwgdHhfcGFja2V0cztcbiBcdHN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzICp0eHFfc3RhdHM7XG4gXHRzdHJ1Y3QgZG1hX2Rlc2MgKmRlc2MsICpmaXJzdF9kZXNjO1xuIFx0c3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcTtcbitcdHN0cnVjdCBwYWdlICp0eF9idWZfcGFnZTtcbiBcdGludCBpLCBjc3VtX2luc2VydGlvbiA9IDA7XG4gXHRpbnQgZW50cnksIGZpcnN0X3R4O1xuIFx0ZG1hX2FkZHJfdCBkbWFfYWRkcjtcbkBAIC00ODE0LDEzICs0ODQ3LDMzIEBAIHN0YXRpYyBuZXRkZXZfdHhfdCBzdG1tYWNfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuIFx0fSBlbHNlIHtcbiBcdFx0Ym9vbCBsYXN0X3NlZ21lbnQgPSAobmZyYWdzID09IDApO1xuIFxuLVx0XHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXHUwMDNlZGV2aWNlLCBza2ItXHUwMDNlZGF0YSxcbi1cdFx0XHRcdFx0ICBub3BhZ2VkX2xlbiwgRE1BX1RPX0RFVklDRSk7XG4tXHRcdGlmIChkbWFfbWFwcGluZ19lcnJvcihwcml2LVx1MDAzZWRldmljZSwgZG1hX2FkZHIpKVxuLVx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4rXHRcdGlmICghKGxhc3Rfc2VnbWVudCBcdTAwMjZcdTAwMjYgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZXR4X2J1Zl9xdWlyaykpIHtcbitcdFx0XHRkbWFfYWRkciA9IGRtYV9tYXBfc2luZ2xlKHByaXYtXHUwMDNlZGV2aWNlLCBza2ItXHUwMDNlZGF0YSxcbitcdFx0XHRcdFx0XHQgIG5vcGFnZWRfbGVuLCBETUFfVE9fREVWSUNFKTtcbitcdFx0XHRpZiAoZG1hX21hcHBpbmdfZXJyb3IocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyKSlcbitcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4gXG4tXHRcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXG4tXHRcdFx0XHRcdCAgICBub3BhZ2VkX2xlbiwgZmFsc2UpO1xuK1x0XHRcdHN0bW1hY19zZXRfdHhfc2tiX2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSwgZG1hX2FkZHIsXG4rXHRcdFx0XHRcdFx0ICAgIG5vcGFnZWRfbGVuLCBmYWxzZSk7XG4rXHRcdH0gZWxzZSB7XG4rXHRcdFx0dHhfYnVmX3BhZ2UgPSBwYWdlX3Bvb2xfYWxsb2NfcGFnZXModHhfcS1cdTAwM2VwYWdlX3Bvb2wsIGdmcCk7XG4rXHRcdFx0aWYgKCF0eF9idWZfcGFnZSlcbitcdFx0XHRcdGdvdG8gZG1hX21hcF9lcnI7XG4rXG4rXHRcdFx0ZG1hX2FkZHIgPSBwYWdlX3Bvb2xfZ2V0X2RtYV9hZGRyKHR4X2J1Zl9wYWdlKTtcbitcdFx0XHRzdG1tYWNfc2V0X3R4X2RtYV9lbnRyeSh0eF9xLCBmaXJzdF9lbnRyeSxcbitcdFx0XHRcdFx0XHRTVE1NQUNfVFhCVUZfVF9ETUEsIGRtYV9hZGRyLFxuK1x0XHRcdFx0XHRcdG5vcGFnZWRfbGVuLCBmYWxzZSk7XG4rXHRcdFx0dHhfcS1cdTAwM2V0eF9za2J1ZmZfZG1hW2ZpcnN0X2VudHJ5XS5wYWdlID0gdHhfYnVmX3BhZ2U7XG4rXG4rXHRcdFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxuK1x0XHRcdFx0XHRcdG5vcGFnZWRfbGVuLCBETUFfQklESVJFQ1RJT05BTCk7XG4rXHRcdFx0c2tiX2NvcHlfZnJvbV9saW5lYXJfZGF0YShza2IsIHBhZ2VfYWRkcmVzcyh0eF9idWZfcGFnZSksXG4rXHRcdFx0XHRcdFx0ICBub3BhZ2VkX2xlbik7XG4rXHRcdFx0ZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UocHJpdi1cdTAwM2VkZXZpY2UsIGRtYV9hZGRyLFxuK1x0XHRcdFx0XHRcdCAgIG5vcGFnZWRfbGVuLFxuK1x0XHRcdFx0XHRcdCAgIERNQV9CSURJUkVDVElPTkFMKTtcbitcdFx0fVxuIFxuIFx0XHRzdG1tYWNfc2V0X2Rlc2NfYWRkcihwcml2LCBmaXJzdF9kZXNjLCBkbWFfYWRkcik7XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuaW5kZXggZGM1Zjk1MWEzMTFkNC4uMGY4ZDJmYzYxY2U0OCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uY1xuQEAgLTU3NSw2ICs1NzUsOCBAQCBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXG4gXG4gXHRvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgXCJzbnBzLHBzLXNwZWVkXCIsIFx1MDAyNnBsYXQtXHUwMDNlbWFjX3BvcnRfc2VsX3NwZWVkKTtcbiBcbitcdHBsYXQtXHUwMDNldHhfYnVmX3F1aXJrID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKG5wLCBcInNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrXCIpO1xuK1xuIFx0cGxhdC1cdTAwM2VheGkgPSBzdG1tYWNfYXhpX3NldHVwKHBkZXYpO1xuIFxuIFx0cmMgPSBzdG1tYWNfbXRsX3NldHVwKHBkZXYsIHBsYXQpO1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3RtbWFjLmggYi9pbmNsdWRlL2xpbnV4L3N0bW1hYy5oXG5pbmRleCA0NDMwYjk2N2FiZGViLi5kNGM5ZDc3YTZmODFhIDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxuKysrIGIvaW5jbHVkZS9saW51eC9zdG1tYWMuaFxuQEAgLTI2OCw2ICsyNjgsNyBAQCBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEge1xuIFx0dTggdHhfcXVldWVzX3RvX3VzZTtcbiBcdHU4IHJ4X3NjaGVkX2FsZ29yaXRobTtcbiBcdHU4IHR4X3NjaGVkX2FsZ29yaXRobTtcbitcdGJvb2wgdHhfYnVmX3F1aXJrO1xuIFx0c3RydWN0IHN0bW1hY19yeHFfY2ZnIHJ4X3F1ZXVlc19jZmdbTVRMX01BWF9SWF9RVUVVRVNdO1xuIFx0c3RydWN0IHN0bW1hY190eHFfY2ZnIHR4X3F1ZXVlc19jZmdbTVRMX01BWF9UWF9RVUVVRVNdO1xuIFx0dm9pZCAoKmdldF9pbnRlcmZhY2VzKShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHZvaWQgKmJzcF9wcml2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6MzYuNDM0MDk4MzE0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzQyNTYwOTEwNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBc3Nlc3NpbmcgdGhlIEltcGFjdCBvZiBhIE5ldyBzdG1tYWMgRmVhdHVyZTogQSBRRU1VIFBlcnNwZWN0aXZlKipcblxuT2theSwgc28gd2UgaGF2ZSB0aGlzIG5ldyBwYXRjaCBhZGRpbmcgdGhlIGBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlya2AgZmVhdHVyZSB0byB0aGUgYHN0bW1hY2AgZXRoZXJuZXQgZHJpdmVyLiBFc3NlbnRpYWxseSwgaXQncyBhYm91dCBvcHRpbWl6aW5nIHRyYW5zbWl0IG9wZXJhdGlvbnMgYnkgc3dhcHBpbmcgb3V0IHN0cmVhbWluZyBidWZmZXJzIGZvciBwYWdlIHBvb2wgYnVmZmVycyB3aGVuIHRoZSBxdWlyayBpcyBlbmFibGVkLiBUaGUgZGV2aWNlIHRyZWUgYmluZGluZyBpcyBpbiBwbGFjZS4gVGhlIGNvcmUgZHJpdmVyIGlzIGBzdG1tYWNgIChzdG1pY3JvL3N0bW1hYykgLSB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMsIHJpZ2h0P1xuXG5NeSBpbW1lZGlhdGUgY29uY2VybiBpcyByZWFjaGFiaWxpdHksIGVzcGVjaWFsbHkgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBJcyB0aGlzIGV2ZW4gZ29pbmcgdG8gYmUgdGVzdGFibGUgaW4gc29tZXRoaW5nIGxpa2UgUUVNVT8gSSBuZWVkIHRvIHF1aWNrbHkgZXN0YWJsaXNoIGlmIGBzdG1tYWNgIGlzIHVzZWQgaW4gYW55IHZpcnR1YWxpemVkIHNldHVwcywgb3IgaWYgUUVNVSBoYXMgYW55IHJlbGV2YW50IGVtdWxhdGlvbiBzdXBwb3J0LiBXYWl0IGEgbWludXRlLCB3YXNuJ3QgU3lub3BzeXMgRGVzaWduV2FyZSBNQUMgc3VwcG9ydGVkIGluIHNvbWUgUUVNVSBwbGF0Zm9ybXM/IEknbSBwcmV0dHkgc3VyZSBJJ3ZlIHNlZW4gbWVudGlvbnMgb2YgdGhhdCBiZWZvcmUuLi4geWVzLCBsZXQncyBsb29rIHRocm91Z2ggdGhlIFFFTVUgZG9jdW1lbnRhdGlvbiBhbmQgY29kZS4gT2theSwgbGV0J3Mgc2VhcmNoIHRoZSBrZXJuZWwgYW5kIFFFTVUgc291cmNlIGZvciBgc3RtbWFjYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHZpYWJsZSB0aGlzIHBhdGNoIGlzIGluIHRlcm1zIG9mIHRlc3RhYmlsaXR5IHdpdGhpbiBhIGNvbW1vbiBkZXZlbG9wbWVudCBlbnZpcm9ubWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjYzMSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI1OjQzLjg1OTcxMTAxMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY4NDYyMDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExNjI3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI5PWNvbmZpZyBTVE1NQUNfUExBVEZPUk1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMtXFx0aGVscFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQ6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1LVxcdCAgVGhpcyBpcyB0aGUgZHJpdmVyIHVzZWQgb24gc2V2ZXJhbCBTb0NzOlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjY3OlxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbmFyaW9uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTc4PWNvbmZpZyBEV01BQ19JTkdFTklDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTg1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODY6XFx0ICBUaGlzIHNlbGVjdHMgSW5nZW5pYyBTb0NzIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctODctXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgSW5nZW5pYyBTb0NzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTkwPWNvbmZpZyBEV01BQ19JUFE4MDZYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTg6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIElQUTgwNnggU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOTktXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBkb2VzIG5vdCB1c2UgYW55IG9mIHRoZSBoYXJkd2FyZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMTQ9Y29uZmlnIERXTUFDX01FRElBVEVLXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEyMDpcXHQgIFRoaXMgc2VsZWN0cyB0aGUgTVQyNzEyIFNvQyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEyMj1jb25maWcgRFdNQUNfTUVTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI5LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbWxvZ2ljIE1lc29uIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzA6XFx0ICB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIE1lc29uNixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzMS1cXHQgIE1lc29uOCwgTWVzb244YiBhbmQgR1hCQiBTb0NzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMzM9Y29uZmlnIERXTUFDX05VVk9UT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQxLVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBOdXZvdG9uIE1BMzUgc2VyaWVzIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE0MjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoZSBudXZvdG9uLWR3bWFjIGRyaXZlciBpc1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTQzLVxcdCAgdXNlZCBmb3IgTUEzNSBzZXJpZXMgU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTQ1PWNvbmZpZyBEV01BQ19RQ09NX0VUSFFPU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTItXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFF1YWxjb21tIEVUSFFPUyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTUzOlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTY0OlxcdCAgVGhpcyBzZWxlY3RzIFJlbmVzYXMgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkZXZpY2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE2NS1cXHQgIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFJaL1YySChQKSBmYW1pbHksIFJaL1QySCBhbmRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTY4PWNvbmZpZyBEV01BQ19ST0NLQ0hJUFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNzYtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFJvY2tjaGlwIFJLMzI4OCBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTc3OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTc4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTc5PWNvbmZpZyBEV01BQ19SWk4xXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4Ny1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgUmVuZXNhcyBSWi9OMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTg4OlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIHN1cHBvcnQgY2FuIG1ha2UgdXNlIG9mIGEgY3VzdG9tIE1JSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTg5LVxcdCAgY29udmVydGVyIFBDUyBkZXZpY2UuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE5ODpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTk5LVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlIFMzMkNDIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMDM9Y29uZmlnIERXTUFDX1NPQ0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE0LVxcdCAgVGhpcyBzZWxlY3RzIHRoZSBBbHRlcmEgU09DRlBHQSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTU6XFx0ICBmb3IgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjE2LVxcdCAgYXJyaWE1IGFuZCBjeWNsb25lNSBGUEdBIFNvQ3MuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIxOD1jb25maWcgRFdNQUNfU09QSEdPXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyNS1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgU29waGdvIFNvQyBzcGVjaWZpYyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIyNjpcXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjI3LVxcdCAgZXRoZXJuZXQgY29udHJvbGxlcnMgb24gdmFyaW91cyBTb3BoZ28gU29Dcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjI5PWNvbmZpZyBEV01BQ19TUEFDRU1JVFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzctXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFNwYWNlbWl0IHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjM4OlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMzktXFx0ICBTcGFjZW1pdCBLMyBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjQxPWNvbmZpZyBEV01BQ19TVEFSRklWRVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNDktXFx0ICBUaGlzIHNlbGVjdHMgdGhlIFN0YXJGaXZlIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjUwOlxcdCAgZm9yIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgdGhlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTEtXFx0ICBTdGFyRml2ZSBKSDcxMDAgYW5kIEpINzExMCBldGhlcm5ldCBjb250cm9sbGVycy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjUzPWNvbmZpZyBEV01BQ19TVElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjYxOlxcdCAgVGhpcyBzZWxlY3RzIFNUaSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RpIHNlcmllc1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI3MzpcXHQgIFRoaXMgc2VsZWN0cyBTVE0zMiBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzQtXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIG9uIGZvciB0aGUgU1RNMzIgc2VyaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI3Nz1jb25maWcgRFdNQUNfU1VOWElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjg0LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI4NTpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBBMjAvQTMxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODYtXFx0ICBHTUFDIGV0aGVybmV0IGNvbnRyb2xsZXIuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI4OD1jb25maWcgRFdNQUNfU1VOOElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk2LVxcdCAgVGhpcyBzZWxlY3RzIEFsbHdpbm5lciBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5NzpcXHQgIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBIMy9BODNUL0E2NFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjk4LVxcdCAgRU1BQyBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMDA9Y29uZmlnIERXTUFDX1NVTjU1SVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMDgtXFx0ICBUaGlzIHNlbGVjdHMgQWxsd2lubmVyIFNvQyBnbHVlIGxheWVyIHN1cHBvcnQgZm9yIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzA5OlxcdCAgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEE1MjMvVDUyN1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzEwLVxcdCAgR01BQzIwMCBldGhlcm5ldCBjb250cm9sbGVyLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMTI9Y29uZmlnIERXTUFDX1RIRUFEXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxOC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgVC1IRUFEIHBsYXRmb3JtIHNwZWNpZmljIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMxOTpcXHQgIHRoZSBzdG1tYWMgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgVC1IRUFEIFRIMTUyMFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzIwLVxcdCAgZXRoZXJuZXQgY29udHJvbGxlci5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzIyPWNvbmZpZyBEV01BQ19JTVg4XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMzMDpcXHQgIFRoaXMgc2VsZWN0cyBOWFAgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydCBmb3IgdGhlIHN0bW1hY1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzMxLVxcdCAgZGV2aWNlIGRyaXZlci4gVGhpcyBkcml2ZXIgaXMgdXNlZCBmb3IgaS5NWDggc2VyaWVzIGxpa2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0MC1cXHQgIFRoaXMgc2VsZWN0cyB0aGUgSW50ZWwgcGxhdGZvcm0gc3BlY2lmaWMgZ2x1ZSBsYXllciBzdXBwb3J0IGZvclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzQxOlxcdCAgdGhlIHN0bW1hYyBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciB0aGUgSW50ZWwgS2VlbSBCYXlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM0Mi1cXHQgIFNvQy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzQ0PWNvbmZpZyBEV01BQ19MT09OR1NPTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzUxOlxcdCAgVGhpcyBzZWxlY3RzIExvb25nc29uMSBTb0MgZ2x1ZSBsYXllciBzdXBwb3J0IGZvciB0aGUgc3RtbWFjXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNTItXFx0ICBkZXZpY2UgZHJpdmVyLiBUaGlzIGRyaXZlciBpcyB1c2VkIGZvciBMb29uZ3NvbjEtYmFzZWQgYm9hcmRzXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM1NT1jb25maWcgRFdNQUNfVEVHUkFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYwLVxcdCAgZm91bmQgb24gdGhlIE5WSURJQSBUZWdyYSBTb0MgZGV2aWNlcy4gVGhpcyBkcml2ZXIgcHJvdmlkZXMgdGhlIGdsdWVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM2MTpcXHQgIGxheWVyIG9uIHRvcCBvZiB0aGUgc3RtbWFjIGRyaXZlciByZXF1aXJlZCBmb3IgdGhlc2UgTlZJRElBIFRlZ3JhIFNvQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzYyLVxcdCAgZGV2aWNlcy5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzczPWNvbmZpZyBTVE1NQUNfTElCUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozNzY6XFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBQQ0kgYnVzIGhlbHBlcnMgZm9yIHRoZSBzdG1tYWMgZHJpdmVyLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzc4PWNvbmZpZyBEV01BQ19JTlRFTFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODUtXFx0ICBUaGlzIHNlbGVjdHMgdGhlIEludGVsIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM4NjpcXHQgIHN0bW1hYyBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yIEludGVsIFF1YXJrL0VITC9UR0wuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zODg9Y29uZmlnIERXTUFDX0xPT05HU09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5NC1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozOTU6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIExPT05HU09OIFBDSSBidXMgc3VwcG9ydCBmb3IgdGhlIHN0bW1hYyBkcml2ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTYtXFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIExvb25nc29uLTJLMTAwMCBTb0MgYW5kIExTN0ExMDAwIGJyaWRnZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDA3PWNvbmZpZyBTVE1NQUNfUENJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxMi1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MTM6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIHBsYXRmb3JtIHNwZWNpZmljIGJ1cyBzdXBwb3J0IGZvciB0aGUgc3RtbWFjIGRyaXZlci5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQxNC1cXHQgIFRoaXMgZHJpdmVyIHdhcyB0ZXN0ZWQgb24gWExJTlggWEMyVjMwMDAgRkYxMTUyQU1UMDIyMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfU1RNTUFDX0VUSCkgKz0gc3RtbWFjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTozOnN0bW1hYy1vYmpzOj0gc3RtbWFjX21haW4ubyBzdG1tYWNfZXRodG9vbC5vIHN0bW1hY19tZGlvLm8gcmluZ19tb2RlLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNC1cXHQgICAgICBjaGFpbl9tb2RlLm8gZHdtYWNfbGliLm8gZHdtYWMxMDAwX2NvcmUubyBkd21hYzEwMDBfZG1hLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNS1cXHQgICAgICBkd21hYzEwMF9jb3JlLm8gZHdtYWMxMDBfZG1hLm8gZW5oX2Rlc2MubyBub3JtX2Rlc2Mub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo2OlxcdCAgICAgIG1tY19jb3JlLm8gc3RtbWFjX2h3dHN0YW1wLm8gc3RtbWFjX3B0cC5vIGR3bWFjNF9kZXNjcy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTctXFx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcXHQgICAgICBzdG1tYWNfdGMubyBkd3hnbWFjMl9jb3JlLm8gZHd4Z21hYzJfZG1hLm8gZHd4Z21hYzJfZGVzY3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6OTpcXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMDpcXHQgICAgICBzdG1tYWNfcGNzLm8gJChzdG1tYWMteSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0xMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToxMjpzdG1tYWMtJChDT05GSUdfU1RNTUFDX1NFTEZURVNUUykgKz0gc3RtbWFjX3NlbGZ0ZXN0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMTQtIyBPcmRlcmluZyBtYXR0ZXJzLiBHZW5lcmljIGRyaXZlciBtdXN0IGJlIGxhc3QuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6MTU6b2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSlcXHQrPSBzdG1tYWMtcGxhdGZvcm0ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTE2LW9iai0kKENPTkZJR19EV01BQ19BTkFSSU9OKVxcdCs9IGR3bWFjLWFuYXJpb24ub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9NDU9b2JqLSQoQ09ORklHX0RXTUFDX1ZJU0NPTlRJKVxcdCs9IGR3bWFjLXZpc2NvbnRpLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo0NjpzdG1tYWMtcGxhdGZvcm0tb2Jqczo9IHN0bW1hY19wbGF0Zm9ybS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDctZHdtYWMtYWx0ci1zb2NmcGdhLW9ianMgOj0gZHdtYWMtc29jZnBnYS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NDk6b2JqLSQoQ09ORklHX1NUTU1BQ19MSUJQQ0kpXFx0Kz0gc3RtbWFjX2xpYnBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6NTA6b2JqLSQoQ09ORklHX1NUTU1BQ19QQ0kpXFx0Kz0gc3RtbWFjLXBjaS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtNTEtb2JqLSQoQ09ORklHX0RXTUFDX0lOVEVMKVxcdCs9IGR3bWFjLWludGVsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTUzPW9iai0kKENPTkZJR19EV01BQ19NT1RPUkNPTU0pXFx0Kz0gZHdtYWMtbW90b3Jjb21tLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZTo1NDpzdG1tYWMtcGNpLW9ianM6PSBzdG1tYWNfcGNpLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmM6MTc6c3RhdGljIGludCBqdW1ib19mcm0oc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IHNrX2J1ZmYgKnNrYixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTgtXFx0XFx0ICAgICBpbnQgY3N1bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0yMC1cXHR1bnNpZ25lZCBpbnQgbm9wYWdlZF9sZW4gPSBza2JfaGVhZGxlbihza2IpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoyMTpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYgPSB0eF9xLVxcdTAwM2Vwcml2X2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTIyLVxcdHVuc2lnbmVkIGludCBlbnRyeSA9IHR4X3EtXFx1MDAzZWN1cl90eDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00NC1cXHQvKiBkbyBub3QgY2xvc2UgdGhlIGRlc2NyaXB0b3IgYW5kIGRvIG5vdCBzZXQgb3duIGJpdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzo0NTpcXHRzdG1tYWNfcHJlcGFyZV90eF9kZXNjKHByaXYsIGRlc2MsIDEsIGJ1Zl9sZW4sIGNzdW0sIFNUTU1BQ19DSEFJTl9NT0RFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy00Ni1cXHRcXHRcXHQwLCBmYWxzZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jLTYxLVxcdFxcdFxcdHR4X3EtXFx1MDAzZXR4X3NrYnVmZl9kbWFbZW50cnldLmxlbiA9IGJtYXg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjYyOlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgYm1heCwgY3N1bSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNjMtXFx0XFx0XFx0XFx0XFx0U1RNTUFDX0NIQUlOX01PREUsIDEsIGZhbHNlLCBza2ItXFx1MDAzZWxlbik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtNzUtXFx0XFx0XFx0LyogbGFzdCBkZXNjcmlwdG9yIGNhbiBiZSBzZXQgbm93ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjc2OlxcdFxcdFxcdHN0bW1hY19wcmVwYXJlX3R4X2Rlc2MocHJpdiwgZGVzYywgMCwgbGVuLCBjc3VtLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy03Ny1cXHRcXHRcXHRcXHRcXHRTVE1NQUNfQ0hBSU5fTU9ERSwgMSwgdHJ1ZSwgc2tiLVxcdTAwM2VsZW4pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jPTk4PXN0YXRpYyB2b2lkIGluaXRfZG1hX2NoYWluKHZvaWQgKmRlcywgZG1hX2FkZHJfdCBwaHlfYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY2hhaW5fbW9kZS5jOjEyODpzdGF0aWMgdm9pZCByZWZpbGxfZGVzYzMoc3RydWN0IHN0bW1hY19yeF9xdWV1ZSAqcnhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMjkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxMzA6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gcnhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xMzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDM6c3RhdGljIHZvaWQgY2xlYW5fZGVzYzMoc3RydWN0IHN0bW1hY190eF9xdWV1ZSAqdHhfcSwgc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNDU6XFx0c3RydWN0IHN0bW1hY19wcml2ICpwcml2ID0gdHhfcS1cXHUwMDNlcHJpdl9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYy0xNDYtXFx0dW5zaWduZWQgaW50IGVudHJ5ID0gdHhfcS1cXHUwMDNlZGlydHlfdHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTU5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NoYWluX21vZGUuYzoxNjA6Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyBjaGFpbl9tb2RlX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jaGFpbl9tb2RlLmMtMTYxLVxcdC5pbml0ID0gaW5pdF9kbWFfY2hhaW4sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xNS0jaW5jbHVkZSBcXHUwMDNjbGludXgvbmV0ZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTY6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTE3LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTQ5PXN0YXRpYyBpbmxpbmUgYm9vbCBkd21hY19pc194bWFjKGVudW0gZHdtYWNfY29yZV90eXBlIGNvcmVfdHlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjcxOnN0cnVjdCBzdG1tYWNfcV90eF9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNzItXFx0dTY0X3N0YXRzX3QgdHhfYnl0ZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC03Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo3ODpzdHJ1Y3Qgc3RtbWFjX25hcGlfdHhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTc5LVxcdHU2NF9zdGF0c190IHR4X3BhY2tldHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4NjpzdHJ1Y3Qgc3RtbWFjX3R4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtODctXFx0LyogVXBkYXRlcyBwcm90ZWN0ZWQgYnkgdHggcXVldWUgbG9jay4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC04OC1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgcV9zeW5jcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo4OTpcXHRzdHJ1Y3Qgc3RtbWFjX3FfdHhfc3RhdHMgcTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTkyLVxcdHN0cnVjdCB1NjRfc3RhdHNfc3luYyBuYXBpX3N5bmNwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjkzOlxcdHN0cnVjdCBzdG1tYWNfbmFwaV90eF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk0LX0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC05NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo5NjpzdHJ1Y3Qgc3RtbWFjX25hcGlfcnhfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTk3LVxcdHU2NF9zdGF0c190IHJ4X2J5dGVzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjEwMzpzdHJ1Y3Qgc3RtbWFjX3J4cV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTA0LVxcdC8qIFVwZGF0ZXMgcHJvdGVjdGVkIGJ5IE5BUEkgcG9sbCBsb2dpYy4gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDUtXFx0c3RydWN0IHU2NF9zdGF0c19zeW5jIG5hcGlfc3luY3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MTA2OlxcdHN0cnVjdCBzdG1tYWNfbmFwaV9yeF9zdGF0cyBuYXBpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTEwNy19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMDktLyogVXBkYXRlcyBvbiBlYWNoIENQVSBwcm90ZWN0ZWQgYnkgbm90IGFsbG93aW5nIG5lc3RlZCBpcnFzLiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjExMDpzdHJ1Y3Qgc3RtbWFjX3BjcHVfc3RhdHMge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTExMS1cXHRzdHJ1Y3QgdTY0X3N0YXRzX3N5bmMgc3luY3A7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0xMTYtLyogRXh0cmEgc3RhdGlzdGljIGFuZCBkZWJ1ZyBpbmZvcm1hdGlvbiBleHBvc2VkIGJ5IGV0aHRvb2wgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDoxMTc6c3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMTE4LVxcdC8qIFRyYW5zbWl0IGVycm9ycyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjM3LVxcdC8qIHBlciBxdWV1ZSBzdGF0aXN0aWNzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM4OlxcdHN0cnVjdCBzdG1tYWNfdHhxX3N0YXRzIHR4cV9zdGF0c1tNVExfTUFYX1RYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjM5OlxcdHN0cnVjdCBzdG1tYWNfcnhxX3N0YXRzIHJ4cV9zdGF0c1tNVExfTUFYX1JYX1FVRVVFU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQwOlxcdHN0cnVjdCBzdG1tYWNfcGNwdV9zdGF0cyBfX3BlcmNwdSAqcGNwdV9zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDEtXFx0dW5zaWduZWQgbG9uZyByeF9kcm9wcGVkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtMjQ3LS8qIFNhZmV0eSBGZWF0dXJlIHN0YXRpc3RpY3MgZXhwb3NlZCBieSBldGh0b29sICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6MjQ4OnN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNDktXFx0dW5zaWduZWQgbG9uZyBtYWNfZXJyb3JzWzMyXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTI1Ni0jZGVmaW5lIFNUTU1BQ19TQUZFVFlfRkVBVF9TSVpFXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjI1NzpcXHQoc2l6ZW9mKHN0cnVjdCBzdG1tYWNfc2FmZXR5X3N0YXRzKSAvIHNpemVvZih1bnNpZ25lZCBsb25nKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC0yNTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaD00MTY9c3RydWN0IGRtYV9mZWF0dXJlcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTY1OnZvaWQgc3RtbWFjX2F4aV9ibGVuX3RvX21hc2sodTMyICpyZWd2YWwsIGNvbnN0IHUzMiAqYmxlbiwgc2l6ZV90IGxlbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTY2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NjEzPXN0cnVjdCBtYWNfZGV2aWNlX2luZm8ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNDpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyAqbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzICpkZXNjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxNjpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9vcHMgKmRtYTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTc6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyAqbW9kZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MTg6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCAqcHRwO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYxOTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX3RjX29wcyAqdGM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjIwOlxcdGNvbnN0IHN0cnVjdCBzdG1tYWNfbW1jX29wcyAqbW1jO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjYyMTpcXHRjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgKmVzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2MjI6XFx0Y29uc3Qgc3RydWN0IHN0bW1hY192bGFuX29wcyAqdmxhbjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02MjMtXFx0c3RydWN0IGR3X3hwY3MgKnhwY3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjQ1OnN0cnVjdCBzdG1tYWNfcnhfcm91dGluZyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjQ2LVxcdHUzMiByZWdfbWFzaztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY0OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTA6aW50IGR3bWFjMTAwX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUxOmludCBkd21hYzEwMDBfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTI6aW50IGR3bWFjNF9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1MzppbnQgZHd4Z21hYzJfc2V0dXAoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTQ6aW50IGR3eGxnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTY6dm9pZCBzdG1tYWNfc2V0X21hY19hZGRyKHZvaWQgX19pb21lbSAqaW9hZGRyLCBjb25zdCB1OCBhZGRyWzZdLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1Ny1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY1ODp2b2lkIHN0bW1hY19nZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjU5LVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgaGlnaCwgdW5zaWduZWQgaW50IGxvdyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYwOnZvaWQgc3RtbWFjX3NldF9tYWModm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgZW5hYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjYyOnZvaWQgc3RtbWFjX2R3bWFjNF9zZXRfbWFjX2FkZHIodm9pZCBfX2lvbWVtICppb2FkZHIsIGNvbnN0IHU4IGFkZHJbNl0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNjYzLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBoaWdoLCB1bnNpZ25lZCBpbnQgbG93KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NjQ6dm9pZCBzdG1tYWNfZHdtYWM0X2dldF9tYWNfYWRkcih2b2lkIF9faW9tZW0gKmlvYWRkciwgdW5zaWduZWQgY2hhciAqYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NjUtXFx0XFx0XFx0XFx0dW5zaWduZWQgaW50IGhpZ2gsIHVuc2lnbmVkIGludCBsb3cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjY2Njp2b2lkIHN0bW1hY19kd21hYzRfc2V0X21hYyh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY2Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMS0jaW5jbHVkZSBcXHUwMDNjbGludXgvb2ZfbmV0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdG1tYWMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjE0OiNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTU6I2luY2x1ZGUgXFxcInN0bW1hY19wbGF0Zm9ybS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz02Mz1hbmFyaW9uX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo2NDpcXHRcXHQgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05Ni1cXHRzdHJ1Y3QgYW5hcmlvbl9nbWFjICpnbWFjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5NzpcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzo5ODpcXHRzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyBzdG1tYWNfcmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy05OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTAwOlxcdHJldCA9IHN0bW1hY19nZXRfcGxhdGZvcm1fcmVzb3VyY2VzKHBkZXYsIFxcdTAwMjZzdG1tYWNfcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMDQ6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMTY6XFx0cmV0dXJuIGRldm1fc3RtbWFjX3BsdGZyX3Byb2JlKHBkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTExNy19XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTI1PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGFuYXJpb25fZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEyOC1cXHRcXHQubmFtZSAgICAgICAgICAgPSBcXFwiYW5hcmlvbi1kd21hY1xcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEyOTpcXHRcXHQucG1cXHRcXHQ9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMzAtXFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gYW5hcmlvbl9kd21hY19tYXRjaCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjEtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Jlc2V0LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyMjojaW5jbHVkZSBcXHUwMDNjbGludXgvc3RtbWFjLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI0OiNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI1LSNpbmNsdWRlIFxcXCJkd21hYzQuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzY9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mzc6XFx0XFx0XFx0XFx0ICAgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDMtXFx0XFx0cGxhdF9kYXQtXFx1MDAzZWF4aSA9IGRldm1fa3phbGxvYyhcXHUwMDI2cGRldi1cXHUwMDNlZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6NDQ6XFx0XFx0XFx0XFx0XFx0ICAgICBzaXplb2Yoc3RydWN0IHN0bW1hY19heGkpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtNDUtXFx0XFx0XFx0XFx0XFx0ICAgICBHRlBfS0VSTkVMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9OTY9c3RhdGljIGludCBkd2NfcW9zX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzo5NzpcXHRcXHRcXHQgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjk4OlxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqc3RtbWFjX3JlcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTk5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEwMDpcXHRwbGF0X2RhdC1cXHUwMDNlcGNsayA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInBoeV9yZWZfY2xrXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTExNT1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX2ZpeF9zcGVlZCh2b2lkICpic3BfcHJpdiwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTE5LVxcdGJvb2wgbmVlZHNfY2FsaWJyYXRpb24gPSBmYWxzZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjEyMDpcXHRzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xMjEtXFx0dTMyIHZhbHVlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDEtXFx0XFx0LyogQ2FsaWJyYXRpb24gc2hvdWxkIGJlIGRvbmUgd2l0aCB0aGUgTURJTyBidXMgaWRsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTQyOlxcdFxcdHN0bW1hY19tZGlvX2xvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTE3Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjE3ODpcXHRcXHRzdG1tYWNfbWRpb191bmxvY2socHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0xNzktXFx0fSBlbHNlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MTg2PXN0YXRpYyBpbnQgdGVncmFfZXFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg3OlxcdFxcdFxcdCAgICBzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MTg4OlxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMTg5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjA0OlxcdHBsYXRfZGF0LVxcdTAwM2VjbGtfdHhfaSA9IHN0bW1hY19wbHRmcl9maW5kX2NsayhwbGF0X2RhdCwgXFxcInR4XFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yMDUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTIzNy1cXHRwbGF0X2RhdC1cXHUwMDNlZml4X21hY19zcGVlZCA9IHRlZ3JhX2Vxb3NfZml4X3NwZWVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjM4OlxcdHBsYXRfZGF0LVxcdTAwM2VzZXRfY2xrX3R4X3JhdGUgPSBzdG1tYWNfc2V0X2Nsa190eF9yYXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjM5LVxcdHBsYXRfZGF0LVxcdTAwM2Vic3BfcHJpdiA9IGVxb3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI1Mj1zdGF0aWMgdm9pZCB0ZWdyYV9lcW9zX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjUzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI1NDpcXHRzdHJ1Y3QgdGVncmFfZXFvcyAqZXFvcyA9IGdldF9zdG1tYWNfYnNwX3ByaXYoXFx1MDAyNnBkZXYtXFx1MDAzZWRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI2MD1zdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2MS1cXHRpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2MjpcXHRcXHQgICAgIHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNjM6XFx0XFx0ICAgICBzdHJ1Y3Qgc3RtbWFjX3Jlc291cmNlcyAqcmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2NC1cXHR2b2lkICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI2NTpcXHRjb25zdCBjaGFyICpzdG1tYWNfY2xrX25hbWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yNjYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhIGR3Y19xb3NfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI2OS1cXHQucHJvYmUgPSBkd2NfcW9zX3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjcwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwiYXBiX3BjbGtcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjcxLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSB0ZWdyYV9lcW9zX2RhdGEgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI3NS1cXHQucmVtb3ZlID0gdGVncmFfZXFvc19yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyNzY6XFx0LnN0bW1hY19jbGtfbmFtZSA9IFxcXCJzbGF2ZV9idXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjc3LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI3OT1zdGF0aWMgY29uc3Qgc3RydWN0IGR3Y19ldGhfZHdtYWNfZGF0YSBmc2RfZXFvc19kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MjgwOlxcdC5zdG1tYWNfY2xrX25hbWUgPSBcXFwic2xhdmVfYnVzXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4MS19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYz0yODM9c3RhdGljIGludCBkd2NfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4NS1cXHRjb25zdCBzdHJ1Y3QgZHdjX2V0aF9kd21hY19kYXRhICpkYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjg2OlxcdHN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqcGxhdF9kYXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyODc6XFx0c3RydWN0IHN0bW1hY19yZXNvdXJjZXMgc3RtbWFjX3JlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI4OC1cXHRpbnQgcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzoyOTI6XFx0bWVtc2V0KFxcdTAwMjZzdG1tYWNfcmVzLCAwLCBzaXplb2Yoc3RydWN0IHN0bW1hY19yZXNvdXJjZXMpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5NC1cXHQvKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5NTpcXHQgKiBTaW5jZSBzdG1tYWNfcGxhdGZvcm0gc3VwcG9ydHMgbmFtZSBJUlEgb25seSwgYmFzaWMgcGxhdGZvcm1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTI5Ni1cXHQgKiByZXNvdXJjZSBpbml0aWFsaXphdGlvbiBpcyBkb25lIGluIHRoZSBnbHVlIGxvZ2ljLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMjk3LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6Mjk4OlxcdHN0bW1hY19yZXMuaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjI5OTpcXHRpZiAoc3RtbWFjX3Jlcy5pcnEgXFx1MDAzYyAwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzAwOlxcdFxcdHJldHVybiBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMTpcXHRzdG1tYWNfcmVzLndvbF9pcnEgPSBzdG1tYWNfcmVzLmlycTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMwMzpcXHRzdG1tYWNfcmVzLmFkZHIgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDQ6XFx0aWYgKElTX0VSUihzdG1tYWNfcmVzLmFkZHIpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA1OlxcdFxcdHJldHVybiBQVFJfRVJSKHN0bW1hY19yZXMuYWRkcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDc6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTY6XFx0cGxhdF9kYXQtXFx1MDAzZXN0bW1hY19jbGsgPSBzdG1tYWNfcGx0ZnJfZmluZF9jbGsocGxhdF9kYXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMTc6XFx0XFx0XFx0XFx0XFx0XFx0ICAgICBkYXRhLVxcdTAwM2VzdG1tYWNfY2xrX25hbWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzE5LVxcdGlmIChkYXRhLVxcdTAwM2Vwcm9iZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMyMDpcXHRcXHRyZXQgPSBkYXRhLVxcdTAwM2Vwcm9iZShwZGV2LCBwbGF0X2RhdCwgXFx1MDAyNnN0bW1hY19yZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzIxLVxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjMzMDpcXHRyZXQgPSBzdG1tYWNfZHZyX3Byb2JlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHBsYXRfZGF0LCBcXHUwMDI2c3RtbWFjX3Jlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzQzPXN0YXRpYyB2b2lkIGR3Y19ldGhfZHdtYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jOjM0NzpcXHRzdG1tYWNfZHZyX3JlbW92ZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzYxPXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR3Y19ldGhfZHdtYWNfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zNjUtXFx0XFx0Lm5hbWUgICAgICAgICAgID0gXFxcImR3Yy1ldGgtZHdtYWNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzY2OlxcdFxcdC5wbSAgICAgICAgICAgICA9IFxcdTAwMjZzdG1tYWNfcGx0ZnJfcG1fb3BzLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNTo0My45OTY1NzA2MDJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDIwMzkwNTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYHN0bW1hY2AgRHJpdmVyIGFuZCBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGUgYHN0bW1hY2AgZHJpdmVyIGlzIHByZXR0eSB3aWRlc3ByZWFkOyBJbnRlbCBLZWVtIEJheSwgUm9ja2NoaXAsIFRlZ3JhLCBBbGx3aW5uZXIg4oCTIGl0J3MgYWxsIG92ZXIgdGhlIHBsYWNlLiBDbGVhcmx5LCBpdCdzIGEgZnVuY3Rpb25pbmcgZHJpdmVyLiBUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBwYWdlIHBvb2wgcXVpcmsgZm9yIHRyYW5zbWl0IGJ1ZmZlcnMsIHRyaWdnZXJlZCBieSB0aGUgZGV2aWNlIHRyZWUgZW50cnkgYHNucHMscGFnZXBvb2wtdHgtYnVmLXF1aXJrYC4gVGhpcyBpcyBpbnRlcmVzdGluZy4uLiBpZiBpdCdzIGRldmljZSB0cmVlIGNvbnRyb2xsZWQsIGNvdWxkIEkgcG90ZW50aWFsbHkgaGl0IHRoaXMgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVU/IEkgbmVlZCB0byB0aGluayBhYm91dCBob3cgUUVNVSBtb2RlbHMgdGhlIGBzdG1tYWNgIGhhcmR3YXJlLiBJcyBpdCB1c2luZyBzb21ldGhpbmcgbGlrZSBgaHcvbmV0L2Rlc2lnbndhcmUuY2A/IFxuXG5IbW0sIHRoZSBwYXRjaCBhbHNvIG1vZGlmaWVzIGBzb2NmcGdhX2FnaWxleDUuZHRzaWAuIE9rYXksIHNvIHRoZXkncmUgZW5hYmxpbmcgdGhlIHF1aXJrIGZvciB0aGF0IHBsYXRmb3JtLiBOb3csIHRoZSByZWFsIHF1ZXN0aW9uOiBjYW4gSSBmdXp6IHRoaXMgd2l0aCBzeXprYWxsZXI/IFN5emthbGxlciBjYW4gaW5qZWN0IGRldmljZSB0cmVlIG5vZGVzIG9yIHZpcnR1YWwgZGV2aWNlcyBpZiBpdCdzIGEgcGxhdGZvcm0gZHJpdmVyLiBJIGtub3cgaXQgY2FuIHVzZSBgc3l6X2Rldm1lbWAgb3Igc2ltaWxhciwgYnV0IHR5cGljYWxseSBpdCBkZXBlbmRzIG9uIGV4aXN0aW5nIGRldmljZXMgb3IgdXNlcyBgc3l6X2dlbmV0bGlua2AuIEJ1dCwgaXQgY2FuIGFsc28gdXNlIGB0dW5gL2B0YXBgIG9yIGludGVyYWN0IHdpdGggdGhlIG5ldHdvcmsgc3RhY2suIEhvd2V2ZXIsIEkgbmVlZCB0aGUgZGV2aWNlIHRvIGJlIHByb2JlZCB0byByZWFjaCB0aGlzIHNwZWNpZmljIGNvZGUuIFNvLCB0aGUgcXVlc3Rpb24gYmVjb21lcywgaXMgYHN0bW1hY2AgcHJvYmVkIGluIHN5emthbGxlcidzIHN0YW5kYXJkIGVudmlyb25tZW50cz8gU3l6a2FsbGVyIHVzZXMgYHFlbXUtc3lzdGVtLXg4Nl82NGAsIGBhYXJjaDY0YCwgb3IgYGFybWAuIElmIGl0J3MgYW4gQVJNNjQgZW52aXJvbm1lbnQsIGBzb2NmcGdhX2FnaWxleDVgIG1pZ2h0IG5vdCBiZSB0aGUgZGVmYXVsdCBtYWNoaW5lLlxuXG5XYWl0LCBgc3RtbWFjYCBjYW4gYWxzbyBiZSBhIFBDSSBkZXZpY2UhIFRoYXQncyBhIGtleSBvYnNlcnZhdGlvbi4gSSBuZWVkIHRvIGNoZWNrIGlmIGBzdG1tYWNgIGhhcyBhIFBDSSBiaW5kaW5nLiBMZXQncyBzZWUuLi4gWWVwLCBgQ09ORklHX1NUTU1BQ19QQ0lgIGlzIHRoZXJlISBPa2F5LCBzbyBpdCBjYW4gYmUgYSBQQ0kgZGV2aWNlLiBOb3csIHRoZSBxdWVzdGlvbiBpcywgZG9lcyBgc3RtbWFjX3BjaS5jYCBhY3R1YWxseSBzZXQgdGhpcyBgdHhfYnVmX3F1aXJrYD8gVGhhdCdzIHdoYXQgSSBuZWVkIHRvIHZlcmlmeSBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTUzNCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNTo1My40MTY5NjM3NTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTM5MzQwMjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHhfYnVmX3F1aXJrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQ3NzE9c3RhdGljIG5ldGRldl90eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQ4NDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo0ODUwOlxcdFxcdGlmICghKGxhc3Rfc2VnbWVudCBcXHUwMDI2XFx1MDAyNiBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9idWZfcXVpcmspKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00ODUxLVxcdFxcdFxcdGRtYV9hZGRyID0gZG1hX21hcF9zaW5nbGUocHJpdi1cXHUwMDNlZGV2aWNlLCBza2ItXFx1MDAzZWRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz00MTY9c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjU3ODpcXHRwbGF0LVxcdTAwM2V0eF9idWZfcXVpcmsgPSBvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wobnAsIFxcXCJzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlya1xcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU3OS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjU6NTMuNDcwOTA1MDM2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjczMzAxNTc1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXIgQ2hhbmdlKipcblxuT2theSwgc28gdGhpcyBgdHhfYnVmX3F1aXJrYCBmbGFn4oCmIEkgc2VlIGl0J3Mgb25seSBzZXQgd2l0aGluIGBzdG1tYWNfcHJvYmVfY29uZmlnX2R0YC4gVGhhdCdzIGEgRGV2aWNlIFRyZWUgdGhpbmcsIHNwZWNpZmljYWxseSBmb3IgcGxhdGZvcm0gZGV2aWNlcy4gSG1tbSwgY291bGQgU3l6a2FsbGVyIHBvdGVudGlhbGx5IHRyaWdnZXIgdGhpcyBzb21laG93PyBJdCAqY2FuKiBsb2FkIGN1c3RvbSBEZXZpY2UgVHJlZXMgb3IgdXNlIGBzeXpfZGV2bWVtYCB0byBwb2tlIGFyb3VuZC4gQnV0IGhvbGQgb24sIHR5cGljYWxseSBpdCBkb2Vzbid0IGR5bmFtaWNhbGx5IGxvYWQgRGV2aWNlIFRyZWVzIHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggc29tZXRoaW5nIGxpa2UgYHN5el9tb3VudF9pbWFnZWAsIGFuZCB0aGVyZSdzIG5vIGdlbmVyYWwgbWVjaGFuaXNtIHRvIGFkZCBEVCBub2RlcyBvbiB0aGUgZmx5IGZvciBwbGF0Zm9ybSBkZXZpY2VzIHdpdGhvdXQgRFQgb3ZlcmxheXMsIHJpZ2h0P1xuXG5XYWl0LCBkb2VzIFN5emthbGxlciBoYXZlIHNvbWUgc29ydCBvZiBgc3l6X2luaXRfbmV0X2RldmljZWAgY2FsbCBvciBzaW1pbGFyPyBObywgY2FuJ3QgdGhpbmsgb2YgYW55dGhpbmcuXG5cbkJ1dCB3YWl0IGFnYWluIOKAkyBTeXprYWxsZXIgKmRvZXMqIGZ1enogQVJNNjQgcGxhdGZvcm1zIHdpdGggZGlmZmVyZW50IERldmljZSBUcmVlcy4gSWYgdGhlIEFnaWxleDUgRFQgaXMgYmVpbmcgdXNlZCwgb3IgaWYgdGhlIHJlbGV2YW50IHByb3BlcnR5IGlzIHByZXNlbnQsIHRoZW4gaXQncyAqcG9zc2libGUqIGl0IGNvdWxkIGdldCBmdXp6ZWQuIFRoYXQncyBhIHBvaW50LlxuXG5SaWdodCwgdGhlIHBhdGNoIGlzIHRvdWNoaW5nIGBzdG1tYWNfbWFpbi5jYCDigJMgdGhhdCdzIHRoZSBkcml2ZXIncyBjb3JlLiBBbmQgdGhlIGNoYW5nZXMgYXJlIGluIGtleSBhcmVhczogYHN0bW1hY190eF9jbGVhbmAsIGBzdG1tYWNfZnJlZV90eF9idWZmZXJgLCBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgLCBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIGFuZCBgc3RtbWFjX3htaXRgLlxuXG5Ob3csIHRoZSBpbXBvcnRhbnQgcGFydDogYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBsb29rcyBsaWtlIGl0J3MgY2FsbGVkIHVuY29uZGl0aW9uYWxseSEgVGhhdCdzIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuIExldCdzIGRpZyBkZWVwZXIgaW50byB0aGF0IGZ1bmN0aW9uIGFuZCBzZWUgd2hhdCdzIGdvaW5nIG9uLi4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTE2LCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjAwLjIwMzkyMjg1MloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjI2ODgyNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjMwNz1zdGF0aWMgaW50IGFsbG9jX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIzMjktLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzoyMzMwOiAqIF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzIC0gYWxsb2MgVFggcmVzb3VyY2VzIChwZXIgcXVldWUpLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjMzMS0gKiBAcHJpdjogcHJpdmF0ZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjMzOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIzMzk6c3RhdGljIGludCBfX2FsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yMzQwLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgc3RtbWFjX2RtYV9jb25mICpkbWFfY29uZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjM5Nj1zdGF0aWMgaW50IGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0MDQtXFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFxcdTAwM2MgdHhfY291bnQ7IHF1ZXVlKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0MDU6XFx0XFx0cmV0ID0gX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXMocHJpdiwgZG1hX2NvbmYsIHF1ZXVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTI0MDYtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzA4OD12b2lkIHN0bW1hY19lbmFibGVfdHhfcXVldWUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCB1MzIgcXVldWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTcwOTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3MDk1OlxcdHJldCA9IF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzKHByaXYsIFxcdTAwMjZwcml2LVxcdTAwM2VkbWFfY29uZiwgcXVldWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzA5Ni1cXHRpZiAocmV0KSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjAwLjM2NjYxOTU5MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgyOTMwOTk0MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBhY3Qgb2YgdGhlIGBwYWdlX3Bvb2xgIEludHJvZHVjdGlvbiBpbiB0aGUgU1RNTUFDIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG15IGluaXRpYWwgdGhvdWdodCBpczogYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBpcyBub3cgKmFsd2F5cyogY2FsbGVkIGZvciBldmVyeSB0cmFuc21pdCBxdWV1ZSwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoYXQgcXVpcmt5IGB0eF9idWZfcXVpcmtgIGlzIGFjdGl2ZS4gIEludGVyZXN0aW5nLiBMZXQncyBtYWtlIHN1cmUuIFJpZ2h0LCBzbyBsb29raW5nIGF0IHRoZSBjb2RlLCBpdCBjcmVhdGVzIGEgYHBhZ2VfcG9vbGAgZm9yIGVhY2ggVFggcXVldWUgKnVuY29uZGl0aW9uYWxseSouIFRoYXQncyB0aGUga2V5LiBUaGlzIHJlcHJlc2VudHMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byBkcml2ZXIgaW5pdGlhbGl6YXRpb24gYW5kIG1lbW9yeSBhbGxvY2F0aW9uLCByZWdhcmRsZXNzIG9mIGFueSBzcGVjaWZpYyBxdWlyayBzZXR0aW5ncy4gVGhpcyBoYXMgaW1tZWRpYXRlIGFuZCBmYXItcmVhY2hpbmcgaW1wbGljYXRpb25zLiBJZiB0aGUgcXVpcmsgaXMgZW5hYmxlZCwgdGhlIGNvZGUgd2lsbCAqYWxzbyogdXNlIHRoZSBwYWdlIHBvb2wgd2l0aGluIGBzdG1tYWNfeG1pdGAuXG5cblRoaXMgZnVuZGFtZW50YWxseSBhbHRlcnMgdGhlIGRyaXZlcidzIG1lbW9yeSBtYW5hZ2VtZW50IHN0cmF0ZWd5LCBhbmQsIGFzIGEgZHJpdmVyIGV4cGVydCwgSSBjYW4gdGVsbCB5b3UgdGhpcyBuZWVkcyBhIGNsb3NlIGV4YW1pbmF0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZnV6eiB0aGlzIGFyZWEuIEFueSBjaGFuZ2UgbGlrZSB0aGlzIGlzIGEgcG90ZW50aWFsIHNvdXJjZSBvZiBpc3N1ZXMuXG5cbk5vdywgSSBuZWVkIHRvIGZvY3VzIG9uIHRoZSBrZXkgc3ltYm9scyBpbnZvbHZlZC4gTGV0J3MgbGlzdCB0aG9zZS4gVGhlIHBhdGNoIG1vZGlmaWVkOlxuLSBgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyYCAoc3RhdGljKVxuLSBgX19mcmVlX2RtYV90eF9kZXNjX3Jlc291cmNlc2AgKHN0YXRpYylcbi0gYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCAoc3RhdGljKVxuLSBgc3RtbWFjX3R4X2NsZWFuYCAoc3RhdGljKVxuLSBgc3RtbWFjX3htaXRgIChzdGF0aWMpXG5cbkhtbSwgYWxsIG9mIHRoZXNlIGFyZSBzdGF0aWMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSAqZXh0ZXJuYWwqIGltcGFjdC4gU28sIEkgbmVlZCB0byBnbyB1cHN0cmVhbSBhbmQgZmluZCB0aGUgbm9uLXN0YXRpYyBmdW5jdGlvbnMgdGhhdCBjYWxsIHRoZW0uIFRoaXMgaXMgdGhlIGVudHJ5IHBvaW50LCB0aGUgd2F5IHRoZSBmdW5jdGlvbmFsaXR5IGNoYW5nZXMgaW50ZXJhY3Qgd2l0aCB0aGUgYnJvYWRlciBjb2RlIGJhc2UuIEZyb20gaGVyZSwgSSBjYW4gdHJhY2UgcG90ZW50aWFsIGFyZWFzIG9mIGJyZWFrYWdlIHRvIHRlc3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzE0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjcwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjA4LjY1OTcyMTIyN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc2NDU5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RtbWFjX3htaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NDc1MT1zdGF0aWMgYm9vbCBzdG1tYWNfaGFzX2lwX2V0aGVydHlwZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzYzLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDc2NDogKiAgc3RtbWFjX3htaXQgLSBUeCBlbnRyeSBwb2ludCBvZiB0aGUgZHJpdmVyXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzY1LSAqICBAc2tiIDogdGhlIHNvY2tldCBidWZmZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDc3MC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQ3NzE6c3RhdGljIG5ldGRldl90eF90IHN0bW1hY194bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00NzcyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzM0MD1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHN0bW1hY19uZXRkZXZfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzM0MS1cXHQubmRvX29wZW4gPSBzdG1tYWNfb3BlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNDI6XFx0Lm5kb19zdGFydF94bWl0ID0gc3RtbWFjX3htaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQzLVxcdC5uZG9fZmVhdHVyZXNfY2hlY2sgPSBzdG1tYWNfZmVhdHVyZXNfY2hlY2ssXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjA4LjcwNzM3MzMxNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NzY1MTEwODc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gQ2FsbCBTdHJ1Y3R1cmUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGBzdG1tYWNfeG1pdGAgZnVuY3Rpb24uIEl0J3MgdGhlIGBuZG9fc3RhcnRfeG1pdGAgY2FsbGJhY2ssIHJpZ2h0PyBUaGUgaW5zdHJ1Y3Rpb25zIEkndmUgYmVlbiBnaXZlbiBzYXkgdG8gcHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cy4gTm93LCB0aGUgZG9jdW1lbnRhdGlvbiBzYXlzIHRvIHByaW9yaXRpemUgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgc3RhdGljIGludGVybmFsIGhlbHBlciBmdW5jdGlvbnMuXG5cbkluaXRpYWxseSwgSSB0aG91Z2h0LCBcIkhtbSwgYHN0bW1hY194bWl0YCBpcyAqc3RhdGljKi5cIiBCdXQgaG9sZCBvbiwgaXQncyBiZWluZyBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIsIGBuZG9fc3RhcnRfeG1pdGAuIFRoYXQgbWVhbnMgdGhlIGNvbXBpbGVyICpjYW4ndCogaW5saW5lIGl0LCByaWdodD8gSXQnbGwgZGVmaW5pdGVseSBoYXZlIGl0cyBvd24gZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuIFNvLCB3aGlsZSBpdCdzIHN0YXRpYywgaXQncyBiZWhhdmluZyBsaWtlIGEgbm9uLXN0YXRpYyBlbnRyeXBvaW50IGluIHByYWN0aWNlLiBUbyBiZSBhYnNvbHV0ZWx5IHNhZmUsIEknbGwgYWRkIGBzdG1tYWNfeG1pdGAgdG8gdGhlIGxpc3QuXG5cbk5vdywgd2hhdCBhYm91dCBgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgPyBMZXQncyB0cmFjZSBpdC4gSXQncyBjYWxsZWQgYnkgYGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIGlzIGNhbGxlZCBieSBgYWxsb2NfZG1hX2Rlc2NfcmVzb3VyY2VzYCwgd2hpY2ggaXMgY2FsbGVkIGJ5Li4uIG9rYXksIGxvb2tzIGxpa2UgYHN0bW1hY19vcGVuYCBhbmQgYHN0bW1hY19yZXN1bWVgLiBSaWdodC4gSXQncyB0aW1lIHRvIGNoZWNrIG91dCBgc3RtbWFjX29wZW5gLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTg3NywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoxMy40NzI0ODcxMzlaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2MDUyMzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19vcGVuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTQwODE9c3RtbWFjX3NldHVwX2RtYV9kZXNjKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgdW5zaWduZWQgaW50IG10dSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDE0Ni0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQxNDc6ICogIF9fc3RtbWFjX29wZW4gLSBvcGVuIGVudHJ5IHBvaW50IG9mIHRoZSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxNDgtICogIEBkZXYgOiBwb2ludGVyIHRvIHRoZSBkZXZpY2Ugc3RydWN0dXJlLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MTU1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDE1NjpzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQxNTctXFx0XFx0XFx0IHN0cnVjdCBzdG1tYWNfZG1hX2NvbmYgKmRtYV9jb25mKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjA0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NDIwNTpzdGF0aWMgaW50IHN0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy00MjA2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNDIzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjQyMzM6XFx0cmV0ID0gX19zdG1tYWNfb3BlbihkZXYsIGRtYV9jb25mKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTQyMzQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjE0NT1zdGF0aWMgaW50IHN0bW1hY19jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MTgwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NjE4MTpcXHRcXHRyZXQgPSBfX3N0bW1hY19vcGVuKGRldiwgZG1hX2NvbmYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjE4Mi1cXHRcXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNDA9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBzdG1tYWNfbmV0ZGV2X29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNDE6XFx0Lm5kb19vcGVuID0gc3RtbWFjX29wZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzQyLVxcdC5uZG9fc3RhcnRfeG1pdCA9IHN0bW1hY194bWl0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03NjI3PWludCBzdG1tYWNfcmVpbml0X3F1ZXVlcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCByeF9jbnQsIHU4IHR4X2NudClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzY0Ni1cXHRpZiAobmV0aWZfcnVubmluZyhkZXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzY0NzpcXHRcXHRyZXQgPSBzdG1tYWNfb3BlbihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzY0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzY1Mj1pbnQgc3RtbWFjX3JlaW5pdF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJ4X3NpemUsIHUzMiB0eF9zaXplKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjYzLVxcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NjY0OlxcdFxcdHJldCA9IHN0bW1hY19vcGVuKGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjY1LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoxMy41MTg1NDYwNDZaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE2OTYxNTE1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIEkgZGVsdmUgaW50byB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyJ3MgRnVuY3Rpb24gQ2FsbHMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgdGhlIFNUTU1BQyBkcml2ZXIgaXMgc3RydWN0dXJlZCwgc3BlY2lmaWNhbGx5IGhvdyB0aGUgbmV0d29yayBkZXZpY2Ugb3BlcmF0aW9ucyBhcmUgZGVmaW5lZC4gSSBzZWUgdGhhdCBgc3RtbWFjX29wZW5gIGFuZCBgc3RtbWFjX3htaXRgIGFyZSBib3RoIGRlY2xhcmVkIGFzIHN0YXRpYyBmdW5jdGlvbnMsIHdoaWNoIGlzIHN0YW5kYXJkIHByYWN0aWNlIGZvciBpbnRlcm5hbCBkcml2ZXIgZnVuY3Rpb25zLCBidXQgdGhleSdyZSBhc3NpZ25lZCB0byB0aGUgYHN0bW1hY19uZXRkZXZfb3BzYCBzdHJ1Y3R1cmUuIFRoYXQgbWFrZXMgcGVyZmVjdCBzZW5zZSwgdGhleSBhcmUgdGhlIGVudHJ5IHBvaW50cyBmb3IgdGhlIG5ldHdvcmsgZGV2aWNlLiBOb3csIEknbSB0cnlpbmcgdG8gdHJhY2UgdGhlIGRhdGEgZmxvdyBhbmQgSSdtIHdvbmRlcmluZyB3aGVyZSBlbHNlIGBzdG1tYWNfdHhfY2xlYW5gIGZpdHMgaW50byB0aGlzIHBpY3R1cmUsIGFzIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB0cmFuc21pdCBwYXRoLlxuXG5JIGtub3cgYHN0bW1hY190eF9jbGVhbmAgaXMgcmVzcG9uc2libGUgZm9yIGNsZWFuaW5nIHVwIHRoZSB0cmFuc21pdCBxdWV1ZSwgb2J2aW91c2x5LiBJJ20gYXdhcmUgdGhhdCBgc3RtbWFjX3R4X2NsZWFuYCBpcyBjYWxsZWQgYnkgYHN0bW1hY190eF90aW1lcmAgYW5kIGBzdG1tYWNfcG9sbGAuIFNpbmNlIGBzdG1tYWNfcG9sbGAgaGFuZGxlcyB0aGUgaW50ZXJydXB0IGRyaXZlbiBjb21wbGV0aW9uLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGF0IG5leHQuIEkgd2lsbCBleGFtaW5lIGBzdG1tYWNfcG9sbGAgYW5kIGl0cyByZWxhdGlvbnNoaXAgd2l0aCBgc3RtbWFjX3R4X2NsZWFuYCB0byBmdWxseSB1bmRlcnN0YW5kIGhvdyB0cmFuc21pdCBkZXNjcmlwdG9ycyBhcmUgcHJvY2Vzc2VkLiBJJ20gY29uZmlkZW50IHRoYXQgdW5kZXJzdGFuZGluZyB0aGlzIGNhbGwgcGF0aCB3aWxsIGNsYXJpZnkgdGhlIGRyaXZlcidzIHRyYW5zbWl0IG1lY2hhbmlzbS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc1NzEsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoxNy42ODgxNjQ2MDJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NjAzOTI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzdG1tYWNfcG9sbFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjE3LjczNDc3NzgzOVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjIwMzE2NDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQgaW4gdGhpcyBmaWVsZCwgYW5kIHdyaXRpbmcgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipQb3RlbnRpYWwgU3VzcGVjdCBJZGVudGlmaWVkOiBgc3RtbWFjX25hcGlfcG9sbGAqKlxuXG5IbW0sIGp1c3QgYSBtb21lbnQuIE15IGluaXRpYWwgbGluZSBvZiByZWFzb25pbmcgd2FzIGxlYWRpbmcgbWUgZG93biBhIGNlcnRhaW4gcGF0aCwgYnV0IHNvbWV0aGluZydzIG5hZ2dpbmcgYXQgbWUuIENvbnNpZGVyaW5nIHRoZSBjb250ZXh0LCBhbmQgdGhlIHNwZWNpZmljIG51YW5jZXMgb2YgdGhlIHNpdHVhdGlvbiwgSSdtIGJlZ2lubmluZyB0byByZWNvbnNpZGVyLiBUaGUgcG90ZW50aWFsIGN1bHByaXQsIHRoZSBmdW5jdGlvbiB0aGF0J3MgbW9zdCBsaWtlbHkgY2F1c2luZyB0aGUgaXNzdWUsIGlzIGluY3JlYXNpbmdseSBwb2ludGluZyB0b3dhcmRzIGBzdG1tYWNfbmFwaV9wb2xsYC4gSSBzaG91bGQndmUgc2VlbiBpdCBzb29uZXIuIEkgbmVlZCB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgdGhhdCBmdW5jdGlvbi4gSXQncyBsaWtlbHkgaW52b2x2ZWQgaW4gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGNvbnRyb2xsZXLigJlzIHBvbGxpbmcgbWVjaGFuaXNtLiBJIHNob3VsZCBzdGFydCB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc5OTcsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoyMS45NTUwOTcwNzJaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3MTY3MjA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInN0bW1hY19uYXBpX3BvbGxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NTcxNj1zdGF0aWMgaW50IHN0bW1hY19yeChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGludCBsaW1pdCwgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy01OTg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NTk4NzpzdGF0aWMgaW50IHN0bW1hY19uYXBpX3BvbGxfcngoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNTk4OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYwMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MDEzOnN0YXRpYyBpbnQgc3RtbWFjX25hcGlfcG9sbF90eChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MDE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjA0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjYwNDY6c3RhdGljIGludCBzdG1tYWNfbmFwaV9wb2xsX3J4dHgoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjA0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc1Nzc9c3RhdGljIHZvaWQgc3RtbWFjX25hcGlfYWRkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OTEtXFx0XFx0aWYgKHF1ZXVlIFxcdTAwM2MgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlcnhfcXVldWVzX3RvX3VzZSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5MjpcXHRcXHRcXHRuZXRpZl9uYXBpX2FkZChkZXYsIFxcdTAwMjZjaC1cXHUwMDNlcnhfbmFwaSwgc3RtbWFjX25hcGlfcG9sbF9yeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTkzLVxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzU5NS1cXHRcXHRcXHRuZXRpZl9uYXBpX2FkZF90eChkZXYsIFxcdTAwMjZjaC1cXHUwMDNldHhfbmFwaSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc1OTY6XFx0XFx0XFx0XFx0XFx0ICBzdG1tYWNfbmFwaV9wb2xsX3R4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OTctXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjAwLVxcdFxcdFxcdG5ldGlmX25hcGlfYWRkKGRldiwgXFx1MDAyNmNoLVxcdTAwM2VyeHR4X25hcGksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NjAxOlxcdFxcdFxcdFxcdCAgICAgICBzdG1tYWNfbmFwaV9wb2xsX3J4dHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzYwMi1cXHRcXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjIyLjAwMjI2OTkwOVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0ODY2NDU5NzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBTVE1NQUMgRHJpdmVyIFBvbGwgRnVuY3Rpb25zIGZvciBPcHRpbWl6YXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEZyb20gd2hhdCBJIHNlZSwgYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCBhcmUgdGhlIGNvcmUgTmV0d29yayBBUEkgKE5BUEkpIHBvbGwgZnVuY3Rpb25zIGluIHRoaXMgU1RNTUFDIGRyaXZlci4gU28sIEkgbmVlZCB0byBmb2N1cyBvbiBrZXkgc3ltYm9scyByZWxhdGVkIHRvIHRoZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSBvcGVyYXRpb25zLiBJdCBsb29rcyBsaWtlIHRoZSBtb3N0IHJlbGV2YW50IG9uZXMgYXJlOiBgc3RtbWFjX3htaXRgLCBgc3RtbWFjX29wZW5gLCBgc3RtbWFjX25hcGlfcG9sbF90eGAsIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YC5cblxuTm93LCBgc3RtbWFjX3htaXRgIGltbWVkaWF0ZWx5IGNhdGNoZXMgbXkgZXllIGFzIGEgcG90ZW50aWFsIGVudHJ5IHBvaW50IGZvciB0cmFuc21pdC4gSG9sZCBvbi4uLiBJIHNlZSB0aGF0IGBzdG1tYWNfdHhfY2xlYW5gIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggYHN0bW1hY19uYXBpX3BvbGxfdHhgIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YCwgc28gaXQncyBvYnZpb3VzbHkgaW1wb3J0YW50IGZvciBjbGVhbmluZyB1cCB0aGUgdHJhbnNtaXQgcHJvY2Vzcy4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgaWYgYHN0bW1hY194bWl0YCBpcyBzdGF0aWMuIFllcywgaXQncyBtYXJrZWQgYXMgc3RhdGljLCBidXQgaXQncyBhc3NpZ25lZCB0byBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0J3MgYSBrZXkgZGV0YWlsISBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24gdGhlcmUuXG5cbk15IG5leHQgc3RlcCBpcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSAqbm9uKi1zdGF0aWMgZnVuY3Rpb25zIHRoYXQgSSBjYW4gbGV2ZXJhZ2Ugb3IgdW5kZXJzdGFuZCBiZXR0ZXIuIExldCBtZSBxdWlja2x5IGNoZWNrIHRoZSBgc3RtbWFjX21haW4uY2AgZmlsZSB0byBzZWUgd2hhdCBmdW5jdGlvbnMgYXJlIGJlaW5nIGV4cG9ydGVkLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgY2xlYXJlciBwaWN0dXJlIG9mIHRoZSBkcml2ZXIncyBleHRlcm5hbCBpbnRlcmZhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5MDQ1LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjI2Ljg2ODc0MzY1NloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ0MTc1MjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRVhQT1JUX1NZTUJPTFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MTk1PWludCBzdG1tYWNfc2V0X2Nsa190eF9yYXRlKHZvaWQgKmJzcF9wcml2LCBzdHJ1Y3QgY2xrICpjbGtfdHhfaSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjA4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjIwOTpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfc2V0X2Nsa190eF9yYXRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTIxMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9MjE3PXZvaWQgc3RtbWFjX2F4aV9ibGVuX3RvX21hc2sodTMyICpyZWd2YWwsIGNvbnN0IHUzMiAqYmxlbiwgc2l6ZV90IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtMjQ2LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjI0NzpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfYXhpX2JsZW5fdG9fbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0yNDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTMyMjI9aW50IHN0bW1hY19nZXRfcGh5X2ludGZfc2VsKHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTMyMzctfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6MzIzODpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfZ2V0X3BoeV9pbnRmX3NlbCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy0zMjM5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03NzkwPXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqc3RtbWFjX3BsYXRfZGF0X2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzgyMy19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3ODI0OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19wbGF0X2RhdF9hbGxvYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03ODI1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MTM4PWludCBzdG1tYWNfZHZyX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE1NC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4MTU1OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19kdnJfcHJvYmUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE1Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9ODE2Mz12b2lkIHN0bW1hY19kdnJfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODE5Ni19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4MTk3OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19kdnJfcmVtb3ZlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgxOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgyMDY9aW50IHN0bW1hY19zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtODI1Ny19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo4MjU4OkVYUE9SVF9TWU1CT0xfR1BMKHN0bW1hY19zdXNwZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTgyNTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTgzMDI9aW50IHN0bW1hY19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzg4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjgzODk6RVhQT1JUX1NZTUJPTF9HUEwoc3RtbWFjX3Jlc3VtZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04MzkwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz04MzkyPURFRklORV9TSU1QTEVfREVWX1BNX09QUyhzdG1tYWNfc2ltcGxlX3BtX29wcywgc3RtbWFjX3N1c3BlbmQsIHN0bW1hY19yZXN1bWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6ODM5MzpFWFBPUlRfU1lNQk9MX0dQTChzdG1tYWNfc2ltcGxlX3BtX29wcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy04Mzk0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjoyNi45MTMxNjg0MjNaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTI2Nzk2NDc3OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFNUTU1BQyBEcml2ZXIncyBBcmNoaXRlY3R1cmUqKlxuXG5Pa2F5LCBzbyBgc3RtbWFjX2R2cl9wcm9iZWAgaXMgdGhlIGVudHJ5IHBvaW50LCB0aGUgbWFpbiBwcm9iZSBmdW5jdGlvbiwgdGhhdCBtYWtlcyBzZW5zZS4gQnV0IHRoZSBuZXR3b3JrIG9wZXJhdGlvbnMgdGhlbXNlbHZlcywgdGhvc2UgYXJlIGRlY2xhcmVkIGFzIGBzdGF0aWNgLiBUaGF0IGltbWVkaWF0ZWx5IGp1bXBzIG91dCBhdCBtZSBiZWNhdXNlIHRoZSBkb2N1bWVudGF0aW9uIHNwZWNpZmljYWxseSBhZHZpc2VzIGFnYWluc3QgdXNpbmcgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMgd2hlcmUgcG9zc2libGUsIHByZWZlcnJpbmcgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnRzLiBUaGUgcmVhc29uIGlzIHByZXR0eSBjbGVhciDigJMgdGhvc2Ugc3RhdGljIGZ1bmN0aW9ucyBhcmUgb2Z0ZW4gaW5saW5lZCwgYW5kIGRvbid0IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcy5cblxuTm93LCBgc3RtbWFjX3htaXRgIGlzICp0ZWNobmljYWxseSogc3RhdGljLCBidXQgaXQncyBhc3NpZ25lZCB0byBgbmRvX3N0YXJ0X3htaXRgLiBUaGF0IGFsb25lIHRlbGxzIG1lIGl0J3MgKm5vdCogaW5saW5lZCwgYmVjYXVzZSBpdHMgYWRkcmVzcyBpcyBiZWluZyB0YWtlbi4gVGhlIHNhbWUgbG9naWMgbGlrZWx5IGFwcGxpZXMgdG8gYHN0bW1hY19vcGVuYCwgYHN0bW1hY19uYXBpX3BvbGxfdHhgLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAuICBXZSBjYW4gZWFzaWx5IHZlcmlmeSB0aGF0IGJ5IGxpc3RpbmcgdGhlbSwganVzdCB0byBiZSBzdXJlLlxuXG5OZXh0IHN0ZXA6IGxldCdzIHZlcmlmeSB0aGUgS2NvbmZpZyBvcHRpb25zIHRoYXQgYXJlIHJlcXVpcmVkIHRvIGVuYWJsZSB0aGlzLiBUaGUgZHJpdmVyJ3MgYFNUTU1BQ19FVEhgLCBzbyBsZXQncyBjaGVjayB0aGUgcmVsZXZhbnQgYEtjb25maWdgIGZpbGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTAyOCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjozMi4xODExMzcxMzNaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5Mzc5NDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfRVRIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjMyLjIzMDUyMjc5OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzQ4MDkxMTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudCoqXG5cblJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byBpZGVudGlmeSB0aGUgZGVwZW5kZW5jaWVzLiBXZSdyZSBkZWFsaW5nIHdpdGggYSBzeXN0ZW0sIGEgcHJvY2VzcywgYSBwcm9ibGVtIOKAkyB3aGF0ZXZlciBcIml0XCIgaXMg4oCTIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBmb3VuZGF0aW9uYWwgZWxlbWVudHMgaXMgcGFyYW1vdW50LiBXaGF0IGFyZSB0aGUga2V5IHZhcmlhYmxlcz8gVGhlIGNvcmUgaW5wdXRzPyBUaGUgdW5kZXJseWluZyBhc3N1bXB0aW9ucz8gUGlucG9pbnRpbmcgdGhlc2UgZGVwZW5kZW5jaWVzIGlzIHRoZSBlc3NlbnRpYWwgZmlyc3Qgc3RlcCB0byBhbnkgZWZmZWN0aXZlIGFuYWx5c2lzLiBXaGVyZSBkbyB3ZSBiZWdpbiB0byB1bnJhdmVsIGNvbXBsZXhpdHk/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNjQ1LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNjozNC45Nzg2MTcxMzZaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyOTE3MjM2NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yPWNvbmZpZyBTVE1NQUNfRVRIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0OlxcdGRlcGVuZHMgb24gSEFTX0lPTUVNIFxcdTAwMjZcXHUwMDI2IEhBU19ETUFcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjU6XFx0ZGVwZW5kcyBvbiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NjpcXHRkZXBlbmRzIG9uIEVUSFRPT0xfTkVUTElOS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNy1cXHRzZWxlY3QgTUlJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwPWNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cXHRib29sIFxcXCJTdXBwb3J0IGZvciBTVE1NQUMgU2VsZnRlc3RzXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjI6XFx0ZGVwZW5kcyBvbiBJTkVUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMy1cXHRkZWZhdWx0IG5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9NDQ9Y29uZmlnIERXTUFDX0RXQ19RT1NfRVRIXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQ3LVxcdHNlbGVjdCBNSUlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQ4OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz02MD1jb25maWcgRFdNQUNfQU5BUklPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy02Mi1cXHRkZWZhdWx0IEFSQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NjM6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTY0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Njk9Y29uZmlnIERXTUFDX0VJQzc3MDBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTcwLVxcdHRyaXN0YXRlIFxcXCJTdXBwb3J0IGZvciBFc3dpbiBlaWM3NzAwIGV0aGVybmV0IGRyaXZlclxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjcxOlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgSEFTX0RNQSBcXHUwMDI2XFx1MDAyNiBBUkNIX0VTV0lOIHx8IENPTVBJTEVfVEVTVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNzItXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz03OD1jb25maWcgRFdNQUNfSU5HRU5JQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04MC1cXHRkZWZhdWx0IE1BQ0hfSU5HRU5JQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6ODE6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiBIQVNfSU9NRU0gXFx1MDAyNlxcdTAwMjYgKE1BQ0hfSU5HRU5JQyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy04Mi1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz05MD1jb25maWcgRFdNQUNfSVBRODA2WFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy05Mi1cXHRkZWZhdWx0IEFSQ0hfUUNPTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6OTM6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9RQ09NIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTk0LVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEwNj1jb25maWcgRFdNQUNfTFBDMThYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMDgtXFx0ZGVmYXVsdCBBUkNIX0xQQzE4WFhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjEwOTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX0xQQzE4WFggfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTEwLVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTExND1jb25maWcgRFdNQUNfTUVESUFURUtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQyN3h4IEdNQUMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNjpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNy1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEyMj1jb25maWcgRFdNQUNfTUVTT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTI0LVxcdGRlZmF1bHQgQVJDSF9NRVNPTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTI1OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMSyBcXHUwMDI2XFx1MDAyNiAoQVJDSF9NRVNPTiB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMjYtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMzM9Y29uZmlnIERXTUFDX05VVk9UT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTM1LVxcdGRlZmF1bHQgQVJDSF9NQTM1XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMzY6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9NQTM1IHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTEzNy1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNDU9Y29uZmlnIERXTUFDX1FDT01fRVRIUU9TXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE0Ny1cXHRkZWZhdWx0IEFSQ0hfUUNPTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTQ4OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfUUNPTSB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xNDktXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNTU9Y29uZmlnIERXTUFDX1JFTkVTQVNfR0JFVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTU3LVxcdGRlZmF1bHQgQVJDSF9SRU5FU0FTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxNTg6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE1OS1cXHRzZWxlY3QgUENTX1JaTjFfTUlJQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNjg9Y29uZmlnIERXTUFDX1JPQ0tDSElQXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3MC1cXHRkZWZhdWx0IEFSQ0hfUk9DS0NISVBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjE3MTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1JPQ0tDSElQIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE3Mi1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xNzk9Y29uZmlnIERXTUFDX1JaTjFcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTgxLVxcdGRlZmF1bHQgQVJDSF9SWk4xXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxODI6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9SWk4xIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE4My1cXHRzZWxlY3QgUENTX1JaTjFfTUlJQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xOTMtXFx0ZGVmYXVsdCBBUkNIX1MzMlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTk0OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfUzMyIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5NS1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIwMz1jb25maWcgRFdNQUNfU09DRlBHQVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDUtXFx0ZGVmYXVsdCBBUkNIX0lOVEVMX1NPQ0ZQR0FcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA3LVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTIxOD1jb25maWcgRFdNQUNfU09QSEdPXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTktXFx0dHJpc3RhdGUgXFxcIlNvcGhnbyBkd21hYyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjIwOlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfU09QSEdPIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIyMS1cXHRkZWZhdWx0IG0gaWYgQVJDSF9TT1BIR09cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MjI5PWNvbmZpZyBEV01BQ19TUEFDRU1JVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjMwLVxcdHRyaXN0YXRlIFxcXCJTcGFjZW1pdCBkd21hYyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjMxOlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfU1BBQ0VNSVQgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjMyLVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI0MT1jb25maWcgRFdNQUNfU1RBUkZJVkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0Mi1cXHR0cmlzdGF0ZSBcXFwiU3RhckZpdmUgZHdtYWMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI0MzpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1NUQVJGSVZFIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI0NC1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNTM9Y29uZmlnIERXTUFDX1NUSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNTUtXFx0ZGVmYXVsdCBBUkNIX1NUSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjU2OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfU1RJIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI1Ny1cXHRzZWxlY3QgTUZEX1NZU0NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yNjU9Y29uZmlnIERXTUFDX1NUTTMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI2Ny1cXHRkZWZhdWx0IEFSQ0hfU1RNMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI2ODpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTSBcXHUwMDI2XFx1MDAyNiAoQVJDSF9TVE0zMiB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNjktXFx0c2VsZWN0IE1GRF9TWVNDT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjc3PWNvbmZpZyBEV01BQ19TVU5YSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yNzktXFx0ZGVmYXVsdCBBUkNIX1NVTlhJXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyODA6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9TVU5YSSB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yODEtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yODg9Y29uZmlnIERXTUFDX1NVTjhJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5MC1cXHRkZWZhdWx0IEFSQ0hfU1VOWElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5MTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTI5Mi1cXHRzZWxlY3QgTURJT19CVVNfTVVYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMwMD1jb25maWcgRFdNQUNfU1VONTVJXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwMi1cXHRkZWZhdWx0IEFSQ0hfU1VOWElcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMwMzpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX1NVTlhJIHx8IENPTVBJTEVfVEVTVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwNC1cXHRzZWxlY3QgTURJT19CVVNfTVVYXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTMxMj1jb25maWcgRFdNQUNfVEhFQURcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMxMy1cXHR0cmlzdGF0ZSBcXFwiVC1IRUFEIGR3bWFjIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMTQ6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiAoQVJDSF9USEVBRCB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMTUtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zMjI9Y29uZmlnIERXTUFDX0lNWDhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzI0LVxcdGRlZmF1bHQgQVJDSF9NWENcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjMyNTpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX01YQyB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMjYtXFx0c2VsZWN0IE1GRF9TWVNDT05cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzM0PWNvbmZpZyBEV01BQ19JTlRFTF9QTEFUXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzUtXFx0dHJpc3RhdGUgXFxcIkludGVsIGR3bWFjIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzozMzY6XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiBDT01NT05fQ0xLXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMzctXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNDQ9Y29uZmlnIERXTUFDX0xPT05HU09OMVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNDYtXFx0ZGVmYXVsdCBNQUNIX0xPT05HU09OMzJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM0NzpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChNQUNIX0xPT05HU09OMzIgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzQ4LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzU1PWNvbmZpZyBEV01BQ19URUdSQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzU2LVxcdHRyaXN0YXRlIFxcXCJOVklESUEgVGVncmEgTUdCRSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzU3OlxcdGRlcGVuZHMgb24gQVJDSF9URUdSQSB8fCBDT01QSUxFX1RFU1RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM1OC1cXHRoZWxwXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM2ND1jb25maWcgRFdNQUNfVklTQ09OVElcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzY2LVxcdGRlZmF1bHQgQVJDSF9WSVNDT05USVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY3OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgQ09NTU9OX0NMSyBcXHUwMDI2XFx1MDAyNiAoQVJDSF9WSVNDT05USSB8fCBDT01QSUxFX1RFU1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNjgtXFx0aGVscFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzg9Y29uZmlnIERXTUFDX0lOVEVMXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM4MC1cXHRkZWZhdWx0IFg4NlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgxOlxcdGRlcGVuZHMgb24gWDg2IFxcdTAwMjZcXHUwMDI2IFBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgyOlxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzgzOlxcdGRlcGVuZHMgb24gQUNQSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzg0LVxcdGhlbHBcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzg4PWNvbmZpZyBEV01BQ19MT09OR1NPTlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zOTAtXFx0ZGVmYXVsdCBNQUNIX0xPT05HU09ONjRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5MTpcXHRkZXBlbmRzIG9uIChNQUNIX0xPT05HU09ONjQgfHwgQ09NUElMRV9URVNUKSBcXHUwMDI2XFx1MDAyNiBQQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM5MjpcXHRkZXBlbmRzIG9uIENPTU1PTl9DTEtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM5My1cXHRzZWxlY3QgU1RNTUFDX0xJQlBDSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzk5LVxcdHRyaXN0YXRlIFxcXCJNb3RvcmNvbW0gUENJIERXTUFDIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDA6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwMS1cXHRzZWxlY3QgTU9UT1JDT01NX1BIWVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz00MDc9Y29uZmlnIFNUTU1BQ19QQ0lcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwOC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBDSSBidXMgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDEwOlxcdGRlcGVuZHMgb24gQ09NTU9OX0NMS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDExLVxcdHNlbGVjdCBTVE1NQUNfTElCUENJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjM1LjIwNzc5NzgyWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwMTUyNzYwNTk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU1RNTUFDIERyaXZlciBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIFNUTU1BQyBkcml2ZXIgY29uZmlndXJhdGlvbi4gVGhlIG1haW4gZm9jdXMgaGVyZSBzZWVtcyB0byBiZSBgU1RNTUFDX0VUSGAuIFRoYXQncyB0aGUgY29yZSwgYnV0IHRoaXMgcGF0Y2ggYWxzbyB0b3VjaGVzIGBhcmNoL2FybTY0L2Jvb3QvZHRzL2ludGVsL3NvY2ZwZ2FfYWdpbGV4NS5kdHNpYCwgd2hpY2ggaW1tZWRpYXRlbHkgc3VnZ2VzdHMgaXQncyBiZWluZyB1c2VkIG9uIEludGVsIFNPQ0ZQR0FzLiBTbywgYERXTUFDX1NPQ0ZQR0FgIGNvbWVzIGludG8gcGxheS5cblxuVGhlIGNydWNpYWwgcGFydCBpcyB0aGUgY2hhbmdlIHdpdGhpbiBgc3RtbWFjX21haW4uY2AsIGFuZCB0aGF0J3MgZ292ZXJuZWQgYnkgYFNUTU1BQ19FVEhgLiBOb3csIGBTVE1NQUNfRVRIYCBpdHNlbGYgZGVwZW5kcyBvbiBgSEFTX0lPTUVNIFx1MDAyNlx1MDAyNiBIQVNfRE1BIFx1MDAyNlx1MDAyNiBQVFBfMTU4OF9DTE9DS19PUFRJT05BTCBcdTAwMjZcdTAwMjYgRVRIVE9PTF9ORVRMSU5LYC4gVG8gdGVzdCB0aGlzIHByb3Blcmx5LCBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBkcml2ZXIgbm90IG9ubHkgY29tcGlsZXMgYnV0ICpwcm9iZXMqIGNvcnJlY3RseS5cblxuSW5pdGlhbGx5LCBJIHRob3VnaHQgZW5hYmxpbmcgYFNUTU1BQ19FVEhgIGFuZCBwb3NzaWJseSBgRFdNQUNfU09DRlBHQWAsIGBTVE1NQUNfUENJYCwgb3IgYERXTUFDX0lOVEVMYCB3b3VsZCBiZSBzdWZmaWNpZW50IGZvciBjb21wcmVoZW5zaXZlIHRlc3RpbmcsIGNvdmVyaW5nIHRoZSBjb21waWxhdGlvbiBhbmQgcHJvYmluZyBhc3BlY3QuIEJ1dCB0aGVuIEkgcmVhbGl6ZWQgYFNUTU1BQ19FVEhgIGlzIGVub3VnaCB0byBjb21waWxlIHRoZSBkcml2ZXIgY29yZS4gVGhlIHByb2JlIGlzIHdoYXQgcmVsaWVzIG9uIGEgcGxhdGZvcm0gb3IgUENJIGRyaXZlci5cblxuR2l2ZW4gUENJIGRldmljZXMgYXJlIGVhc2lseSBlbXVsYXRlZCBvciBwcm9iZWQgd2l0aGluIHN5emthbGxlciwgYFNUTU1BQ19FVEhgIGFuZCBgU1RNTUFDX1BDSWAgc2VlbSBsaWtlIGEgZGVjZW50IGNvbWJpbmF0aW9uIGZvciBjb21waWxlLWFuZC1wcm9iZSB0ZXN0aW5nLiBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgYERXTUFDX1NPQ0ZQR0FgIHJlbGllcyBvbiBgQVJDSF9JTlRFTF9TT0NGUEdBIHx8IENPTVBJTEVfVEVTVGAsIHdoaWNoIGlzbid0IGVzc2VudGlhbCBmb3IganVzdCBidWlsZGluZyBhbmQgdGVzdGluZyB0aGUgZHJpdmVyLiBTbywgc3RpY2tpbmcgd2l0aCBgU1RNTUFDX0VUSGAgYW5kIGBTVE1NQUNfUENJYCBzaG91bGQgZG8uXG5cbkEgY3J1Y2lhbCBwb2ludCBub3cgaXMgdGhlIGB0eF9idWZfcXVpcmtgLiBUaGlzIGlzIHNldCB3aXRoaW4gYHN0bW1hY19wbGF0Zm9ybS5jYC4gSXMgdGhhdCBmaWxlIGV2ZW4gYmVpbmcgY29tcGlsZWQ/IEEgcXVpY2sgY2hlY2sgcmV2ZWFscyBgb2JqLSQoQ09ORklHX1NUTU1BQ19QTEFURk9STSkgKz0gc3RtbWFjLXBsYXRmb3JtLm9gLiBgU1RNTUFDX1BMQVRGT1JNYCBpcyBzZWxlY3RlZCBieSBhbGwgcGxhdGZvcm0gZHJpdmVycy4gU28sIEkgbmVlZCB0byBlbmFibGUgYFNUTU1BQ19QTEFURk9STWAgb3Igb25lIG9mIHRoZSBwbGF0Zm9ybSBkcml2ZXJzIHRvIGVuc3VyZSBgc3RtbWFjX3BsYXRmb3JtLmNgIGdldHMgaW5jbHVkZWQuXG5cbk15IGZpbmFsIGxpc3QgZm9yIHRlc3Rpbmcgd2lsbCBpbmNsdWRlIGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCBgRFdNQUNfU09DRlBHQWAuIEFuZCwgeWVzLCBgU1RNTUFDX1BMQVRGT1JNYCBpcyBhIGNvbmZpZyBvcHRpb24gaW4gaXRzIG93biByaWdodC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzY0NjgsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0OTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjY6NDUuMzYwNTYxMjI2WiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTE5NjY5NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU1RNTUFDX1BMQVRGT1JNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0yMD1jb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5OmNvbmZpZyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMwLVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUGxhdGZvcm0gYnVzIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDA3OjI2OjQ1LjQyNTc2ODYzMVoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDEyMDg2ODI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEN1cnJlbnQgQXNzZXNzbWVudCBvZiB0aGUgU1RNTUFDIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGBTVE1NQUNfUExBVEZPUk1gIGlzIGluZGVlZCBhIHRyaXN0YXRlIG9wdGlvbi4gVGhhdCBtZWFucywgdG8gY29ycmVjdGx5IGVuYWJsZSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMsIG15IGBFbmFibGVDb25maWdzYCBsaXN0IG5lZWRzIHRvIGluY2x1ZGU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGFuZCwgZ2l2ZW4gdGhlIERldmljZSBUcmVlIGNoYW5nZSwgYERXTUFDX1NPQ0ZQR0FgLiBUaGF0IHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZC5cblxuQnV0IGhhbmcgb27igKYgdGhpcyBuZXcgXCJwYWdlIHBvb2xcIiBmZWF0dXJl4oCmIGl0IGxvb2tzIGxpa2UgaXQncyBkZXBlbmRlbnQgb24gYFBBR0VfUE9PTGAuIE5vdywgdGhlIGNydWNpYWwgcXVlc3Rpb246IGlzIGBQQUdFX1BPT0xgIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgc29tZXdoZXJlLCBvciBkbyBJIG5lZWQgdG8gZXhwbGljaXRseSBlbmFibGUgaXQ/IExldCdzIHF1aWNrbHkgdmVyaWZ5IGluIGBuZXQvY29yZS9LY29uZmlnYCBvciBhIHNpbWlsYXIgY29uZmlndXJhdGlvbiBmaWxlLCB0aGUgdXN1YWwgbG9jYXRpb24gZm9yIHRoZXNlIGRlcGVuZGVuY2llcy4gSSdtIGZhaXJseSBjZXJ0YWluIHRoZSBzdGFuZGFyZCBiZWhhdmlvciBpcyBmb3IgYFBBR0VfUE9PTGAgdG8gYmUgKnNlbGVjdGVkKiBieSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBpdC5cblxuTm93LCBhIGNyaXRpY2FsIHBvaW50LCBhbmQgSSBuZWVkIHRvIGJlIGNlcnRhaW4gYWJvdXQgdGhpczogZG9lcyBgU1RNTUFDX0VUSGAgaXRzZWxmIHNlbGVjdCBgUEFHRV9QT09MYD8gVGhhdCdzIHRoZSBrZXkuIElmIGl0IGRvZXMsIHRoZW4gSSdtIGdvb2QgdG8gZ28uIElmIG5vdCwgSSdsbCBuZWVkIHRvIGV4cGxpY2l0bHkgYWRkIGBQQUdFX1BPT0xgIHRvIHRoZSBjb25maWd1cmF0aW9uLCBvciB0cmFjZSB0aGUgZGVwZW5kZW5jeSBjaGFpbiB0byB1bmRlcnN0YW5kIHdoZXJlIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGhhcHBlbi4gVGhpcyB3aWxsIGRldGVybWluZSBpZiB0aGUgY29uZmlndXJhdGlvbiBpcyBjb21wbGV0ZSBhbmQgY29ycmVjdC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc2OTMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjY6NTAuNDM3ODU4MTY4WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjA0MTUxNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJQQUdFX1BPT0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTI9Y29uZmlnIFNUTU1BQ19FVEhcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctOC1cXHRzZWxlY3QgUENTX1hQQ1NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjk6XFx0c2VsZWN0IFBBR0VfUE9PTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTAtXFx0c2VsZWN0IFBIWUxJTktcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMDc6MjY6NTAuNDgzOTA4OTQ1WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0OTczMzQ4NzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBzdG1tYWMgRHJpdmVyIGZvciBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgSSd2ZSBnb3QgdGhpcy4gRmlyc3QsIHRoZSBwYXRjaCBzZWxlY3RzIGBQQUdFX1BPT0xgLCB0aGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBMZXQncyBkaWcgaW4gYW5kIHJldmlldyB0aG9zZSBmb2N1cyBzeW1ib2xzOiBgc3RtbWFjX3htaXRgLCBgc3RtbWFjX29wZW5gLCBgc3RtbWFjX25hcGlfcG9sbF90eGAsIGFuZCBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YC5cblxuTm93LCB3YWl0IGEgbWludXRlLCBgc3RtbWFjX3htaXRgIGlzIHN0YXRpYywgd2hpY2ggaXMgdXN1YWxseSBhIHJlZCBmbGFnLiBCdXQsIGhhbmcgb24sIGl0J3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLCB3aGljaCBtZWFucyBpdCBpc24ndCBpbmxpbmVkISBUaGF0J3MgcGVyZmVjdDsgaXQgaGFzIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MgYW5kLCB0aGVyZWZvcmUsIGlzIGEgdmFsaWQgZW50cnkgcG9pbnQuIFRoZSBzYW1lIGdvZXMgZm9yIGBzdG1tYWNfb3BlbmAgKGFzc2lnbmVkIHRvIGBuZG9fb3BlbmApLCBgc3RtbWFjX25hcGlfcG9sbF90eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZF90eGApLCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAgKGFzc2lnbmVkIHRvIGBuZXRpZl9uYXBpX2FkZGApLiBFeGNlbGxlbnQuIExldCdzIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBuYW1lcyBhZ2FpbiBpbiBgc3RtbWFjX21haW4uY2A6IGBzdG1tYWNfeG1pdGAsIGBzdG1tYWNfb3BlbmAsIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCwgYW5kIGBzdG1tYWNfbmFwaV9wb2xsX3J4dHhgIOKAkyBhbGwgY29ycmVjdC5cblxuQWhhLCBhbmQgYHN0bW1hY19vcGVuYCBjYWxscyBgX19zdG1tYWNfb3BlbmAsIHdoaWNoIGluIHR1cm4gY2FsbHMgYGFsbG9jX2RtYV9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIHRoZW4gY2FsbHMgYGFsbG9jX2RtYV90eF9kZXNjX3Jlc291cmNlc2AsIHdoaWNoIGV2ZW50dWFsbHkgY2FsbHMgYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYC4gTmljZSwgdGhhdCBjb25maXJtcyB0aGF0IGBzdG1tYWNfb3BlbmAgaXMgYSBzb2xpZCBlbnRyeSBwb2ludCwgYW5kIHRoYXQgY292ZXJzIHRoZSBhbGxvY2F0aW9uLiBBbmQgYHN0bW1hY194bWl0YCBpcyB0aGUgdHJhbnNtaXQgZW50cnkgcG9pbnQuIGBzdG1tYWNfbmFwaV9wb2xsX3R4YCBhbmQgYHN0bW1hY19uYXBpX3BvbGxfcnh0eGAgZXZlbnR1YWxseSBjYWxsIGBzdG1tYWNfdHhfY2xlYW5gLCB3aGljaCBjYWxscyBgc3RtbWFjX2ZyZWVfdHhfYnVmZmVyYC4gU28gdGhhdCBjb25maXJtcyB0aG9zZSBjb3ZlciB0aGUgY2xlYW51cCBhbmQgdHJhbnNtaXQgcGF0aHMuIFRoaXMgY292ZXJzIGFsbCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocywgc28gd2UgaGF2ZSBnb29kIGNvdmVyYWdlLlxuXG5Ob3csIGNhbiB3ZSBhY3R1YWxseSBoaXQgdGhpcyBpbiBRRU1VPyBIbW0sIFFFTVUgZG9lc24ndCBlbXVsYXRlIHRoZSBzcGVjaWZpYyBgc29jZnBnYV9hZ2lsZXg1YCBkZXZpY2UgZGlyZWN0bHksIGJ1dCBpdCBkb2VzIGhhdmUgZW11bGF0aW9uIGZvciBgbnBjbTd4eGAgKHdoaWNoIGhhcyBhbiBFTUMpLCBhbmQgYGFsbHdpbm5lci1zdW44aS1lbWFjYCwgYW5kIGBody9uZXQvZGVzaWdud2FyZS5jYCwgd2hpY2ggaXMgdGhlIERlc2lnbldhcmUgTUFDIChEV01BQykuIEFuZCB0aGUgYHN0bW1hY2AgZHJpdmVyICppcyogdGhlIGRyaXZlciBmb3IgRGVzaWduV2FyZSBNQUMuIFNvLCB5ZXMsIHdlIGNhbiByZWFjaCBpdCB2aWEgdGhlIGBkZXNpZ253YXJlYCBuZXR3b3JrIGRldmljZSBlbXVsYXRpb24uIEFuZCBldmVuIGJldHRlciwgc3l6a2FsbGVyIGNhbiBmdXp6IFBDSSBkZXZpY2VzLCBhbmQgYHN0bW1hY2AgaGFzIGEgUENJIGJpbmRpbmcgKGBTVE1NQUNfUENJYCkuIEV2ZW4gdGhvdWdoIHRoaXMgcXVpcmsgaXMgZW5hYmxlZCB2aWEgdGhlIERULCB0aGUgcGFnZSBwb29sIGFsbG9jYXRpb24gaW4gYF9fYWxsb2NfZG1hX3R4X2Rlc2NfcmVzb3VyY2VzYCBpcyB1bmNvbmRpdGlvbmFsIGFuZCBhZmZlY3RzIGFsbCBgc3RtbWFjYCBkZXZpY2VzLCBpbmNsdWRpbmcgUENJIG9uZXMuIFNvLCB0aGUgY29yZSBjaGFuZ2VzIGFyZSBhYnNvbHV0ZWx5IHJlYWNoYWJsZSBhbmQgZnVuY3Rpb25hbC5cblxuT2theSwgbGV0IG1lIHN1bW1hcml6ZSBteSBmaW5kaW5nczpcblxuKiAgICoqV29ydGhGdXp6aW5nOiB0cnVlKipcblxuKiAgICoqRm9jdXNTeW1ib2xzOioqXG5cbiAgICAqICAgYHN0bW1hY194bWl0YFxuICAgICogICBgc3RtbWFjX29wZW5gXG4gICAgKiAgIGBzdG1tYWNfbmFwaV9wb2xsX3R4YFxuICAgICogICBgc3RtbWFjX25hcGlfcG9sbF9yeHR4YFxuXG4qICAgKipFbmFibGVDb25maWdzOioqXG5cbiAgICAqICAgYFNUTU1BQ19FVEhgXG4gICAgKiAgIGBTVE1NQUNfUExBVEZPUk1gXG4gICAgKiAgIGBEV01BQ19TT0NGUEdBYFxuICAgICogICBgU1RNTUFDX1BDSWBcblxuKiAgICoqUmVhc29uaW5nOioqIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBgc3RtbWFjYCBkcml2ZXIgZHVyaW5nIGluaXRpYWxpemF0aW9uIChgX19hbGxvY19kbWFfdHhfZGVzY19yZXNvdXJjZXNgKS4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoYHN0bW1hY194bWl0YCkgYW5kIGNsZWFudXAgcGF0aCAoYHN0bW1hY190eF9jbGVhbmApIHRvIHVzZSB0aGVzZSBwYWdlIHBvb2xzIHdoZW4gYSBuZXcgZGV2aWNlIHRyZWUgcXVpcmsgKGBzbnBzLHBhZ2Vwb29sLXR4LWJ1Zi1xdWlya2ApIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXG5cbkp1c3QgbmVlZCB0byB2ZXJpZnkgdGhvc2UgY29uZmlnIG5hbWVzIG9uZSBtb3JlIHRpbWU6IGBTVE1NQUNfRVRIYCwgYFNUTU1BQ19QTEFURk9STWAsIGBEV01BQ19TT0NGUEdBYCwgYW5kIGBTVE1NQUNfUENJYC4gWWVwLCBhbGwgY29ycmVjdC4gVGhhdCdzIGEgZ3JlZW4gbGlnaHRcblxuIiwiSW5wdXRUb2tlbnMiOjM4MjcwLCJPdXRwdXRUb2tlbnMiOjIyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QwNzoyNzowNS40NTcyNjA0NTJaIiwiU2VxIjoyOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzQ5NzU2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiU1RNTUFDX0VUSFwiLFxuICAgIFwiU1RNTUFDX1BMQVRGT1JNXCIsXG4gICAgXCJEV01BQ19TT0NGUEdBXCIsXG4gICAgXCJTVE1NQUNfUENJXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic3RtbWFjX3htaXRcIixcbiAgICBcInN0bW1hY19vcGVuXCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3R4XCIsXG4gICAgXCJzdG1tYWNfbmFwaV9wb2xsX3J4dHhcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYnkgdW5jb25kaXRpb25hbGx5IGFsbG9jYXRpbmcgYSBwYWdlIHBvb2wgZm9yIGV2ZXJ5IFRYIHF1ZXVlIGluIHRoZSBzdG1tYWMgZHJpdmVyIGR1cmluZyBpbml0aWFsaXphdGlvbi4gSXQgYWxzbyBtb2RpZmllcyB0aGUgdHJhbnNtaXQgcGF0aCAoc3RtbWFjX3htaXQpIGFuZCBjbGVhbnVwIHBhdGggKHN0bW1hY190eF9jbGVhbikgdG8gdXNlIHRoZXNlIHBhZ2UgcG9vbHMgd2hlbiBhIG5ldyBkZXZpY2UgdHJlZSBxdWlyayAoc25wcyxwYWdlcG9vbC10eC1idWYtcXVpcmspIGlzIGVuYWJsZWQuIFRoZSBjb3JlIGRyaXZlciBjaGFuZ2VzIGFyZSByZWFjaGFibGUgdmlhIHN0YW5kYXJkIG5ldHdvcmsgb3BlcmF0aW9ucyAob3BlbiwgeG1pdCwgTkFQSSBwb2xsKSBhbmQgYWZmZWN0IG1lbW9yeSBhbGxvY2F0aW9uIGZvciBhbGwgZGV2aWNlcyB1c2luZyB0aGlzIGRyaXZlciwgbWFraW5nIGl0IHdvcnRoIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowbb9h9[1] Phase: Succeeded StartedAt: 2026-08-03 07:27:32 +0000 UTC FinishedAt: 2026-08-03 07:27:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-03 07:27:32 +0000 UTC FinishedAt: 2026-08-03 07:27:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2] Phase: Succeeded StartedAt: 2026-08-03 07:27:32 +0000 UTC FinishedAt: 2026-08-03 08:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN) Phase: Failed StartedAt: 2026-08-03 07:27:32 +0000 UTC FinishedAt: 2026-08-03 08:15:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-03 07:27:32 +0000 UTC FinishedAt: 2026-08-03 07:27:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-03 07:27:32 +0000 UTC FinishedAt: 2026-08-03 07:27:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbb9h9/series-workflowbb9h9-convert-artifact-1184840183/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-03 07:27:42 +0000 UTC FinishedAt: 2026-08-03 07:43:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-03 07:27:42 +0000 UTC FinishedAt: 2026-08-03 07:43:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d7e10779-30c3-4d61-aa62-3497238be0a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbb9h9/series-workflowbb9h9-convert-artifact-1184840183/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "a9fa77cc-e140-4db0-8a25-76bb8f6d9e4c", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbb9h9/series-workflowbb9h9-build-action-2185546829/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-03 07:27:42 +0000 UTC FinishedAt: 2026-08-03 07:43:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*d7e10779-30c3-4d61-aa62-3497238be0a6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbb9h9/series-workflowbb9h9-convert-artifact-1184840183/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "a9fa77cc-e140-4db0-8a25-76bb8f6d9e4c", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbb9h9/series-workflowbb9h9-build-action-2185546829/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-03 07:43:47 +0000 UTC FinishedAt: 2026-08-03 07:43:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-03 07:43:47 +0000 UTC FinishedAt: 2026-08-03 07:43:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-03 07:43:47 +0000 UTC FinishedAt: 2026-08-03 07:43:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-03 07:43:47 +0000 UTC FinishedAt: 2026-08-03 07:43:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbb9h9/series-workflowbb9h9-convert-artifact-652746022/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-03 07:43:57 +0000 UTC FinishedAt: 2026-08-03 08:15:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-03 07:43:57 +0000 UTC FinishedAt: 2026-08-03 08:14:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a9fa77cc-e140-4db0-8a25-76bb8f6d9e4c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbb9h9/series-workflowbb9h9-build-action-2185546829/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": false },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-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5] Phase: Failed StartedAt: 2026-08-03 08:15:10 +0000 UTC FinishedAt: 2026-08-03 08:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbb9h9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["stmmac_xmit","stmmac_open","stmmac_napi_poll_tx","stmmac_napi_poll_rxtx"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"415606a7be939835db9b0d6b711887586646346d","config_name":"upstream-apparmor-kasan.config","enable_configs":["STMMAC_ETH","STMMAC_PLATFORM","DWMAC_SOCFPGA","STMMAC_PCI"],"series_id":"2bf278d7-4dcf-416f-9db3-2915443d2851","tree_name":"linux-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/next/linux-next"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Failed StartedAt: 2026-08-03 08:15:10 +0000 UTC FinishedAt: 2026-08-03 08:15:25 +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,}