Name: series-workflowx8bz8 Phase: Succeeded StartedAt: 2026-08-16 18:31:03 +0000 UTC FinishedAt: 2026-08-16 19:15:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[0] Phase: Succeeded StartedAt: 2026-08-16 18:31:03 +0000 UTC FinishedAt: 2026-08-16 18:35:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[0].run-triage Phase: Succeeded StartedAt: 2026-08-16 18:31:03 +0000 UTC FinishedAt: 2026-08-16 18:35:09 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_8851BU", "RTW89_8852AU", "RTW89_8852BU", "RTW89_8852CU", "RTW89_8922AU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_8851BU", "RTW89_8852AU", "RTW89_8852BU", "RTW89_8852CU", "RTW89_8922AU" ], "series_id": "9de760ec-d2cd-47ac-945d-e5c1e864c9d8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw8851bu_probe", "rtw8852au_probe", "rtw8852bu_probe", "rtw8852cu_probe", "rtw8922au_probe", "rtw89_usb_probe" ], "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+CgkJCTx0ZD4yMDI2LzA4LzE2IDE4OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQVUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJDVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84OTIyQVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYnVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyY3VfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODkyMmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg5X3VzYl9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB0aGF0IG9jY3VycyB3aGVuIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgaXMgMCAod2hpY2ggY2FuIGhhcHBlbiB3aGVuIGEgVVNCIGRldmljZSBpcyBib3VuZCBkeW5hbWljYWxseSB2aWEgc3lzZnMgYG5ld19pZGApLiBUaGUgZml4IHByb3ZpZGVzIGEgZmFsbGJhY2sgdG8gYSBzdGF0aWMgZHJpdmVyIGluZm8gc3RydWN0dXJlLiBUaGlzIGRvZXMgbm90IGludm9sdmUgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlcnNwYWNlLiBTdGFuZGFyZCBLQVNBTiBhbmQga2VybmVsIG9vcHMgbWVjaGFuaXNtcyBhcmUgZnVsbHkgY2FwYWJsZSBvZiBkZXRlY3RpbmcgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVx1MDAzZWRyaXZlcl9pbmZvYCBpcyBOVUxMLCBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBgcnR3ODlfdXNiX3Byb2JlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBVU0IgcHJvYmUgcGF0aCwgd2hpY2ggaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE2IDE4OjMzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOTAyMzdhNGNiZWFjODBmYTY5NWY3MDBkNTM5YzM0NDliMmFiMTUzYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDE2IDE4OjMzOjU4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jXG5pbmRleCAxZTgyNzIwNWYyNTQwLi40MzJkMjE2ZGU4NzQ2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuQEAgLTU5LDEwICYjNDM7NTksMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUxYnVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTtcbiBcbiYjNDM7c3RhdGljIGludCBydHc4ODUxYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4mIzQzO1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbiYjNDM7e1xuJiM0MztcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbiYjNDM7XG4mIzQzO1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuJiM0MztcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODg1MWJ1X2luZm87XG4mIzQzO1xuJiM0MztcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUxYnVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUxYnVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4mIzQzO1x0LnByb2JlID0gcnR3ODg1MWJ1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuY1xuaW5kZXggMDY1ZjRlNWIxN2FmYS4uYTM3YjYwYjU4NGYyNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbkBAIC03MywxMCAmIzQzOzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmF1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJhdV9pZF90YWJsZSk7XG4gXG4mIzQzO3N0YXRpYyBpbnQgcnR3ODg1MmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuJiM0MztcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4mIzQzO3tcbiYjNDM7XHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4mIzQzO1xuJiM0MztcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbiYjNDM7XHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJhdV9pbmZvO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmF1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MmF1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuJiM0MztcdC5wcm9iZSA9IHJ0dzg4NTJhdV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmNcbmluZGV4IGRlNzlhMTlhMjgyNGQuLjgxYjYxNTZhOGQyN2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG5AQCAtNzMsMTAgJiM0Mzs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJidV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpO1xuIFxuJiM0MztzdGF0aWMgaW50IHJ0dzg4NTJidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbiYjNDM7XHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuJiM0Mzt7XG4mIzQzO1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuJiM0MztcbiYjNDM7XHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4mIzQzO1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyYnVfaW5mbztcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJidV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTJidV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbiYjNDM7XHQucHJvYmUgPSBydHc4ODUyYnVfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJidV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jXG5pbmRleCAyZGVjOWI4NDU0ODE1Li4wNjdjNmJiMDA3YjMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuQEAgLTEzMywxMCAmIzQzOzEzMywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJjdV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpO1xuIFxuJiM0MztzdGF0aWMgaW50IHJ0dzg4NTJjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbiYjNDM7XHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuJiM0Mzt7XG4mIzQzO1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuJiM0MztcbiYjNDM7XHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4mIzQzO1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyY3VfaW5mbztcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJjdV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTJjdV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbiYjNDM7XHQucHJvYmUgPSBydHc4ODUyY3VfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jXG5pbmRleCA1NmM3OWIxZWM4NjVmLi4yZjYwMDIxNzA0ZTA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuQEAgLTc0LDEwICYjNDM7NzQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184OTIyYXVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODkyMmF1X2lkX3RhYmxlKTtcbiBcbiYjNDM7c3RhdGljIGludCBydHc4OTIyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4mIzQzO1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbiYjNDM7e1xuJiM0MztcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbiYjNDM7XG4mIzQzO1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuJiM0MztcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODkyMmF1X2luZm87XG4mIzQzO1xuJiM0MztcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184OTIyYXVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184OTIyYXVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4mIzQzO1x0LnByb2JlID0gcnR3ODkyMmF1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuY1xuaW5kZXggYWFmYThiOWU5M2RmYy4uMWQ3Yzc0NTU3YWIxMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbkBAIC0xMjAxLDE1ICYjNDM7MTIwMSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBydHc4OV91c2JfZ3JvdXAgPSB7XG4gX19BVFRSSUJVVEVfR1JPVVBTKHJ0dzg5X3VzYik7XG4gXG4gaW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi1cdFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbiYjNDM7XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm8pXG4ge1xuLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuIFx0c3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2O1xuIFx0c3RydWN0IHJ0dzg5X3VzYiAqcnR3dXNiO1xuIFx0aW50IHJldDtcbiBcbi1cdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4tXG4gXHRydHdkZXYgPSBydHc4OV9hbGxvY19pZWVlODAyMTFfaHcoXHUwMDI2aW50Zi1cdTAwM2VkZXYsXG4gXHRcdFx0XHRcdCAgc2l6ZW9mKHN0cnVjdCBydHc4OV91c2IpLCBpbmZvKTtcbiBcdGlmICghcnR3ZGV2KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcbmluZGV4IGJkZjMxMjU1OTc0MzguLjM3MjYyMGQwODUxZTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXG5AQCAtOTUsNyAmIzQzOzk1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3ODlfdXNiICpydHc4OV91c2JfcHJpdihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4gfVxuIFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tXHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xuJiM0MztcdFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbyk7XG4gdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG4gXG4gI2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQVUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJDVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84OTIyQVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYnVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyY3VfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODkyMmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg5X3VzYl9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIHdyYXBwZXIgZnVuY3Rpb25zIGZvciBVU0IgcHJvYmUgaW4gc2V2ZXJhbCBydHc4OSBkcml2ZXJzIHRvIGhhbmRsZSBjYXNlcyB3aGVyZSBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIE5VTEwsIHByZXZlbnRpbmcgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIGBydHc4OV91c2JfcHJvYmVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCB3aGljaCBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBkdW1teV9oY2QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5MDIzN2E0Y2JlYWM4MGZhNjk1ZjcwMGQ1MzljMzQ0OWIyYWIxNTNhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBBdWcgMTYgMTg6MzM6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuYwppbmRleCAxZTgyNzIwNWYyNTQwLi40MzJkMjE2ZGU4NzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMKQEAgLTU5LDEwICYjNDM7NTksMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUxYnVfaWRfdGFibGVbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTFidV9pZF90YWJsZSk7CiAKJiM0MztzdGF0aWMgaW50IHJ0dzg4NTFidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKJiM0MzsJCQkgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiYjNDM7CiYjNDM7CWlmIChpZC0mZ3Q7ZHJpdmVyX2luZm8pCiYjNDM7CQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKJiM0MzsJZWxzZQomIzQzOwkJaW5mbyA9ICZhbXA7cnR3ODlfODg1MWJ1X2luZm87CiYjNDM7CiYjNDM7CXJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7CiYjNDM7fQomIzQzOwogc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUxYnVfZHJpdmVyID0gewogCS5uYW1lID0gS0JVSUxEX01PRE5BTUUsCiAJLmlkX3RhYmxlID0gcnR3Xzg4NTFidV9pZF90YWJsZSwKLQkucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsCiYjNDM7CS5wcm9iZSA9IHJ0dzg4NTFidV9wcm9iZSwKIAkuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LAogfTsKIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jCmluZGV4IDA2NWY0ZTViMTdhZmEuLmEzN2I2MGI1ODRmMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYwpAQCAtNzMsMTAgJiM0Mzs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJhdV9pZF90YWJsZVtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MmF1X2lkX3RhYmxlKTsKIAomIzQzO3N0YXRpYyBpbnQgcnR3ODg1MmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAomIzQzOwkJCSAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKJiM0Mzt7CiYjNDM7CWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKJiM0MzsKJiM0MzsJaWYgKGlkLSZndDtkcml2ZXJfaW5mbykKJiM0MzsJCWluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtJmd0O2RyaXZlcl9pbmZvOwomIzQzOwllbHNlCiYjNDM7CQlpbmZvID0gJmFtcDtydHc4OV84ODUyYXVfaW5mbzsKJiM0MzsKJiM0MzsJcmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJhdV9kcml2ZXIgPSB7CiAJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwKIAkuaWRfdGFibGUgPSBydHdfODg1MmF1X2lkX3RhYmxlLAotCS5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSwKJiM0MzsJLnByb2JlID0gcnR3ODg1MmF1X3Byb2JlLAogCS5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsCiB9OwogbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJhdV9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMKaW5kZXggZGU3OWExOWEyODI0ZC4uODFiNjE1NmE4ZDI3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jCkBAIC03MywxMCAmIzQzOzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmJ1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4ODUyYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg4NTJidV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmJ1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184ODUyYnVfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4ODUyYnVfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmJ1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuYwppbmRleCAyZGVjOWI4NDU0ODE1Li4wNjdjNmJiMDA3YjMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMKQEAgLTEzMywxMCAmIzQzOzEzMywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJjdV9pZF90YWJsZVtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MmN1X2lkX3RhYmxlKTsKIAomIzQzO3N0YXRpYyBpbnQgcnR3ODg1MmN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAomIzQzOwkJCSAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKJiM0Mzt7CiYjNDM7CWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKJiM0MzsKJiM0MzsJaWYgKGlkLSZndDtkcml2ZXJfaW5mbykKJiM0MzsJCWluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtJmd0O2RyaXZlcl9pbmZvOwomIzQzOwllbHNlCiYjNDM7CQlpbmZvID0gJmFtcDtydHc4OV84ODUyY3VfaW5mbzsKJiM0MzsKJiM0MzsJcmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJjdV9kcml2ZXIgPSB7CiAJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwKIAkuaWRfdGFibGUgPSBydHdfODg1MmN1X2lkX3RhYmxlLAotCS5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSwKJiM0MzsJLnByb2JlID0gcnR3ODg1MmN1X3Byb2JlLAogCS5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsCiB9OwogbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMKaW5kZXggNTZjNzliMWVjODY1Zi4uMmY2MDAyMTcwNGUwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jCkBAIC03NCwxMCAmIzQzOzc0LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODkyMmF1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184OTIyYXVfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4OTIyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg5MjJhdV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODkyMmF1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184OTIyYXVfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4OTIyYXVfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODkyMmF1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYwppbmRleCBhYWZhOGI5ZTkzZGZjLi4xZDdjNzQ1NTdhYjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMKQEAgLTEyMDEsMTUgJiM0MzsxMjAxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHJ0dzg5X3VzYl9ncm91cCA9IHsKIF9fQVRUUklCVVRFX0dST1VQUyhydHc4OV91c2IpOwogCiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAotCQkgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzOwkJICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbykKIHsKLQljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiAJc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2OwogCXN0cnVjdCBydHc4OV91c2IgKnJ0d3VzYjsKIAlpbnQgcmV0OwogCi0JaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87Ci0KIAlydHdkZXYgPSBydHc4OV9hbGxvY19pZWVlODAyMTFfaHcoJmFtcDtpbnRmLSZndDtkZXYsCiAJCQkJCSAgc2l6ZW9mKHN0cnVjdCBydHc4OV91c2IpLCBpbmZvKTsKIAlpZiAoIXJ0d2RldikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmgKaW5kZXggYmRmMzEyNTU5NzQzOC4uMzcyNjIwZDA4NTFlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oCkBAIC05NSw3ICYjNDM7OTUsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBydHc4OV91c2IgKnJ0dzg5X3VzYl9wcml2KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldikKIH0KIAogaW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKLQkJICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7CiYjNDM7CQkgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKTsKIHZvaWQgcnR3ODlfdXNiX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpOwogCiAjZW5kaWYKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4MgoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDMzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgcnR3ODkgV2lyZWxlc3MgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIHRoZSBgcnR3ODlgIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlYWxpbmcgd2l0aCBSZWFsdGVrIDgwMi4xMWF4IGhhcmR3YXJlIOKAkyBpbnRlcmVzdGluZy4gSXQgbG9va3MgbGlrZSB0aGUgbWFpbiBwb2ludCBoZXJlIGlzIGEgY2hhbmdlIGluIGhvdyB0aGUgYHJ0dzg5X3VzYl9wcm9iZWAgZnVuY3Rpb24gaXMgY2FsbGVkLCBzcGVjaWZpY2FsbHkgZm9yIFVTQiBkZXZpY2VzLiBJIHNlZSB0aGF0IGluc3RlYWQgb2YgZGlyZWN0bHkgcGFzc2luZyB0aGUgYHVzYl9kZXZpY2VfaWRgIHN0cnVjdCB0byB0aGUgcHJvYmUgZnVuY3Rpb24sIHRoZXJlJiMzOTtzIG5vdyBhIHdyYXBwZXIgcHJvYmUgZnVuY3Rpb24gaW50cm9kdWNlZCBmb3IgZWFjaCBzcGVjaWZpYyBkZXZpY2UgdHlwZTogYHJ0dzg4NTFidWAsIGBydHc4ODUyYXVgLCBldGMuCgpUaGUgY3JpdGljYWwgcGFydCBpcyB0aGUgY2hlY2sgZm9yIGBpZC0mZ3Q7ZHJpdmVyX2luZm9gLiBJZiBgZHJpdmVyX2luZm9gIGlzbiYjMzk7dCBzZXQsIHdoaWNoIEkgYXNzdW1lIGNhbiBoYXBwZW4gdW5kZXIgc3BlY2lmaWMgY2lyY3Vtc3RhbmNlcywgdGhlIHdyYXBwZXIgbm93IGZhbGxzIGJhY2sgdG8gYSBkZWZhdWx0IGluZm8gc3RydWN0LCBmb3IgZXhhbXBsZSBgJmFtcDtydHc4OV84ODUxYnVfaW5mb2AuICpUaGlzIGlzIGEgZ29vZCBjYXRjaC4qIFByZXZpb3VzbHksIGlmIGBpZC0mZ3Q7ZHJpdmVyX2luZm9gICp3YXMqIE5VTEwsIGBydHc4OV91c2JfcHJvYmVgIHdvdWxkIGhhdmUgYmxpbmRseSBjYXN0IHRoYXQgTlVMTCBwb2ludGVyIHRvIGBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmAgYW5kIGFsbW9zdCBjZXJ0YWlubHkgY3Jhc2hlZCB0aGUga2VybmVsIHdoZW4gZGVyZWZlcmVuY2luZyBpdC4gIEEgY2xhc3NpYyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UsIGFuZCBsaWtlbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4KCkl0JiMzOTtzIGhhcHBlbmluZyB3aXRoaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCBhbmQgdGhhdCYjMzk7cyBpbXBvcnRhbnQuIFRoaXMgbWVhbnMgdGhhdCBldmVuIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIHRoZSBvbmVzIHVzZWQgd2l0aCBzeXprYWxsZXIgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb25zLCB0aGlzIGNvZGUgcGF0aCBpcyByZWFjaGFibGUuIEdpdmVuIHRoYXQgdnVsbmVyYWJpbGl0eSByZXNlYXJjaCBpcyBteSBmb2N1cywgdGhhdCBtYWtlcyBpdCBldmVuIG1vcmUgaW50ZXJlc3RpbmcuCgpOb3csIGxldCBtZSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGVzZSBkcml2ZXJzIHRvIHNlZSBob3cgZWFzaWx5IHRoZXkgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgYW5kIHVuZGVyc3RhbmQgdGhlIHNjb3BlIG9mIHRoZWlyIHVzZS4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBsb2NhdGUgdGhlIGBLY29uZmlnYCBmaWxlcyBhbmQgc2VlIHdoYXQgSSBjYW4gZmluZC4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGdpdmVzIG1lIGEgc2Vuc2Ugb2YgdGhlIHBvdGVudGlhbCBhdHRhY2sgc3VyZmFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFheCB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTExPWlmIFJUVzg5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM6Y29uZmlnIFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjA6Y29uZmlnIFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjY6Y29uZmlnIFJUVzg5Xzg4NTJBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzI6Y29uZmlnIFJUVzg5Xzg4NTJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OV84ODUyQlRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNi1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mzg6Y29uZmlnIFJUVzg5Xzg4NTJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzktXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQxOmNvbmZpZyBSVFc4OV84OTIyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQyLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NDpjb25maWcgUlRXODlfODkyMkRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00NS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDc6Y29uZmlnIFJUVzg5Xzg4NTFCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Njk6Y29uZmlnIFJUVzg5Xzg4NTJBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTcwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODA6Y29uZmlnIFJUVzg5Xzg4NTJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTgxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTE6Y29uZmlnIFJUVzg5Xzg4NTJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkyLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMzpjb25maWcgUlRXODlfODg1MkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTA0LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExNTpjb25maWcgUlRXODlfODg1MkJURVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkJFLVZUIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjc6Y29uZmlnIFJUVzg5Xzg4NTJDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyOC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM4OmNvbmZpZyBSVFc4OV84ODUyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0OTpjb25maWcgUlRXODlfODkyMkFFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTUwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4OTIyQUUvODkyMkFFLVZTIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjM6Y29uZmlnIFJUVzg5Xzg5MjJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODkyMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5Xzg5MjJERVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3Ni1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODkyMkRFLzg5MjJERS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTg3OmNvbmZpZyBSVFc4OV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4OC1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTkwOmNvbmZpZyBSVFc4OV9ERUJVR01TR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5MS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1ZyBtZXNzYWdlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE5OTpjb25maWcgUlRXODlfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIwMC1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwODpjb25maWcgUlRXODlfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIwOS1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIxNTpjb25maWcgUlRXODlfTEVEU19NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxNi1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTIyCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyB0aGUgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBSVFc4OV84ODUxQlUsIFJUVzg5Xzg4NTJBVSwgUlRXODlfODg1MkJVLCBSVFc4OV84ODUyQ1UsIGFuZCBSVFc4OV84OTIyQVUuIEl0IHNlZW1zIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSB0aGUgcHJpbWFyeSBjb250ZW5kZXJzIHdlJiMzOTtyZSB3b3JraW5nIHdpdGguIE5vdywgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBSVFc4OV9VU0IgZml0IGludG8gdGhpcyBwaWN0dXJlPyBJdCYjMzk7cyBsaWtlbHkgdGhhdCBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjb25maWdzIGltcGxpY2l0bHkgc2VsZWN0IG9yIGRlcGVuZCBvbiBSVFc4OV9VU0IsIGJ1dCBpdCYjMzk7cyBjcnVjaWFsIHRvIGNvbmZpcm0gdGhhdC4gSSBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIgdG8gZW5zdXJlIGV2ZXJ5dGhpbmcgaXMgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIGFuZCB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IHJlZHVuZGFuY2llcyBvciBvbWlzc2lvbnMuIExldCYjMzk7cyBzdGFydCBieSBjaGVja2luZyB0aGUgZGVwZW5kZW5jaWVzIGFuZCBpbmNsdWRlZCBmaWxlcyBmb3IgZWFjaCBvZiB0aGUgbWFpbiBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODlfODg1MUJVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00Nz1jb25maWcgUlRXODlfODg1MUJFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OmNvbmZpZyBSVFc4OV84ODUxQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01OS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODU5NAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgaW50byB0aGUgUlRXODlfODg1MUJVIEtjb25maWcqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCYjMzk7cyBwdWxsIHVwIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgYW5kIHN0YXJ0IGRpc3NlY3RpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdXJyb3VuZGluZyB0aGUgUlRXODlfODg1MUJVLiBUaGlzIHVzdWFsbHkgbWVhbnMgSSYjMzk7bSBsb29raW5nIGZvciBhIHNwZWNpZmljIGZlYXR1cmUsIGRlYnVnZ2luZyBhIHJlcG9ydGVkIGlzc3VlLCBvciBhc3Nlc3NpbmcgdGhlIGltcGFjdCBvZiBhIHBvdGVudGlhbCBjaGFuZ2UuIE15IGluaXRpYWwgZm9jdXMgd2lsbCBiZSBvbiB1bmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgYW55IHRyaXN0YXRlIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIHByZXNlbnQuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgaXMgaW50ZWdyYXRlZCBpbnRvIHRoZSBicm9hZGVyIFJlYWx0ZWsgV2lGaSBlY29zeXN0ZW0gd2l0aGluIHRoZSBrZXJuZWwuIEkmIzM5O2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9yIGluY2x1c2lvbiBndWFyZHMuIFNwZWNpZmljYWxseSwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYW55IGhpbnRzIGFib3V0IHBvd2VyIG1hbmFnZW1lbnQsIHJlZ3VsYXRvcnkgZG9tYWluIHNldHRpbmdzLCBhbmQgcGVyaGFwcyBldmVuIGVhcmx5IGluZGljYXRpb25zIGFib3V0IGludGVyZmFjZS1zcGVjaWZpYyBmbGFncyBsaWtlIFVTQiB2ZXJzdXMgU0RJTyBpbXBsZW1lbnRhdGlvbnMuIEl0IGlzIHByb2JhYmxlLCBJIHdpbGwgYmUgdGhpbmtpbmcgYWJvdXQgaG93IGl0IGlzIGludGVncmF0ZWQgaW50byB0aGUgd2lkZXIgZnJhbWV3b3JrLiBVbHRpbWF0ZWx5LCBteSBnb2FsIGlzIHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiB0aGlzIG1vZHVsZSYjMzk7cyBjb25maWd1cmFibGUgYXNwZWN0cyBhbmQgaG93IHRoZXkgcGxheSB0b2dldGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTg6XHRjb25maWcgUlRXODlfODg1MUJVXG4gIDU5Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuICA2MDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgNjE6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gIDYyOlx0XHRzZWxlY3QgUlRXODlfVVNCXG4gIDYzOlx0XHRzZWxlY3QgUlRXODlfODg1MUJcbiAgNjQ6XHRcdGhlbHBcbiAgNjU6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTFCVSBjaGlwc2V0XG4gIDY2Olx0XG4gIDY3Olx0XHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXG4gIDY4Olx0XG4gIDY5Olx0Y29uZmlnIFJUVzg5Xzg4NTJBRVxuICA3MDpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgNzE6XHRcdGRlcGVuZHMgb24gUENJXG4gIDcyOlx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA3MzpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA3NDpcdFx0c2VsZWN0IFJUVzg5Xzg4NTJBXG4gIDc1Olx0XHRoZWxwXG4gIDc2Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQUUgY2hpcHNldFxuICA3NzpcdFxuICA3ODpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAgNzk6XHRcbiAgODA6XHRjb25maWcgUlRXODlfODg1MkFVXG4gIDgxOlx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuICA4MjpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgODM6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gIDg0Olx0XHRzZWxlY3QgUlRXODlfVVNCXG4gIDg1Olx0XHRzZWxlY3QgUlRXODlfODg1MkFcbiAgODY6XHRcdGhlbHBcbiAgODc6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTJBVSBjaGlwc2V0XG4gIDg4Olx0XG4gIDg5Olx0XHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXG4gIDkwOlx0XG4gIDkxOlx0Y29uZmlnIFJUVzg5Xzg4NTJCRVxuICA5MjpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgOTM6XHRcdGRlcGVuZHMgb24gUENJXG4gIDk0Olx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA5NTpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA5NjpcdFx0c2VsZWN0IFJUVzg5Xzg4NTJCXG4gIDk3Olx0XHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXG4gIDk4Olx0XHRoZWxwXG4gIDk5Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQkUgY2hpcHNldFxuIDEwMDpcdFxuIDEwMTpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAxMDI6XHRcbiAxMDM6XHRjb25maWcgUlRXODlfODg1MkJVXG4gMTA0Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuIDEwNTpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAxMDY6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gMTA3Olx0XHRzZWxlY3QgUlRXODlfVVNCXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTY3OQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFJUVzg5IERyaXZlciBMYW5kc2NhcGUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIHRoZSBSVFc4OSBzZXJpZXMsIHNwZWNpZmljYWxseSB0aGUgVVNCIHZhcmlhbnRzIGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9ucyBsaXN0ZWQ6IFJUVzg5Xzg4NTFCVSwgUlRXODlfODg1MkFVLCBSVFc4OV84ODUyQlUsIFJUVzg5Xzg4NTJDVSwgYW5kIFJUVzg5Xzg5MjJBVS4gVGhlc2UgYXJlIHRoZSBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gdW5kZXJzdGFuZC4KCkkgc2VlIGEgY2xlYXIgc2V0IG9mIHByb2JlIGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggY29uZmlndXJhdGlvbjogYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBgcnR3ODg1MmJ1X3Byb2JlYCwgYHJ0dzg4NTJjdV9wcm9iZWAsIGFuZCBgcnR3ODkyMmF1X3Byb2JlYCwgYXMgd2VsbCBhcyB0aGUgbW9yZSBnZW5lcmljIGBydHc4OV91c2JfcHJvYmVgLiBUaGVzZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdG8gdW5kZXJzdGFuZCBob3cgZWFjaCBoYXJkd2FyZSB2YXJpYW50IGlzIGluaXRpYWxpemVkIGFuZCBtYW5hZ2VkLgoKQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBjb2RlLCBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGUgUlRXODkgc2VyaWVzLiBUaGUgYG1lbnVjb25maWdgIG9wdGlvbiBpcyBgUlRXODlgLCB3aGljaCwgYXMgZXhwZWN0ZWQsIGRlcGVuZHMgb24gdGhlIGBNQUM4MDIxMWAgZnJhbWV3b3JrLiBJIHNob3VsZCBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoYXQgZGVwZW5kZW5jeSwgYnV0IGZpcnN0LCBJIHdpbGwgZ28gdG8gdGhlIHRvcCBvZiBgS2NvbmZpZ2AgZm9yIHRoZSBvdmVyYWxsIGNvbnRleHQuIEdvdHRhIGNoZWNrIHRoZSBiaWcgcGljdHVyZSBiZWZvcmUgem9vbWluZyBpbiBvbiB0aGUgc3BlY2lmaWNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gICAyOlx0bWVudWNvbmZpZyBSVFc4OVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFheCB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XG4gICA3Olx0XHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzZXRzLlxuICAgODpcdFxuICAgOTpcdFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIHJ0dzg5LlxuICAxMDpcdFxuICAxMTpcdGlmIFJUVzg5XG4gIDEyOlx0XG4gIDEzOlx0Y29uZmlnIFJUVzg5X0NPUkVcbiAgMTQ6XHRcdHRyaXN0YXRlXG4gIDE1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgUlRXODlfUENJXG4gIDE4Olx0XHR0cmlzdGF0ZVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBSVFc4OV9VU0JcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA0NzkKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAxODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBSVFc4OSBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgZGl2aW5nIGludG8gdGhlIFJlYWx0ZWsgd2lyZWxlc3Mgc2l0dWF0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgc3BlY2lmaWMgc2V0IG9mIGhhcmR3YXJlIGhlcmUg4oCTIGxpa2VseSBmb2N1c2luZyBvbiB0aGUgUlRXODkgY2hpcHNldC4gSSBzZWUgd2UgbmVlZCB0byBlbnN1cmUgdGhlIFJUVzg5IG1vZHVsZSBpdHNlbGYgaXMgZW5hYmxlZCwgYWxvbmcgd2l0aCBzcGVjaWZpYyBzdWItbW9kdWxlczogUlRXODlfODg1MUJVLCBSVFc4OV84ODUyQVUsIFJUVzg5Xzg4NTJCVSwgUlRXODlfODg1MkNVLCBhbmQgUlRXODlfODkyMkFVLiBUaGlzIHRlbGxzIG1lIHdlIGhhdmUgYSByYW5nZSBvZiBwb3RlbnRpYWwgaGFyZHdhcmUgcmV2aXNpb25zIG9yIGNvbmZpZ3VyYXRpb25zIHdlIG5lZWQgdG8gc3VwcG9ydCB3aXRoaW4gdGhpcyBnZW5lcmFsIFJUVzg5IGZyYW1ld29yay4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGtlcm5lbCBjb25maWcgb3B0aW9ucyB0byBlbnN1cmUgdGhlc2UgYXJlIGFsbCBzZWxlY3RlZC4KClRoZSBpbmNsdXNpb24gb2YgTUFDODAyMTEgYW5kIFVTQiBpcyBleHBlY3RlZCwgZ2l2ZW4gdGhpcyBpcyB3aXJlbGVzcyBoYXJkd2FyZS4gTUFDODAyMTEgaXMgdGhlIHN0YW5kYXJkIHdpcmVsZXNzIHN0YWNrLCBhbmQgVVNCIGlzIHRoZSBsaWtlbHkgcGh5c2ljYWwgaW50ZXJmYWNlLgoKTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIGZvciBlYWNoIG9mIHRob3NlIHN1Yi1tb2R1bGVzLiBUaGUgZm9jdXMgc3ltYm9scyBnaXZlIG1lIGEgY2xlYXIgbGlzdCBvZiB0aGUgZW50cnkgcG9pbnRzOiBgcnR3ODg1MWJ1X3Byb2JlYCwgYHJ0dzg4NTJhdV9wcm9iZWAsIGBydHc4ODUyYnVfcHJvYmVgLCBgcnR3ODg1MmN1X3Byb2JlYCwgYW5kIGBydHc4OTIyYXVfcHJvYmVgLCBhbG9uZyB3aXRoIHRoZSBvdmVyYXJjaGluZyBgcnR3ODlfdXNiX3Byb2JlYC4gVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIGluaXRpYWxpemluZyB0aGUgaGFyZHdhcmUuCgpGaW5hbGx5LCBJJiMzOTttIHNwZWNpZmljYWxseSBpbnRlcmVzdGVkIGluIHRoZSBgcnR3ODlfdXNiX3Byb2JlYCBmdW5jdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5IHRoYXQgaXQmIzM5O3MgYWN0dWFsbHkgZXhwb3J0ZWQg4oCTIG1lYW5pbmcgaXQmIzM5O3MgdmlzaWJsZSBhbmQgY2FsbGFibGUgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsLiBBIHF1aWNrIGNoZWNrIG9mIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jYCB3aWxsIGNvbmZpcm0gdGhpcy4gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBSVFc4OSBVU0IgZHJpdmVyLCBhbmQgaWYgaXQmIzM5O3Mgbm90IGV4cG9ydGVkLCB3ZSYjMzk7dmUgZ290IGEgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTC4qcnR3ODlfdXNiX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jPTEyMDM9aW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jLTEyOTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYzoxMjkyOkVYUE9SVF9TWU1CT0wocnR3ODlfdXNiX3Byb2JlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMtMTI5My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEyOTMKCQkJCQkJCW91dHB1dDogMjQzCgkJCQkJCQl0aG91Z2h0czogMjU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKioKCk9rYXksIHNvIEkgc2VlIHRoaXMgcGF0Y2ggaGFzIGJlZW4gZXhwb3J0ZWQuIEdvb2QuIEl0IGFkZHJlc3NlcyBhIGNyaXRpY2FsIGZ1bmN0aW9uYWwgaXNzdWUgd2l0aGluIHRoZSBydHc4OSBVU0IgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCBpdCBndWFyZHMgYWdhaW5zdCB0aGUgcG9zc2liaWxpdHkgb2YgYGlkLSZndDtkcml2ZXJfaW5mb2AgYmVpbmcgTlVMTCBkdXJpbmcgcHJvYmUgZnVuY3Rpb25zIGxpa2UgYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBldGMuIFRoaXMgcG90ZW50aWFsIE5VTEwgZGVyZWZlcmVuY2Ugd2FzIGEgc2VyaW91cyB2dWxuZXJhYmlsaXR5OyBhIGNyYXNoIHdhaXRpbmcgdG8gaGFwcGVuLiBUaGUgY29yZSBvZiB0aGlzIGZpeCBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIHdyYXBwZXIgZnVuY3Rpb25zLiBFZmZlY3RpdmVseSwgaXQmIzM5O3MgYSBudWxsIGNoZWNrIGJlaW5nIGFkZGVkIHRvIHRoZSBVU0IgcHJvYmUgZmxvdy4KClRoZSBpbmNsdXNpb24gb2YgYFdvcnRoRnV6emluZzogdHJ1ZWAgaXMgc3BvdCBvbiwgZ2l2ZW4gdGhpcyBpcyBub3cgbW9yZSByb2J1c3QgYW5kIGxlc3MgbGlrZWx5IHRvIGZhbGwgb3ZlciBkdWUgdG8gYSBudWxsIHBvaW50ZXIuIFRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgY2xlYXJseSBpZGVudGlmeWluZyB0aGUgcmVsZXZhbnQgcHJvYmUgZnVuY3Rpb25zLCBhbmQgdGhlIGBFbmFibGVDb25maWdzYCByZWluZm9yY2Ugd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIGFmZmVjdGVkLiBUaGUgcGF0Y2gmIzM5O3MgcmVhc29uaW5nIGlzIHNvdW5kOyBpdCBjb3JyZWN0bHkgaWRlbnRpZmllcyB0aGUgaXNzdWUgYXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCBhbmQgaW1wb3J0YW50bHksIGl0IGFja25vd2xlZGdlcyB0aGF0IHRoaXMgY29kZSBwYXRoIGlzIGV4cG9zZWQgaW4gdmlydHVhbGl6ZWQgc2V0dXBzIChwYXJ0aWN1bGFybHkgdGhyb3VnaCBkdW1teV9oY2QpLiBUaGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgYSBwb3NpdGl2ZSBjaGFuZ2UgYW5kIG1pdGlnYXRlcyBhIHBvdGVudGlhbCBzb3VyY2Ugb2YgaW5zdGFiaWxpdHksIGltcHJvdmluZyB0aGUgcm9idXN0bmVzcyBvZiB0aGUgc3lzdGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODkmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MUJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQlUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkNVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg5MjJBVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg4NTFidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmJ1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJjdV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4OTIyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODlfdXNiX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgd3JhcHBlciBmdW5jdGlvbnMgZm9yIFVTQiBwcm9iZSBpbiBzZXZlcmFsIHJ0dzg5IGRyaXZlcnMgdG8gaGFuZGxlIGNhc2VzIHdoZXJlIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODkmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MUJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQlUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkNVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg5MjJBVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg4NTFidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmJ1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJjdV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4OTIyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODlfdXNiX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgd3JhcHBlciBmdW5jdGlvbnMgZm9yIFVTQiBwcm9iZSBpbiBzZXZlcmFsIHJ0dzg5IGRyaXZlcnMgdG8gaGFuZGxlIGNhc2VzIHdoZXJlIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgdGhhdCBvY2N1cnMgd2hlbiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDkwMjM3YTRjYmVhYzgwZmE2OTVmNzAwZDUzOWMzNDQ5YjJhYjE1M2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEF1ZyAxNiAxODozMzo1OCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jCmluZGV4IDFlODI3MjA1ZjI1NDAuLjQzMmQyMTZkZTg3NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuYwpAQCAtNTksMTAgJiM0Mzs1OSwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTFidV9pZF90YWJsZVtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTsKIAomIzQzO3N0YXRpYyBpbnQgcnR3ODg1MWJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAomIzQzOwkJCSAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKJiM0Mzt7CiYjNDM7CWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKJiM0MzsKJiM0MzsJaWYgKGlkLSZndDtkcml2ZXJfaW5mbykKJiM0MzsJCWluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtJmd0O2RyaXZlcl9pbmZvOwomIzQzOwllbHNlCiYjNDM7CQlpbmZvID0gJmFtcDtydHc4OV84ODUxYnVfaW5mbzsKJiM0MzsKJiM0MzsJcmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTFidV9kcml2ZXIgPSB7CiAJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwKIAkuaWRfdGFibGUgPSBydHdfODg1MWJ1X2lkX3RhYmxlLAotCS5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSwKJiM0MzsJLnByb2JlID0gcnR3ODg1MWJ1X3Byb2JlLAogCS5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsCiB9OwogbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTFidV9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmMKaW5kZXggMDY1ZjRlNWIxN2FmYS4uYTM3YjYwYjU4NGYyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jCkBAIC03MywxMCAmIzQzOzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmF1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYXVfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4ODUyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg4NTJhdV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmF1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184ODUyYXVfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4ODUyYXVfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYwppbmRleCBkZTc5YTE5YTI4MjRkLi44MWI2MTU2YThkMjdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMKQEAgLTczLDEwICYjNDM7NzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyYnVfaWRfdGFibGVbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJidV9pZF90YWJsZSk7CiAKJiM0MztzdGF0aWMgaW50IHJ0dzg4NTJidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKJiM0MzsJCQkgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiYjNDM7CiYjNDM7CWlmIChpZC0mZ3Q7ZHJpdmVyX2luZm8pCiYjNDM7CQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKJiM0MzsJZWxzZQomIzQzOwkJaW5mbyA9ICZhbXA7cnR3ODlfODg1MmJ1X2luZm87CiYjNDM7CiYjNDM7CXJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7CiYjNDM7fQomIzQzOwogc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYnVfZHJpdmVyID0gewogCS5uYW1lID0gS0JVSUxEX01PRE5BTUUsCiAJLmlkX3RhYmxlID0gcnR3Xzg4NTJidV9pZF90YWJsZSwKLQkucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsCiYjNDM7CS5wcm9iZSA9IHJ0dzg4NTJidV9wcm9iZSwKIAkuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LAogfTsKIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUyYnVfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jCmluZGV4IDJkZWM5Yjg0NTQ4MTUuLjA2N2M2YmIwMDdiMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuYwpAQCAtMTMzLDEwICYjNDM7MTMzLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmN1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4ODUyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg4NTJjdV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmN1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184ODUyY3VfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4ODUyY3VfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmN1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuYwppbmRleCA1NmM3OWIxZWM4NjVmLi4yZjYwMDIxNzA0ZTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMKQEAgLTc0LDEwICYjNDM7NzQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184OTIyYXVfaWRfdGFibGVbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg5MjJhdV9pZF90YWJsZSk7CiAKJiM0MztzdGF0aWMgaW50IHJ0dzg5MjJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKJiM0MzsJCQkgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiYjNDM7CiYjNDM7CWlmIChpZC0mZ3Q7ZHJpdmVyX2luZm8pCiYjNDM7CQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKJiM0MzsJZWxzZQomIzQzOwkJaW5mbyA9ICZhbXA7cnR3ODlfODkyMmF1X2luZm87CiYjNDM7CiYjNDM7CXJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7CiYjNDM7fQomIzQzOwogc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184OTIyYXVfZHJpdmVyID0gewogCS5uYW1lID0gS0JVSUxEX01PRE5BTUUsCiAJLmlkX3RhYmxlID0gcnR3Xzg5MjJhdV9pZF90YWJsZSwKLQkucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsCiYjNDM7CS5wcm9iZSA9IHJ0dzg5MjJhdV9wcm9iZSwKIAkuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LAogfTsKIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jCmluZGV4IGFhZmE4YjllOTNkZmMuLjFkN2M3NDU1N2FiMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYwpAQCAtMTIwMSwxNSAmIzQzOzEyMDEsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcnR3ODlfdXNiX2dyb3VwID0gewogX19BVFRSSUJVVEVfR1JPVVBTKHJ0dzg5X3VzYik7CiAKIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCi0JCSAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7CQkgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKQogewotCWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKIAlzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXY7CiAJc3RydWN0IHJ0dzg5X3VzYiAqcnR3dXNiOwogCWludCByZXQ7CiAKLQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKLQogCXJ0d2RldiA9IHJ0dzg5X2FsbG9jX2llZWU4MDIxMV9odygmYW1wO2ludGYtJmd0O2RldiwKIAkJCQkJICBzaXplb2Yoc3RydWN0IHJ0dzg5X3VzYiksIGluZm8pOwogCWlmICghcnR3ZGV2KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaAppbmRleCBiZGYzMTI1NTk3NDM4Li4zNzI2MjBkMDg1MWU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmgKQEAgLTk1LDcgJiM0Mzs5NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJ0dzg5X3VzYiAqcnR3ODlfdXNiX3ByaXYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KQogfQogCiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAotCQkgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKJiM0MzsJCSAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm8pOwogdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7CiAKICNlbmRpZgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY3OQoJCQkJCQkJb3V0cHV0OiAxMjQKCQkJCQkJCXRob3VnaHRzOiA2NzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQgbWUgYnJlYWsgZG93biB0aGlzIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyIHBhdGNoLiBJdCYjMzk7cyB0YXJnZXRpbmcgdGhlIHByb2JlIGZ1bmN0aW9ucyB3aXRoaW4gc2V2ZXJhbCBgcnR3ODlgIGZhbWlseSBkcml2ZXJzOiBgcnR3ODg1MWJ1YCwgYHJ0dzg4NTJhdWAsIGBydHc4ODUyYnVgLCBgcnR3ODg1MmN1YCwgYW5kIGBydHc4OTIyYXVgLiBUaGUgY29yZSBjaGFuZ2UgaXMgaW4gaG93IHRoZSBVU0IgcHJvYmUgZnVuY3Rpb24sIGBydHc4OV91c2JfcHJvYmVgLCBoYW5kbGVzIGRyaXZlci1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gSW5zdGVhZCBvZiBkaXJlY3RseSB1c2luZyBhIGB1c2JfZGV2aWNlX2lkYCYjMzk7cyBgZHJpdmVyX2luZm9gIGZpZWxkLCB3aGljaCwgY3JpdGljYWxseSwgaXMgYSBga2VybmVsX3Vsb25nX3RgIGFuZCB0aGVyZWZvcmUgY2FuIGJlIHplcm8sIGl0IG5vdyB0YWtlcyBhIGBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm9gIGRpcmVjdGx5LgoKVGhlIGluZGl2aWR1YWwgZHJpdmVyIGZpbGVzIG5vdyBoYXZlIGEgbmV3IHByb2JlIGZ1bmN0aW9uLCBsaWtlIGBydHc4ODUxYnVfcHJvYmVgLCB3aGljaCBjaGVja3MgaWYgdGhlIGBpZC0mZ3Q7ZHJpdmVyX2luZm9gIHBvaW50ZXIgaXMgdmFsaWQuIElmIGl0ICppcyogc2V0IChub24tTlVMTCwgYWZ0ZXIgdGhlIGNhc3QpLCBpdCB1c2VzIGl0LiBJZiBpdCYjMzk7cyAqbm90KiBzZXQsIGkuZS4sIGlzIHplcm8sIGl0IGZhbGxzIGJhY2sgdG8gYSBkZWZhdWx0IGBydHc4OV84ODUxYnVfaW5mb2Agc3RydWN0LiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQuCgpUaGUgaW5pdGlhbCBwcm9ibGVtIGhlcmUgaXMgY3J5c3RhbCBjbGVhcjogdGhlIGNvZGUgd2FzIGRlcmVmZXJlbmNpbmcgYGlkLSZndDtkcml2ZXJfaW5mb2Agd2hpY2ggY291bGQgYmUgemVyby4gU3BlY2lmaWNhbGx5LCB0aGUgb3JpZ2luYWwgY29kZSBoYWQ6CgpgYGBjCi0JaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CmBgYAoKVGhpcyBwcmVzZW50cyBhIGNsYXNzaWMgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGJ1Zy4gSWYgdGhlIFVTQiBkZXZpY2Ugd2FzIGJvdW5kIHRocm91Z2gsIHNheSwgc3lzZnMmIzM5O3MgYG5ld19pZGAgbWVjaGFuaXNtLCB0aGVuIHRoZSBgZHJpdmVyX2luZm9gIGZpZWxkIGNvdWxkIGJlIDAsIGFuZCB0aGUgYXNzaWdubWVudCB3b3VsZCBoYXZlIGBpbmZvYCBhcyBOVUxMLCB3aGljaCBpcyB0aGVuIHBhc3NlZCBkb3duIHRvIGBydHc4OV9hbGxvY19pZWVlODAyMTFfaHdgLCBhbmQgYm9vbSwgeW91IGNyYXNoLgoKTm93LCB0aGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWU/IE5vLCBhYnNvbHV0ZWx5IG5vdC4gVGhlIHJvb3QgY2F1c2UgaXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBgZHJpdmVyX2luZm9gIGZpZWxkIGlzbiYjMzk7dCAmIzM0O3VuaW5pdGlhbGl6ZWQmIzM0OyBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UuIEl0JiMzOTtzIGluaXRpYWxpemVkIHRvIHplcm8uIFRoZSBwcm9ibGVtIGlzIGRlcmVmZXJlbmNpbmcgYSB6ZXJvIHZhbHVlLiBUaGlzIHBhdGNoIGNsZXZlcmx5IHByb3ZpZGVzIGEgZmFsbGJhY2ssIHByZXZlbnRpbmcgdGhlIGNyYXNoLiBLQVNBTiBvciBhIHN0YW5kYXJkIGtlcm5lbCBvb3BzIHdvdWxkIHF1aWNrbHkgY2F0Y2ggYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgbGlrZSB0aGlzLiBUaGVyZSYjMzk7cyBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBiZWluZyByZWFkIG9yIGxlYWtlZCB0byB1c2Vyc3BhY2UgaGVyZS4KCkxldCYjMzk7cyBxdWlja2x5IHJlLWl0ZXJhdGU6IFRoZSBmaXggYWRkcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIHN0cnVjdCBgJmFtcDtydHc4OV84ODUxYnVfaW5mb2Agd2hlbiBgaWQtJmd0O2RyaXZlcl9pbmZvYCBpcyAwLiBUaGlzIGlzIGEgdmVyeSBjb21tb24gZml4IGZvciBVU0IgZHJpdmVycyB0aGF0IGFzc3VtZSBgZHJpdmVyX2luZm9gIGlzIGFsd2F5cyBhIHZhbGlkIHBvaW50ZXIuIFRoaXMgaXMgYWxsIGFib3V0IHByZXZlbnRpbmcgY3Jhc2hlcyBpbiBVU0IgZHJpdmVycyB3aGVuIGRlYWxpbmcgd2l0aCBkeW5hbWljYWxseSBib3VuZCBkZXZpY2VzIHRocm91Z2ggYG5ld19pZGAuCgpUaGVyZWZvcmUsIHRoZSBgTmVlZHNLTVNBTmAgZmxhZyBpcyBgZmFsc2VgLiBUaGlzIHBhdGNoIGNsZWFybHkgcmVzb2x2ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaXNzdWUsIHNwZWNpZmljYWxseSB3aGVuIGBkcml2ZXJfaW5mb2AgaXMgMCAoYXMgb2Z0ZW4gaGFwcGVucyB3aXRoIGBuZXdfaWRgKSwgYW5kIGlzIG5vdCByZWxhdGVkIHRvIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGUgc3RhbmRhcmQga2VybmVsIHNhZmV0eSBtZWNoYW5pc21zIChLQVNBTiwgT29wcykgYXJlIGZ1bGx5IHN1ZmZpY2llbnQgZm9yIGRldGVjdGluZyBhbmQgbWl0aWdhdGluZyBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgdGhhdCBvY2N1cnMgd2hlbiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgdGhhdCBvY2N1cnMgd2hlbiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjMzOjU5Ljk4Mzg3MDEzMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Njc3ODUzNDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg5XCIsXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTJBVVwiLFxuICAgIFwiUlRXODlfODg1MkJVXCIsXG4gICAgXCJSVFc4OV84ODUyQ1VcIixcbiAgICBcIlJUVzg5Xzg5MjJBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFidV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmF1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyYnVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJjdV9wcm9iZVwiLFxuICAgIFwicnR3ODkyMmF1X3Byb2JlXCIsXG4gICAgXCJydHc4OV91c2JfcHJvYmVcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB0aGF0IG9jY3VycyB3aGVuIGBpZC1cXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzM6NTkuOTgzODc2MzcyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY0MzY1MjA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTAyMzdhNGNiZWFjODBmYTY5NWY3MDBkNTM5YzM0NDliMmFiMTUzYVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAxNiAxODozMzo1OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xcbmluZGV4IDFlODI3MjA1ZjI1NDAuLjQzMmQyMTZkZTg3NDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmNcXG5AQCAtNTksMTAgKzU5LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MWJ1X2lkX3RhYmxlW10gPSB7XFxuIH07XFxuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTtcXG4gXFxuK3N0YXRpYyBpbnQgcnR3ODg1MWJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbitcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuK3tcXG4rXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xcbitcXG4rXFx0aWYgKGlkLVxcdTAwM2Vkcml2ZXJfaW5mbylcXG4rXFx0XFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2luZm87XFxuK1xcdGVsc2VcXG4rXFx0XFx0aW5mbyA9IFxcdTAwMjZydHc4OV84ODUxYnVfaW5mbztcXG4rXFxuK1xcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XFxuK31cXG4rXFxuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MWJ1X2RyaXZlciA9IHtcXG4gXFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcXG4gXFx0LmlkX3RhYmxlID0gcnR3Xzg4NTFidV9pZF90YWJsZSxcXG4tXFx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxcbitcXHQucHJvYmUgPSBydHc4ODUxYnVfcHJvYmUsXFxuIFxcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXFxuIH07XFxuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcXG5pbmRleCAwNjVmNGU1YjE3YWZhLi5hMzdiNjBiNTg0ZjI0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jXFxuQEAgLTczLDEwICs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJhdV9pZF90YWJsZVtdID0ge1xcbiB9O1xcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJhdV9pZF90YWJsZSk7XFxuIFxcbitzdGF0aWMgaW50IHJ0dzg4NTJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4rXFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbit7XFxuK1xcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcXG4rXFxuK1xcdGlmIChpZC1cXHUwMDNlZHJpdmVyX2luZm8pXFxuK1xcdFxcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9pbmZvO1xcbitcXHRlbHNlXFxuK1xcdFxcdGluZm8gPSBcXHUwMDI2cnR3ODlfODg1MmF1X2luZm87XFxuK1xcbitcXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xcbit9XFxuK1xcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJhdV9kcml2ZXIgPSB7XFxuIFxcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXFxuIFxcdC5pZF90YWJsZSA9IHJ0d184ODUyYXVfaWRfdGFibGUsXFxuLVxcdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcXG4rXFx0LnByb2JlID0gcnR3ODg1MmF1X3Byb2JlLFxcbiBcXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxcbiB9O1xcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXFxuaW5kZXggZGU3OWExOWEyODI0ZC4uODFiNjE1NmE4ZDI3ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuY1xcbkBAIC03MywxMCArNzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyYnVfaWRfdGFibGVbXSA9IHtcXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpO1xcbiBcXG4rc3RhdGljIGludCBydHc4ODUyYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuK1xcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4re1xcbitcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XFxuK1xcbitcXHRpZiAoaWQtXFx1MDAzZWRyaXZlcl9pbmZvKVxcbitcXHRcXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfaW5mbztcXG4rXFx0ZWxzZVxcbitcXHRcXHRpbmZvID0gXFx1MDAyNnJ0dzg5Xzg4NTJidV9pbmZvO1xcbitcXG4rXFx0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcXG4rfVxcbitcXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYnVfZHJpdmVyID0ge1xcbiBcXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxcbiBcXHQuaWRfdGFibGUgPSBydHdfODg1MmJ1X2lkX3RhYmxlLFxcbi1cXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXFxuK1xcdC5wcm9iZSA9IHJ0dzg4NTJidV9wcm9iZSxcXG4gXFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcXG4gfTtcXG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJidV9kcml2ZXIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xcbmluZGV4IDJkZWM5Yjg0NTQ4MTUuLjA2N2M2YmIwMDdiMzEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmNcXG5AQCAtMTMzLDEwICsxMzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyY3VfaWRfdGFibGVbXSA9IHtcXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpO1xcbiBcXG4rc3RhdGljIGludCBydHc4ODUyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuK1xcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4re1xcbitcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XFxuK1xcbitcXHRpZiAoaWQtXFx1MDAzZWRyaXZlcl9pbmZvKVxcbitcXHRcXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfaW5mbztcXG4rXFx0ZWxzZVxcbitcXHRcXHRpbmZvID0gXFx1MDAyNnJ0dzg5Xzg4NTJjdV9pbmZvO1xcbitcXG4rXFx0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcXG4rfVxcbitcXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyY3VfZHJpdmVyID0ge1xcbiBcXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxcbiBcXHQuaWRfdGFibGUgPSBydHdfODg1MmN1X2lkX3RhYmxlLFxcbi1cXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXFxuK1xcdC5wcm9iZSA9IHJ0dzg4NTJjdV9wcm9iZSxcXG4gXFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcXG4gfTtcXG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xcbmluZGV4IDU2Yzc5YjFlYzg2NWYuLjJmNjAwMjE3MDRlMDggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmNcXG5AQCAtNzQsMTAgKzc0LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODkyMmF1X2lkX3RhYmxlW10gPSB7XFxuIH07XFxuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODkyMmF1X2lkX3RhYmxlKTtcXG4gXFxuK3N0YXRpYyBpbnQgcnR3ODkyMmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbitcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuK3tcXG4rXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xcbitcXG4rXFx0aWYgKGlkLVxcdTAwM2Vkcml2ZXJfaW5mbylcXG4rXFx0XFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2luZm87XFxuK1xcdGVsc2VcXG4rXFx0XFx0aW5mbyA9IFxcdTAwMjZydHc4OV84OTIyYXVfaW5mbztcXG4rXFxuK1xcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XFxuK31cXG4rXFxuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODkyMmF1X2RyaXZlciA9IHtcXG4gXFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcXG4gXFx0LmlkX3RhYmxlID0gcnR3Xzg5MjJhdV9pZF90YWJsZSxcXG4tXFx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxcbitcXHQucHJvYmUgPSBydHc4OTIyYXVfcHJvYmUsXFxuIFxcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXFxuIH07XFxuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcXG5pbmRleCBhYWZhOGI5ZTkzZGZjLi4xZDdjNzQ1NTdhYjEzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXFxuQEAgLTEyMDEsMTUgKzEyMDEsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcnR3ODlfdXNiX2dyb3VwID0ge1xcbiBfX0FUVFJJQlVURV9HUk9VUFMocnR3ODlfdXNiKTtcXG4gXFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLVxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuK1xcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm8pXFxuIHtcXG4tXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xcbiBcXHRzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXY7XFxuIFxcdHN0cnVjdCBydHc4OV91c2IgKnJ0d3VzYjtcXG4gXFx0aW50IHJldDtcXG4gXFxuLVxcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9pbmZvO1xcbi1cXG4gXFx0cnR3ZGV2ID0gcnR3ODlfYWxsb2NfaWVlZTgwMjExX2h3KFxcdTAwMjZpbnRmLVxcdTAwM2VkZXYsXFxuIFxcdFxcdFxcdFxcdFxcdCAgc2l6ZW9mKHN0cnVjdCBydHc4OV91c2IpLCBpbmZvKTtcXG4gXFx0aWYgKCFydHdkZXYpIHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcXG5pbmRleCBiZGYzMTI1NTk3NDM4Li4zNzI2MjBkMDg1MWU2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXFxuQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3ODlfdXNiICpydHc4OV91c2JfcHJpdihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuIH1cXG4gXFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLVxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xcbitcXHRcXHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKTtcXG4gdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XFxuIFxcbiAjZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MDEuMzQ4OTc2ODE5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDQzNjQ5MzUxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlcIixcbiAgICBcIlJUVzg5Xzg4NTFCVVwiLFxuICAgIFwiUlRXODlfODg1MkFVXCIsXG4gICAgXCJSVFc4OV84ODUyQlVcIixcbiAgICBcIlJUVzg5Xzg4NTJDVVwiLFxuICAgIFwiUlRXODlfODkyMkFVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3ODg1MWJ1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyYXVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJidV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmN1X3Byb2JlXCIsXG4gICAgXCJydHc4OTIyYXVfcHJvYmVcIixcbiAgICBcInJ0dzg5X3VzYl9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgd3JhcHBlciBmdW5jdGlvbnMgZm9yIFVTQiBwcm9iZSBpbiBzZXZlcmFsIHJ0dzg5IGRyaXZlcnMgdG8gaGFuZGxlIGNhc2VzIHdoZXJlIGBpZC1cXHUwMDNlZHJpdmVyX2luZm9gIGlzIE5VTEwsIHByZXZlbnRpbmcgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIGBydHc4OV91c2JfcHJvYmVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCB3aGljaCBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDkwMjM3YTRjYmVhYzgwZmE2OTVmNzAwZDUzOWMzNDQ5YjJhYjE1M2FcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAxNiAxODozMzo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jXG5pbmRleCAxZTgyNzIwNWYyNTQwLi40MzJkMjE2ZGU4NzQ2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuQEAgLTU5LDEwICs1OSwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTFidV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUxYnVfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODg1MWJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUxYnVfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MWJ1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MWJ1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODg1MWJ1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuY1xuaW5kZXggMDY1ZjRlNWIxN2FmYS4uYTM3YjYwYjU4NGYyNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbkBAIC03MywxMCArNzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyYXVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MmF1X2lkX3RhYmxlKTtcbiBcbitzdGF0aWMgaW50IHJ0dzg4NTJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbitcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4re1xuK1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuK1xuK1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuK1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuK1x0ZWxzZVxuK1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODg1MmF1X2luZm87XG4rXG4rXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJhdV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTJhdV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbitcdC5wcm9iZSA9IHJ0dzg4NTJhdV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmNcbmluZGV4IGRlNzlhMTlhMjgyNGQuLjgxYjYxNTZhOGQyN2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG5AQCAtNzMsMTAgKzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmJ1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJidV9pZF90YWJsZSk7XG4gXG4rc3RhdGljIGludCBydHc4ODUyYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4rXHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK3tcbitcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbitcbitcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbitcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbitcdGVsc2VcbitcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJidV9pbmZvO1xuK1xuK1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYnVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUyYnVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4rXHQucHJvYmUgPSBydHc4ODUyYnVfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJidV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jXG5pbmRleCAyZGVjOWI4NDU0ODE1Li4wNjdjNmJiMDA3YjMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuQEAgLTEzMywxMCArMTMzLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmN1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJjdV9pZF90YWJsZSk7XG4gXG4rc3RhdGljIGludCBydHc4ODUyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4rXHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK3tcbitcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbitcbitcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbitcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbitcdGVsc2VcbitcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJjdV9pbmZvO1xuK1xuK1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyY3VfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUyY3VfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4rXHQucHJvYmUgPSBydHc4ODUyY3VfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jXG5pbmRleCA1NmM3OWIxZWM4NjVmLi4yZjYwMDIxNzA0ZTA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuQEAgLTc0LDEwICs3NCwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg5MjJhdV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184OTIyYXVfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODkyMmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84OTIyYXVfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODkyMmF1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODkyMmF1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODkyMmF1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuY1xuaW5kZXggYWFmYThiOWU5M2RmYy4uMWQ3Yzc0NTU3YWIxMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbkBAIC0xMjAxLDE1ICsxMjAxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHJ0dzg5X3VzYl9ncm91cCA9IHtcbiBfX0FUVFJJQlVURV9HUk9VUFMocnR3ODlfdXNiKTtcbiBcbiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLVx0XHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK1x0XHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKVxuIHtcbi1cdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbiBcdHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldjtcbiBcdHN0cnVjdCBydHc4OV91c2IgKnJ0d3VzYjtcbiBcdGludCByZXQ7XG4gXG4tXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuLVxuIFx0cnR3ZGV2ID0gcnR3ODlfYWxsb2NfaWVlZTgwMjExX2h3KFx1MDAyNmludGYtXHUwMDNlZGV2LFxuIFx0XHRcdFx0XHQgIHNpemVvZihzdHJ1Y3QgcnR3ODlfdXNiKSwgaW5mbyk7XG4gXHRpZiAoIXJ0d2Rldikge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXG5pbmRleCBiZGYzMTI1NTk3NDM4Li4zNzI2MjBkMDg1MWU2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaFxuQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3ODlfdXNiICpydHc4OV91c2JfcHJpdihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4gfVxuIFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tXHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xuK1x0XHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKTtcbiB2b2lkIHJ0dzg5X3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKTtcbiBcbiAjZW5kaWZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjAxLjM0ODk3ODMwOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgwMjM2NDkzNzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIHJ0dzg5IFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIHRoZSBgcnR3ODlgIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlYWxpbmcgd2l0aCBSZWFsdGVrIDgwMi4xMWF4IGhhcmR3YXJlIOKAkyBpbnRlcmVzdGluZy4gSXQgbG9va3MgbGlrZSB0aGUgbWFpbiBwb2ludCBoZXJlIGlzIGEgY2hhbmdlIGluIGhvdyB0aGUgYHJ0dzg5X3VzYl9wcm9iZWAgZnVuY3Rpb24gaXMgY2FsbGVkLCBzcGVjaWZpY2FsbHkgZm9yIFVTQiBkZXZpY2VzLiBJIHNlZSB0aGF0IGluc3RlYWQgb2YgZGlyZWN0bHkgcGFzc2luZyB0aGUgYHVzYl9kZXZpY2VfaWRgIHN0cnVjdCB0byB0aGUgcHJvYmUgZnVuY3Rpb24sIHRoZXJlJ3Mgbm93IGEgd3JhcHBlciBwcm9iZSBmdW5jdGlvbiBpbnRyb2R1Y2VkIGZvciBlYWNoIHNwZWNpZmljIGRldmljZSB0eXBlOiBgcnR3ODg1MWJ1YCwgYHJ0dzg4NTJhdWAsIGV0Yy5cblxuVGhlIGNyaXRpY2FsIHBhcnQgaXMgdGhlIGNoZWNrIGZvciBgaWQtXHUwMDNlZHJpdmVyX2luZm9gLiBJZiBgZHJpdmVyX2luZm9gIGlzbid0IHNldCwgd2hpY2ggSSBhc3N1bWUgY2FuIGhhcHBlbiB1bmRlciBzcGVjaWZpYyBjaXJjdW1zdGFuY2VzLCB0aGUgd3JhcHBlciBub3cgZmFsbHMgYmFjayB0byBhIGRlZmF1bHQgaW5mbyBzdHJ1Y3QsIGZvciBleGFtcGxlIGBcdTAwMjZydHc4OV84ODUxYnVfaW5mb2AuICpUaGlzIGlzIGEgZ29vZCBjYXRjaC4qIFByZXZpb3VzbHksIGlmIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgKndhcyogTlVMTCwgYHJ0dzg5X3VzYl9wcm9iZWAgd291bGQgaGF2ZSBibGluZGx5IGNhc3QgdGhhdCBOVUxMIHBvaW50ZXIgdG8gYGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqYCBhbmQgYWxtb3N0IGNlcnRhaW5seSBjcmFzaGVkIHRoZSBrZXJuZWwgd2hlbiBkZXJlZmVyZW5jaW5nIGl0LiAgQSBjbGFzc2ljIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYW5kIGxpa2VseSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nLlxuXG5JdCdzIGhhcHBlbmluZyB3aXRoaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCBhbmQgdGhhdCdzIGltcG9ydGFudC4gVGhpcyBtZWFucyB0aGF0IGV2ZW4gaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgdGhlIG9uZXMgdXNlZCB3aXRoIHN5emthbGxlciB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbnMsIHRoaXMgY29kZSBwYXRoIGlzIHJlYWNoYWJsZS4gR2l2ZW4gdGhhdCB2dWxuZXJhYmlsaXR5IHJlc2VhcmNoIGlzIG15IGZvY3VzLCB0aGF0IG1ha2VzIGl0IGV2ZW4gbW9yZSBpbnRlcmVzdGluZy5cblxuTm93LCBsZXQgbWUgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlc2UgZHJpdmVycyB0byBzZWUgaG93IGVhc2lseSB0aGV5IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGFuZCB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGVpciB1c2UuIEknbGwgdXNlIGBncmVwcGVyYCB0byBsb2NhdGUgdGhlIGBLY29uZmlnYCBmaWxlcyBhbmQgc2VlIHdoYXQgSSBjYW4gZmluZC4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGdpdmVzIG1lIGEgc2Vuc2Ugb2YgdGhlIHBvdGVudGlhbCBhdHRhY2sgc3VyZmFjZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY4MiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjA5LjM3MjYyOTk2NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTYxMzYwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI6bWVudWNvbmZpZyBSVFc4OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MTE9aWYgUlRXODlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzOmNvbmZpZyBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwOmNvbmZpZyBSVFc4OV9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjEtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIzOmNvbmZpZyBSVFc4OV84ODUxQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjY6Y29uZmlnIFJUVzg5Xzg4NTJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOTpjb25maWcgUlRXODlfODg1MkJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMwLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozMjpjb25maWcgUlRXODlfODg1MkJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzMtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OV84ODUyQlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzYtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM4OmNvbmZpZyBSVFc4OV84ODUyQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zOS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDE6Y29uZmlnIFJUVzg5Xzg5MjJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQyLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NDpjb25maWcgUlRXODlfODkyMkRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDUtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ3OmNvbmZpZyBSVFc4OV84ODUxQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Njk6Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjgwOmNvbmZpZyBSVFc4OV84ODUyQVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctODEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo5MTpjb25maWcgUlRXODlfODg1MkJFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkyLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMzpjb25maWcgUlRXODlfODg1MkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEwNC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMTU6Y29uZmlnIFJUVzg5Xzg4NTJCVEVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTE2LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRS1WVCBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEyNzpjb25maWcgUlRXODlfODg1MkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDZFKSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM4OmNvbmZpZyBSVFc4OV84ODUyQ1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDk6Y29uZmlnIFJUVzg5Xzg5MjJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNTAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkFFLzg5MjJBRS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2Mzpjb25maWcgUlRXODlfODkyMkFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2NC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4OTIyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDcpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5Xzg5MjJERVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkRFLzg5MjJERS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE4Nzpjb25maWcgUlRXODlfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTg4LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxOTA6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE5OTpjb25maWcgUlRXODlfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMDAtXFx0Ym9vbCBcXFwiUmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMDg6Y29uZmlnIFJUVzg5X0xFRFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjA5LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIxNTpjb25maWcgUlRXODlfTEVEU19NQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMTYtXFx0Ym9vbFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDowOS40MTgyNDg5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzYxNTEwMTE5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBjb25maWd1cmF0aW9uczogUlRXODlfODg1MUJVLCBSVFc4OV84ODUyQVUsIFJUVzg5Xzg4NTJCVSwgUlRXODlfODg1MkNVLCBhbmQgUlRXODlfODkyMkFVLiBJdCBzZWVtcyBwcmV0dHkgY2xlYXIgdGhhdCB0aGVzZSBhcmUgdGhlIHByaW1hcnkgY29udGVuZGVycyB3ZSdyZSB3b3JraW5nIHdpdGguIE5vdywgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBSVFc4OV9VU0IgZml0IGludG8gdGhpcyBwaWN0dXJlPyBJdCdzIGxpa2VseSB0aGF0IG9uZSBvciBtb3JlIG9mIHRoZXNlIGNvbmZpZ3MgaW1wbGljaXRseSBzZWxlY3Qgb3IgZGVwZW5kIG9uIFJUVzg5X1VTQiwgYnV0IGl0J3MgY3J1Y2lhbCB0byBjb25maXJtIHRoYXQuIEkgbmVlZCB0byBkaWcgYSBsaXR0bGUgZGVlcGVyIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIGFwcHJvcHJpYXRlbHkgY29uZmlndXJlZCBhbmQgdGhhdCB0aGVyZSBhcmVuJ3QgYW55IHJlZHVuZGFuY2llcyBvciBvbWlzc2lvbnMuIExldCdzIHN0YXJ0IGJ5IGNoZWNraW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGluY2x1ZGVkIGZpbGVzIGZvciBlYWNoIG9mIHRoZSBtYWluIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTIyLCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MTcuMDMzMzUyNDYxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1ODM1Nzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVFc4OV84ODUxQlVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00Nz1jb25maWcgUlRXODlfODg1MUJFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OmNvbmZpZyBSVFc4OV84ODUxQlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDoxNy4wODkxOTM3ODhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDYwMzcxNTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGl2aW5nIGludG8gdGhlIFJUVzg5Xzg4NTFCVSBLY29uZmlnKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCdzIHB1bGwgdXAgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSBhbmQgc3RhcnQgZGlzc2VjdGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHN1cnJvdW5kaW5nIHRoZSBSVFc4OV84ODUxQlUuIFRoaXMgdXN1YWxseSBtZWFucyBJJ20gbG9va2luZyBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlLCBkZWJ1Z2dpbmcgYSByZXBvcnRlZCBpc3N1ZSwgb3IgYXNzZXNzaW5nIHRoZSBpbXBhY3Qgb2YgYSBwb3RlbnRpYWwgY2hhbmdlLiBNeSBpbml0aWFsIGZvY3VzIHdpbGwgYmUgb24gdW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHZhbHVlcywgYW5kIGFueSB0cmlzdGF0ZSBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBwcmVzZW50LiBJIHdhbnQgdG8gc2VlIGhvdyB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUgYnJvYWRlciBSZWFsdGVrIFdpRmkgZWNvc3lzdGVtIHdpdGhpbiB0aGUga2VybmVsLiBJJ2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9yIGluY2x1c2lvbiBndWFyZHMuIFNwZWNpZmljYWxseSwgSSdsbCBiZSBsb29raW5nIGZvciBhbnkgaGludHMgYWJvdXQgcG93ZXIgbWFuYWdlbWVudCwgcmVndWxhdG9yeSBkb21haW4gc2V0dGluZ3MsIGFuZCBwZXJoYXBzIGV2ZW4gZWFybHkgaW5kaWNhdGlvbnMgYWJvdXQgaW50ZXJmYWNlLXNwZWNpZmljIGZsYWdzIGxpa2UgVVNCIHZlcnN1cyBTRElPIGltcGxlbWVudGF0aW9ucy4gSXQgaXMgcHJvYmFibGUsIEkgd2lsbCBiZSB0aGlua2luZyBhYm91dCBob3cgaXQgaXMgaW50ZWdyYXRlZCBpbnRvIHRoZSB3aWRlciBmcmFtZXdvcmsuIFVsdGltYXRlbHksIG15IGdvYWwgaXMgdG8gYnVpbGQgYSBtZW50YWwgbWFwIG9mIHRoaXMgbW9kdWxlJ3MgY29uZmlndXJhYmxlIGFzcGVjdHMgYW5kIGhvdyB0aGV5IHBsYXkgdG9nZXRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg1OTQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDoyNC4xNDk1Njc2OTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDI2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNTgsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNTg6XFx0Y29uZmlnIFJUVzg5Xzg4NTFCVVxcbiAgNTk6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbiAgNjA6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDYxOlxcdFxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuICA2MjpcXHRcXHRzZWxlY3QgUlRXODlfVVNCXFxuICA2MzpcXHRcXHRzZWxlY3QgUlRXODlfODg1MUJcXG4gIDY0OlxcdFxcdGhlbHBcXG4gIDY1OlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTFCVSBjaGlwc2V0XFxuICA2NjpcXHRcXG4gIDY3OlxcdFxcdCAgODAyLjExYXggVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXG4gIDY4OlxcdFxcbiAgNjk6XFx0Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbiAgNzA6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbiAgNzE6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lcXG4gIDcyOlxcdFxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuICA3MzpcXHRcXHRzZWxlY3QgUlRXODlfUENJXFxuICA3NDpcXHRcXHRzZWxlY3QgUlRXODlfODg1MkFcXG4gIDc1OlxcdFxcdGhlbHBcXG4gIDc2OlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTJBRSBjaGlwc2V0XFxuICA3NzpcXHRcXG4gIDc4OlxcdFxcdCAgODAyLjExYXggUENJZSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxuICA3OTpcXHRcXG4gIDgwOlxcdGNvbmZpZyBSVFc4OV84ODUyQVVcXG4gIDgxOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4gIDgyOlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuICA4MzpcXHRcXHRzZWxlY3QgUlRXODlfQ09SRVxcbiAgODQ6XFx0XFx0c2VsZWN0IFJUVzg5X1VTQlxcbiAgODU6XFx0XFx0c2VsZWN0IFJUVzg5Xzg4NTJBXFxuICA4NjpcXHRcXHRoZWxwXFxuICA4NzpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQVUgY2hpcHNldFxcbiAgODg6XFx0XFxuICA4OTpcXHRcXHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxuICA5MDpcXHRcXG4gIDkxOlxcdGNvbmZpZyBSVFc4OV84ODUyQkVcXG4gIDkyOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4gIDkzOlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA5NDpcXHRcXHRzZWxlY3QgUlRXODlfQ09SRVxcbiAgOTU6XFx0XFx0c2VsZWN0IFJUVzg5X1BDSVxcbiAgOTY6XFx0XFx0c2VsZWN0IFJUVzg5Xzg4NTJCXFxuICA5NzpcXHRcXHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXFxuICA5ODpcXHRcXHRoZWxwXFxuICA5OTpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQkUgY2hpcHNldFxcbiAxMDA6XFx0XFxuIDEwMTpcXHRcXHQgIDgwMi4xMWF4IFBDSWUgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcbiAxMDI6XFx0XFxuIDEwMzpcXHRjb25maWcgUlRXODlfODg1MkJVXFxuIDEwNDpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuIDEwNTpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAxMDY6XFx0XFx0c2VsZWN0IFJUVzg5X0NPUkVcXG4gMTA3OlxcdFxcdHNlbGVjdCBSVFc4OV9VU0JcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MjQuMTQ5NjQzMTI3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzIzMjI4NTk4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFJUVzg5IERyaXZlciBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgUlRXODkgc2VyaWVzLCBzcGVjaWZpY2FsbHkgdGhlIFVTQiB2YXJpYW50cyBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvbnMgbGlzdGVkOiBSVFc4OV84ODUxQlUsIFJUVzg5Xzg4NTJBVSwgUlRXODlfODg1MkJVLCBSVFc4OV84ODUyQ1UsIGFuZCBSVFc4OV84OTIyQVUuIFRoZXNlIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgSSBuZWVkIHRvIHVuZGVyc3RhbmQuXG5cbkkgc2VlIGEgY2xlYXIgc2V0IG9mIHByb2JlIGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggY29uZmlndXJhdGlvbjogYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBgcnR3ODg1MmJ1X3Byb2JlYCwgYHJ0dzg4NTJjdV9wcm9iZWAsIGFuZCBgcnR3ODkyMmF1X3Byb2JlYCwgYXMgd2VsbCBhcyB0aGUgbW9yZSBnZW5lcmljIGBydHc4OV91c2JfcHJvYmVgLiBUaGVzZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdG8gdW5kZXJzdGFuZCBob3cgZWFjaCBoYXJkd2FyZSB2YXJpYW50IGlzIGluaXRpYWxpemVkIGFuZCBtYW5hZ2VkLlxuXG5CZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gdGhlIGNvZGUsIEknbGwgcXVpY2tseSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhlIFJUVzg5IHNlcmllcy4gVGhlIGBtZW51Y29uZmlnYCBvcHRpb24gaXMgYFJUVzg5YCwgd2hpY2gsIGFzIGV4cGVjdGVkLCBkZXBlbmRzIG9uIHRoZSBgTUFDODAyMTFgIGZyYW1ld29yay4gSSBzaG91bGQgbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGF0IGRlcGVuZGVuY3ksIGJ1dCBmaXJzdCwgSSB3aWxsIGdvIHRvIHRoZSB0b3Agb2YgYEtjb25maWdgIGZvciB0aGUgb3ZlcmFsbCBjb250ZXh0LiBHb3R0YSBjaGVjayB0aGUgYmlnIHBpY3R1cmUgYmVmb3JlIHpvb21pbmcgaW4gb24gdGhlIHNwZWNpZmljcy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTY3OSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjMxLjM4MTkzMTkyOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Mjk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAgIDI6XFx0bWVudWNvbmZpZyBSVFc4OVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciBtYWM4MDIxMS1iYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHRoYXRcXG4gICA3OlxcdFxcdCAgZW5hYmxlcyBSZWFsdGVrIElFRUUgODAyLjExYXggd2lyZWxlc3MgY2hpcHNldHMuXFxuICAgODpcXHRcXG4gICA5OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIHJ0dzg5LlxcbiAgMTA6XFx0XFxuICAxMTpcXHRpZiBSVFc4OVxcbiAgMTI6XFx0XFxuICAxMzpcXHRjb25maWcgUlRXODlfQ09SRVxcbiAgMTQ6XFx0XFx0dHJpc3RhdGVcXG4gIDE1OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgUlRXODlfUENJXFxuICAxODpcXHRcXHR0cmlzdGF0ZVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgUlRXODlfVVNCXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjMxLjM4MjAxNjgzOVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NjA2Njc1MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUlRXODkgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBkaXZpbmcgaW50byB0aGUgUmVhbHRlayB3aXJlbGVzcyBzaXR1YXRpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIHNldCBvZiBoYXJkd2FyZSBoZXJlIOKAkyBsaWtlbHkgZm9jdXNpbmcgb24gdGhlIFJUVzg5IGNoaXBzZXQuIEkgc2VlIHdlIG5lZWQgdG8gZW5zdXJlIHRoZSBSVFc4OSBtb2R1bGUgaXRzZWxmIGlzIGVuYWJsZWQsIGFsb25nIHdpdGggc3BlY2lmaWMgc3ViLW1vZHVsZXM6IFJUVzg5Xzg4NTFCVSwgUlRXODlfODg1MkFVLCBSVFc4OV84ODUyQlUsIFJUVzg5Xzg4NTJDVSwgYW5kIFJUVzg5Xzg5MjJBVS4gVGhpcyB0ZWxscyBtZSB3ZSBoYXZlIGEgcmFuZ2Ugb2YgcG90ZW50aWFsIGhhcmR3YXJlIHJldmlzaW9ucyBvciBjb25maWd1cmF0aW9ucyB3ZSBuZWVkIHRvIHN1cHBvcnQgd2l0aGluIHRoaXMgZ2VuZXJhbCBSVFc4OSBmcmFtZXdvcmsuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGtlcm5lbCBjb25maWcgb3B0aW9ucyB0byBlbnN1cmUgdGhlc2UgYXJlIGFsbCBzZWxlY3RlZC5cblxuVGhlIGluY2x1c2lvbiBvZiBNQUM4MDIxMSBhbmQgVVNCIGlzIGV4cGVjdGVkLCBnaXZlbiB0aGlzIGlzIHdpcmVsZXNzIGhhcmR3YXJlLiBNQUM4MDIxMSBpcyB0aGUgc3RhbmRhcmQgd2lyZWxlc3Mgc3RhY2ssIGFuZCBVU0IgaXMgdGhlIGxpa2VseSBwaHlzaWNhbCBpbnRlcmZhY2UuXG5cbk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBmb3IgZWFjaCBvZiB0aG9zZSBzdWItbW9kdWxlcy4gVGhlIGZvY3VzIHN5bWJvbHMgZ2l2ZSBtZSBhIGNsZWFyIGxpc3Qgb2YgdGhlIGVudHJ5IHBvaW50czogYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBgcnR3ODg1MmJ1X3Byb2JlYCwgYHJ0dzg4NTJjdV9wcm9iZWAsIGFuZCBgcnR3ODkyMmF1X3Byb2JlYCwgYWxvbmcgd2l0aCB0aGUgb3ZlcmFyY2hpbmcgYHJ0dzg5X3VzYl9wcm9iZWAuIFRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXppbmcgdGhlIGhhcmR3YXJlLlxuXG5GaW5hbGx5LCBJJ20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdGhlIGBydHc4OV91c2JfcHJvYmVgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSB2ZXJpZnkgdGhhdCBpdCdzIGFjdHVhbGx5IGV4cG9ydGVkIOKAkyBtZWFuaW5nIGl0J3MgdmlzaWJsZSBhbmQgY2FsbGFibGUgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsLiBBIHF1aWNrIGNoZWNrIG9mIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jYCB3aWxsIGNvbmZpcm0gdGhpcy4gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBSVFc4OSBVU0IgZHJpdmVyLCBhbmQgaWYgaXQncyBub3QgZXhwb3J0ZWQsIHdlJ3ZlIGdvdCBhIHByb2JsZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNDc5LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MzguOTg4Njk1MTQ5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzcxNzQ3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJFWFBPUlRfU1lNQk9MLipydHc4OV91c2JfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jPTEyMDM9aW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMtMTI5MS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYzoxMjkyOkVYUE9SVF9TWU1CT0wocnR3ODlfdXNiX3Byb2JlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jLTEyOTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjM5LjA0MjQxNjk0NloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTg2ODYwOTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gSSBzZWUgdGhpcyBwYXRjaCBoYXMgYmVlbiBleHBvcnRlZC4gR29vZC4gSXQgYWRkcmVzc2VzIGEgY3JpdGljYWwgZnVuY3Rpb25hbCBpc3N1ZSB3aXRoaW4gdGhlIHJ0dzg5IFVTQiBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0IGd1YXJkcyBhZ2FpbnN0IHRoZSBwb3NzaWJpbGl0eSBvZiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGJlaW5nIE5VTEwgZHVyaW5nIHByb2JlIGZ1bmN0aW9ucyBsaWtlIGBydHc4ODUxYnVfcHJvYmVgLCBgcnR3ODg1MmF1X3Byb2JlYCwgZXRjLiBUaGlzIHBvdGVudGlhbCBOVUxMIGRlcmVmZXJlbmNlIHdhcyBhIHNlcmlvdXMgdnVsbmVyYWJpbGl0eTsgYSBjcmFzaCB3YWl0aW5nIHRvIGhhcHBlbi4gVGhlIGNvcmUgb2YgdGhpcyBmaXggaXMgdGhlIGludHJvZHVjdGlvbiBvZiB3cmFwcGVyIGZ1bmN0aW9ucy4gRWZmZWN0aXZlbHksIGl0J3MgYSBudWxsIGNoZWNrIGJlaW5nIGFkZGVkIHRvIHRoZSBVU0IgcHJvYmUgZmxvdy5cblxuVGhlIGluY2x1c2lvbiBvZiBgV29ydGhGdXp6aW5nOiB0cnVlYCBpcyBzcG90IG9uLCBnaXZlbiB0aGlzIGlzIG5vdyBtb3JlIHJvYnVzdCBhbmQgbGVzcyBsaWtlbHkgdG8gZmFsbCBvdmVyIGR1ZSB0byBhIG51bGwgcG9pbnRlci4gVGhlIGBGb2N1c1N5bWJvbHNgIGFyZSBjbGVhcmx5IGlkZW50aWZ5aW5nIHRoZSByZWxldmFudCBwcm9iZSBmdW5jdGlvbnMsIGFuZCB0aGUgYEVuYWJsZUNvbmZpZ3NgIHJlaW5mb3JjZSB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgYWZmZWN0ZWQuIFRoZSBwYXRjaCdzIHJlYXNvbmluZyBpcyBzb3VuZDsgaXQgY29ycmVjdGx5IGlkZW50aWZpZXMgdGhlIGlzc3VlIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBVU0IgcHJvYmUgcGF0aCwgYW5kIGltcG9ydGFudGx5LCBpdCBhY2tub3dsZWRnZXMgdGhhdCB0aGlzIGNvZGUgcGF0aCBpcyBleHBvc2VkIGluIHZpcnR1YWxpemVkIHNldHVwcyAocGFydGljdWxhcmx5IHRocm91Z2ggZHVtbXlfaGNkKS4gVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IGEgcG9zaXRpdmUgY2hhbmdlIGFuZCBtaXRpZ2F0ZXMgYSBwb3RlbnRpYWwgc291cmNlIG9mIGluc3RhYmlsaXR5LCBpbXByb3ZpbmcgdGhlIHJvYnVzdG5lc3Mgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEyOTMsIk91dHB1dFRva2VucyI6MjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjQ1LjYyOTI4MTcyNFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NjI2NjExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OVwiLFxuICAgIFwiUlRXODlfODg1MUJVXCIsXG4gICAgXCJSVFc4OV84ODUyQVVcIixcbiAgICBcIlJUVzg5Xzg4NTJCVVwiLFxuICAgIFwiUlRXODlfODg1MkNVXCIsXG4gICAgXCJSVFc4OV84OTIyQVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4ODUxYnVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmJ1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyY3VfcHJvYmVcIixcbiAgICBcInJ0dzg5MjJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODlfdXNiX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OVwiLFxuICAgIFwiUlRXODlfODg1MUJVXCIsXG4gICAgXCJSVFc4OV84ODUyQVVcIixcbiAgICBcIlJUVzg5Xzg4NTJCVVwiLFxuICAgIFwiUlRXODlfODg1MkNVXCIsXG4gICAgXCJSVFc4OV84OTIyQVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4ODUxYnVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmJ1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyY3VfcHJvYmVcIixcbiAgICBcInJ0dzg5MjJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODlfdXNiX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6NDUuNzEzOTE3MzQ1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTk0Nzc5NTQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjQ1LjcxNDQ4MzEzNVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMTk0NzIyNDUwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoYXQgb2NjdXJzIHdoZW4gYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgMCAod2hpY2ggY2FuIGhhcHBlbiB3aGVuIGEgVVNCIGRldmljZSBpcyBib3VuZCBkeW5hbWljYWxseSB2aWEgc3lzZnMgYG5ld19pZGApLiBUaGUgZml4IHByb3ZpZGVzIGEgZmFsbGJhY2sgdG8gYSBzdGF0aWMgZHJpdmVyIGluZm8gc3RydWN0dXJlLiBUaGlzIGRvZXMgbm90IGludm9sdmUgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlcnNwYWNlLiBTdGFuZGFyZCBLQVNBTiBhbmQga2VybmVsIG9vcHMgbWVjaGFuaXNtcyBhcmUgZnVsbHkgY2FwYWJsZSBvZiBkZXRlY3RpbmcgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5MDIzN2E0Y2JlYWM4MGZhNjk1ZjcwMGQ1MzljMzQ0OWIyYWIxNTNhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBBdWcgMTYgMTg6MzM6NTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuaW5kZXggMWU4MjcyMDVmMjU0MC4uNDMyZDIxNmRlODc0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmNcbkBAIC01OSwxMCArNTksMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUxYnVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTtcbiBcbitzdGF0aWMgaW50IHJ0dzg4NTFidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbitcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4re1xuK1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuK1xuK1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuK1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuK1x0ZWxzZVxuK1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODg1MWJ1X2luZm87XG4rXG4rXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTFidV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTFidV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbitcdC5wcm9iZSA9IHJ0dzg4NTFidV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MWJ1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbmluZGV4IDA2NWY0ZTViMTdhZmEuLmEzN2I2MGI1ODRmMjQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jXG5AQCAtNzMsMTAgKzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmF1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJhdV9pZF90YWJsZSk7XG4gXG4rc3RhdGljIGludCBydHc4ODUyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4rXHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK3tcbitcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbitcbitcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbitcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbitcdGVsc2VcbitcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJhdV9pbmZvO1xuK1xuK1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYXVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUyYXVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4rXHQucHJvYmUgPSBydHc4ODUyYXVfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJhdV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG5pbmRleCBkZTc5YTE5YTI4MjRkLi44MWI2MTU2YThkMjdlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuY1xuQEAgLTczLDEwICs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJidV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODg1MmJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyYnVfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmJ1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MmJ1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODg1MmJ1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUyYnVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuaW5kZXggMmRlYzliODQ1NDgxNS4uMDY3YzZiYjAwN2IzMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmNcbkBAIC0xMzMsMTAgKzEzMywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJjdV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODg1MmN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyY3VfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmN1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MmN1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODg1MmN1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUyY3VfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuaW5kZXggNTZjNzliMWVjODY1Zi4uMmY2MDAyMTcwNGUwOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmNcbkBAIC03NCwxMCArNzQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184OTIyYXVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODkyMmF1X2lkX3RhYmxlKTtcbiBcbitzdGF0aWMgaW50IHJ0dzg5MjJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbitcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4re1xuK1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuK1xuK1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuK1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuK1x0ZWxzZVxuK1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODkyMmF1X2luZm87XG4rXG4rXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg5MjJhdV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg5MjJhdV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbitcdC5wcm9iZSA9IHJ0dzg5MjJhdV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODkyMmF1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbmluZGV4IGFhZmE4YjllOTNkZmMuLjFkN2M3NDU1N2FiMTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXG5AQCAtMTIwMSwxNSArMTIwMSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBydHc4OV91c2JfZ3JvdXAgPSB7XG4gX19BVFRSSUJVVEVfR1JPVVBTKHJ0dzg5X3VzYik7XG4gXG4gaW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi1cdFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbitcdFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbylcbiB7XG4tXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4gXHRzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXY7XG4gXHRzdHJ1Y3QgcnR3ODlfdXNiICpydHd1c2I7XG4gXHRpbnQgcmV0O1xuIFxuLVx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbi1cbiBcdHJ0d2RldiA9IHJ0dzg5X2FsbG9jX2llZWU4MDIxMV9odyhcdTAwMjZpbnRmLVx1MDAzZWRldixcbiBcdFx0XHRcdFx0ICBzaXplb2Yoc3RydWN0IHJ0dzg5X3VzYiksIGluZm8pO1xuIFx0aWYgKCFydHdkZXYpIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaFxuaW5kZXggYmRmMzEyNTU5NzQzOC4uMzcyNjIwZDA4NTFlNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcbkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJ0dzg5X3VzYiAqcnR3ODlfdXNiX3ByaXYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuIH1cbiBcbiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLVx0XHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTtcbitcdFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbyk7XG4gdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG4gXG4gI2VuZGlmXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDo0NS43MTQ0ODQ0MDVaIiwiU2VxIjoxNywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE5NDcxOTgwMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCBtZSBicmVhayBkb3duIHRoaXMgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgcGF0Y2guIEl0J3MgdGFyZ2V0aW5nIHRoZSBwcm9iZSBmdW5jdGlvbnMgd2l0aGluIHNldmVyYWwgYHJ0dzg5YCBmYW1pbHkgZHJpdmVyczogYHJ0dzg4NTFidWAsIGBydHc4ODUyYXVgLCBgcnR3ODg1MmJ1YCwgYHJ0dzg4NTJjdWAsIGFuZCBgcnR3ODkyMmF1YC4gVGhlIGNvcmUgY2hhbmdlIGlzIGluIGhvdyB0aGUgVVNCIHByb2JlIGZ1bmN0aW9uLCBgcnR3ODlfdXNiX3Byb2JlYCwgaGFuZGxlcyBkcml2ZXItc3BlY2lmaWMgaW5mb3JtYXRpb24uIEluc3RlYWQgb2YgZGlyZWN0bHkgdXNpbmcgYSBgdXNiX2RldmljZV9pZGAncyBgZHJpdmVyX2luZm9gIGZpZWxkLCB3aGljaCwgY3JpdGljYWxseSwgaXMgYSBga2VybmVsX3Vsb25nX3RgIGFuZCB0aGVyZWZvcmUgY2FuIGJlIHplcm8sIGl0IG5vdyB0YWtlcyBhIGBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm9gIGRpcmVjdGx5LlxuXG5UaGUgaW5kaXZpZHVhbCBkcml2ZXIgZmlsZXMgbm93IGhhdmUgYSBuZXcgcHJvYmUgZnVuY3Rpb24sIGxpa2UgYHJ0dzg4NTFidV9wcm9iZWAsIHdoaWNoIGNoZWNrcyBpZiB0aGUgYGlkLVx1MDAzZWRyaXZlcl9pbmZvYCBwb2ludGVyIGlzIHZhbGlkLiBJZiBpdCAqaXMqIHNldCAobm9uLU5VTEwsIGFmdGVyIHRoZSBjYXN0KSwgaXQgdXNlcyBpdC4gSWYgaXQncyAqbm90KiBzZXQsIGkuZS4sIGlzIHplcm8sIGl0IGZhbGxzIGJhY2sgdG8gYSBkZWZhdWx0IGBydHc4OV84ODUxYnVfaW5mb2Agc3RydWN0LiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQuXG5cblRoZSBpbml0aWFsIHByb2JsZW0gaGVyZSBpcyBjcnlzdGFsIGNsZWFyOiB0aGUgY29kZSB3YXMgZGVyZWZlcmVuY2luZyBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIHdoaWNoIGNvdWxkIGJlIHplcm8uIFNwZWNpZmljYWxseSwgdGhlIG9yaWdpbmFsIGNvZGUgaGFkOlxuXG5gYGBjXG4tXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuYGBgXG5cblRoaXMgcHJlc2VudHMgYSBjbGFzc2ljIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBidWcuIElmIHRoZSBVU0IgZGV2aWNlIHdhcyBib3VuZCB0aHJvdWdoLCBzYXksIHN5c2ZzJ3MgYG5ld19pZGAgbWVjaGFuaXNtLCB0aGVuIHRoZSBgZHJpdmVyX2luZm9gIGZpZWxkIGNvdWxkIGJlIDAsIGFuZCB0aGUgYXNzaWdubWVudCB3b3VsZCBoYXZlIGBpbmZvYCBhcyBOVUxMLCB3aGljaCBpcyB0aGVuIHBhc3NlZCBkb3duIHRvIGBydHc4OV9hbGxvY19pZWVlODAyMTFfaHdgLCBhbmQgYm9vbSwgeW91IGNyYXNoLlxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZT8gTm8sIGFic29sdXRlbHkgbm90LiBUaGUgcm9vdCBjYXVzZSBpcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZS4gVGhlIGBkcml2ZXJfaW5mb2AgZmllbGQgaXNuJ3QgXCJ1bmluaXRpYWxpemVkXCIgaW4gdGhlIHRyYWRpdGlvbmFsIHNlbnNlLiBJdCdzIGluaXRpYWxpemVkIHRvIHplcm8uIFRoZSBwcm9ibGVtIGlzIGRlcmVmZXJlbmNpbmcgYSB6ZXJvIHZhbHVlLiBUaGlzIHBhdGNoIGNsZXZlcmx5IHByb3ZpZGVzIGEgZmFsbGJhY2ssIHByZXZlbnRpbmcgdGhlIGNyYXNoLiBLQVNBTiBvciBhIHN0YW5kYXJkIGtlcm5lbCBvb3BzIHdvdWxkIHF1aWNrbHkgY2F0Y2ggYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgbGlrZSB0aGlzLiBUaGVyZSdzIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJlaW5nIHJlYWQgb3IgbGVha2VkIHRvIHVzZXJzcGFjZSBoZXJlLlxuXG5MZXQncyBxdWlja2x5IHJlLWl0ZXJhdGU6IFRoZSBmaXggYWRkcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIHN0cnVjdCBgXHUwMDI2cnR3ODlfODg1MWJ1X2luZm9gIHdoZW4gYGlkLVx1MDAzZWRyaXZlcl9pbmZvYCBpcyAwLiBUaGlzIGlzIGEgdmVyeSBjb21tb24gZml4IGZvciBVU0IgZHJpdmVycyB0aGF0IGFzc3VtZSBgZHJpdmVyX2luZm9gIGlzIGFsd2F5cyBhIHZhbGlkIHBvaW50ZXIuIFRoaXMgaXMgYWxsIGFib3V0IHByZXZlbnRpbmcgY3Jhc2hlcyBpbiBVU0IgZHJpdmVycyB3aGVuIGRlYWxpbmcgd2l0aCBkeW5hbWljYWxseSBib3VuZCBkZXZpY2VzIHRocm91Z2ggYG5ld19pZGAuXG5cblRoZXJlZm9yZSwgdGhlIGBOZWVkc0tNU0FOYCBmbGFnIGlzIGBmYWxzZWAuIFRoaXMgcGF0Y2ggY2xlYXJseSByZXNvbHZlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpc3N1ZSwgc3BlY2lmaWNhbGx5IHdoZW4gYGRyaXZlcl9pbmZvYCBpcyAwIChhcyBvZnRlbiBoYXBwZW5zIHdpdGggYG5ld19pZGApLCBhbmQgaXMgbm90IHJlbGF0ZWQgdG8gdW5pbml0aWFsaXplZCBtZW1vcnkuIFRoZSBzdGFuZGFyZCBrZXJuZWwgc2FmZXR5IG1lY2hhbmlzbXMgKEtBU0FOLCBPb3BzKSBhcmUgZnVsbHkgc3VmZmljaWVudCBmb3IgZGV0ZWN0aW5nIGFuZCBtaXRpZ2F0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NzksIk91dHB1dFRva2VucyI6MTI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Njc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6NTcuNjYxNjg4MDdaIiwiU2VxIjoxOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB0aGF0IG9jY3VycyB3aGVuIGBpZC1cXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoYXQgb2NjdXJzIHdoZW4gYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgMCAod2hpY2ggY2FuIGhhcHBlbiB3aGVuIGEgVVNCIGRldmljZSBpcyBib3VuZCBkeW5hbWljYWxseSB2aWEgc3lzZnMgYG5ld19pZGApLiBUaGUgZml4IHByb3ZpZGVzIGEgZmFsbGJhY2sgdG8gYSBzdGF0aWMgZHJpdmVyIGluZm8gc3RydWN0dXJlLiBUaGlzIGRvZXMgbm90IGludm9sdmUgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlcnNwYWNlLiBTdGFuZGFyZCBLQVNBTiBhbmQga2VybmVsIG9vcHMgbWVjaGFuaXNtcyBhcmUgZnVsbHkgY2FwYWJsZSBvZiBkZXRlY3RpbmcgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-16 18:31:03 +0000 UTC FinishedAt: 2026-08-16 18:34:58 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_8851BU", "RTW89_8852AU", "RTW89_8852BU", "RTW89_8852CU", "RTW89_8922AU" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "wireless-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git", "commit_hash": "ca800a9302764c445de0da0e84d2252400a770ee", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTW89", "RTW89_8851BU", "RTW89_8852AU", "RTW89_8852BU", "RTW89_8852CU", "RTW89_8922AU" ], "series_id": "9de760ec-d2cd-47ac-945d-e5c1e864c9d8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtw8851bu_probe", "rtw8852au_probe", "rtw8852bu_probe", "rtw8852cu_probe", "rtw8922au_probe", "rtw89_usb_probe" ], "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+CgkJCTx0ZD4yMDI2LzA4LzE2IDE4OjMzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQVUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJDVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84OTIyQVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYnVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyY3VfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODkyMmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg5X3VzYl9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O0tNU0FOUmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB0aGF0IG9jY3VycyB3aGVuIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgaXMgMCAod2hpY2ggY2FuIGhhcHBlbiB3aGVuIGEgVVNCIGRldmljZSBpcyBib3VuZCBkeW5hbWljYWxseSB2aWEgc3lzZnMgYG5ld19pZGApLiBUaGUgZml4IHByb3ZpZGVzIGEgZmFsbGJhY2sgdG8gYSBzdGF0aWMgZHJpdmVyIGluZm8gc3RydWN0dXJlLiBUaGlzIGRvZXMgbm90IGludm9sdmUgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlcnNwYWNlLiBTdGFuZGFyZCBLQVNBTiBhbmQga2VybmVsIG9vcHMgbWVjaGFuaXNtcyBhcmUgZnVsbHkgY2FwYWJsZSBvZiBkZXRlY3RpbmcgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC4mIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVx1MDAzZWRyaXZlcl9pbmZvYCBpcyBOVUxMLCBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBgcnR3ODlfdXNiX3Byb2JlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBVU0IgcHJvYmUgcGF0aCwgd2hpY2ggaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyB2aWEgZHVtbXlfaGNkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzE2IDE4OjMzPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgOTAyMzdhNGNiZWFjODBmYTY5NWY3MDBkNTM5YzM0NDliMmFiMTUzYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gQXVnIDE2IDE4OjMzOjU4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jXG5pbmRleCAxZTgyNzIwNWYyNTQwLi40MzJkMjE2ZGU4NzQ2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuQEAgLTU5LDEwICYjNDM7NTksMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUxYnVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTtcbiBcbiYjNDM7c3RhdGljIGludCBydHc4ODUxYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4mIzQzO1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbiYjNDM7e1xuJiM0MztcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbiYjNDM7XG4mIzQzO1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuJiM0MztcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODg1MWJ1X2luZm87XG4mIzQzO1xuJiM0MztcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUxYnVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUxYnVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4mIzQzO1x0LnByb2JlID0gcnR3ODg1MWJ1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuY1xuaW5kZXggMDY1ZjRlNWIxN2FmYS4uYTM3YjYwYjU4NGYyNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbkBAIC03MywxMCAmIzQzOzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmF1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJhdV9pZF90YWJsZSk7XG4gXG4mIzQzO3N0YXRpYyBpbnQgcnR3ODg1MmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuJiM0MztcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4mIzQzO3tcbiYjNDM7XHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4mIzQzO1xuJiM0MztcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbiYjNDM7XHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJhdV9pbmZvO1xuJiM0MztcbiYjNDM7XHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmF1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MmF1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuJiM0MztcdC5wcm9iZSA9IHJ0dzg4NTJhdV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmNcbmluZGV4IGRlNzlhMTlhMjgyNGQuLjgxYjYxNTZhOGQyN2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG5AQCAtNzMsMTAgJiM0Mzs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJidV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpO1xuIFxuJiM0MztzdGF0aWMgaW50IHJ0dzg4NTJidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbiYjNDM7XHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuJiM0Mzt7XG4mIzQzO1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuJiM0MztcbiYjNDM7XHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4mIzQzO1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyYnVfaW5mbztcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJidV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTJidV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbiYjNDM7XHQucHJvYmUgPSBydHc4ODUyYnVfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJidV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jXG5pbmRleCAyZGVjOWI4NDU0ODE1Li4wNjdjNmJiMDA3YjMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuQEAgLTEzMywxMCAmIzQzOzEzMywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJjdV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpO1xuIFxuJiM0MztzdGF0aWMgaW50IHJ0dzg4NTJjdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbiYjNDM7XHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuJiM0Mzt7XG4mIzQzO1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuJiM0MztcbiYjNDM7XHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4mIzQzO1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyY3VfaW5mbztcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJjdV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTJjdV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbiYjNDM7XHQucHJvYmUgPSBydHc4ODUyY3VfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jXG5pbmRleCA1NmM3OWIxZWM4NjVmLi4yZjYwMDIxNzA0ZTA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuQEAgLTc0LDEwICYjNDM7NzQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184OTIyYXVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODkyMmF1X2lkX3RhYmxlKTtcbiBcbiYjNDM7c3RhdGljIGludCBydHc4OTIyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4mIzQzO1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbiYjNDM7e1xuJiM0MztcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbiYjNDM7XG4mIzQzO1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuJiM0MztcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODkyMmF1X2luZm87XG4mIzQzO1xuJiM0MztcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184OTIyYXVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184OTIyYXVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4mIzQzO1x0LnByb2JlID0gcnR3ODkyMmF1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuY1xuaW5kZXggYWFmYThiOWU5M2RmYy4uMWQ3Yzc0NTU3YWIxMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbkBAIC0xMjAxLDE1ICYjNDM7MTIwMSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBydHc4OV91c2JfZ3JvdXAgPSB7XG4gX19BVFRSSUJVVEVfR1JPVVBTKHJ0dzg5X3VzYik7XG4gXG4gaW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi1cdFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbiYjNDM7XHRcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm8pXG4ge1xuLVx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuIFx0c3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2O1xuIFx0c3RydWN0IHJ0dzg5X3VzYiAqcnR3dXNiO1xuIFx0aW50IHJldDtcbiBcbi1cdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4tXG4gXHRydHdkZXYgPSBydHc4OV9hbGxvY19pZWVlODAyMTFfaHcoXHUwMDI2aW50Zi1cdTAwM2VkZXYsXG4gXHRcdFx0XHRcdCAgc2l6ZW9mKHN0cnVjdCBydHc4OV91c2IpLCBpbmZvKTtcbiBcdGlmICghcnR3ZGV2KSB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcbmluZGV4IGJkZjMxMjU1OTc0MzguLjM3MjYyMGQwODUxZTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXG5AQCAtOTUsNyAmIzQzOzk1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3ODlfdXNiICpydHc4OV91c2JfcHJpdihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4gfVxuIFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tXHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xuJiM0MztcdFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbyk7XG4gdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG4gXG4gI2VuZGlmXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUVzg5JiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTFCVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQVUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJDVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84OTIyQVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydHc4ODUxYnVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyY3VfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODkyMmF1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg5X3VzYl9wcm9iZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIHdyYXBwZXIgZnVuY3Rpb25zIGZvciBVU0IgcHJvYmUgaW4gc2V2ZXJhbCBydHc4OSBkcml2ZXJzIHRvIGhhbmRsZSBjYXNlcyB3aGVyZSBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIE5VTEwsIHByZXZlbnRpbmcgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIGBydHc4OV91c2JfcHJvYmVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCB3aGljaCBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBkdW1teV9oY2QuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5MDIzN2E0Y2JlYWM4MGZhNjk1ZjcwMGQ1MzljMzQ0OWIyYWIxNTNhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBBdWcgMTYgMTg6MzM6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuYwppbmRleCAxZTgyNzIwNWYyNTQwLi40MzJkMjE2ZGU4NzQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMKQEAgLTU5LDEwICYjNDM7NTksMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUxYnVfaWRfdGFibGVbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTFidV9pZF90YWJsZSk7CiAKJiM0MztzdGF0aWMgaW50IHJ0dzg4NTFidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKJiM0MzsJCQkgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiYjNDM7CiYjNDM7CWlmIChpZC0mZ3Q7ZHJpdmVyX2luZm8pCiYjNDM7CQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKJiM0MzsJZWxzZQomIzQzOwkJaW5mbyA9ICZhbXA7cnR3ODlfODg1MWJ1X2luZm87CiYjNDM7CiYjNDM7CXJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7CiYjNDM7fQomIzQzOwogc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUxYnVfZHJpdmVyID0gewogCS5uYW1lID0gS0JVSUxEX01PRE5BTUUsCiAJLmlkX3RhYmxlID0gcnR3Xzg4NTFidV9pZF90YWJsZSwKLQkucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsCiYjNDM7CS5wcm9iZSA9IHJ0dzg4NTFidV9wcm9iZSwKIAkuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LAogfTsKIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jCmluZGV4IDA2NWY0ZTViMTdhZmEuLmEzN2I2MGI1ODRmMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYwpAQCAtNzMsMTAgJiM0Mzs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJhdV9pZF90YWJsZVtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MmF1X2lkX3RhYmxlKTsKIAomIzQzO3N0YXRpYyBpbnQgcnR3ODg1MmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAomIzQzOwkJCSAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKJiM0Mzt7CiYjNDM7CWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKJiM0MzsKJiM0MzsJaWYgKGlkLSZndDtkcml2ZXJfaW5mbykKJiM0MzsJCWluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtJmd0O2RyaXZlcl9pbmZvOwomIzQzOwllbHNlCiYjNDM7CQlpbmZvID0gJmFtcDtydHc4OV84ODUyYXVfaW5mbzsKJiM0MzsKJiM0MzsJcmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJhdV9kcml2ZXIgPSB7CiAJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwKIAkuaWRfdGFibGUgPSBydHdfODg1MmF1X2lkX3RhYmxlLAotCS5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSwKJiM0MzsJLnByb2JlID0gcnR3ODg1MmF1X3Byb2JlLAogCS5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsCiB9OwogbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJhdV9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMKaW5kZXggZGU3OWExOWEyODI0ZC4uODFiNjE1NmE4ZDI3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jCkBAIC03MywxMCAmIzQzOzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmJ1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4ODUyYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg4NTJidV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmJ1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184ODUyYnVfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4ODUyYnVfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmJ1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuYwppbmRleCAyZGVjOWI4NDU0ODE1Li4wNjdjNmJiMDA3YjMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMKQEAgLTEzMywxMCAmIzQzOzEzMywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJjdV9pZF90YWJsZVtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MmN1X2lkX3RhYmxlKTsKIAomIzQzO3N0YXRpYyBpbnQgcnR3ODg1MmN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAomIzQzOwkJCSAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKJiM0Mzt7CiYjNDM7CWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKJiM0MzsKJiM0MzsJaWYgKGlkLSZndDtkcml2ZXJfaW5mbykKJiM0MzsJCWluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtJmd0O2RyaXZlcl9pbmZvOwomIzQzOwllbHNlCiYjNDM7CQlpbmZvID0gJmFtcDtydHc4OV84ODUyY3VfaW5mbzsKJiM0MzsKJiM0MzsJcmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJjdV9kcml2ZXIgPSB7CiAJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwKIAkuaWRfdGFibGUgPSBydHdfODg1MmN1X2lkX3RhYmxlLAotCS5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSwKJiM0MzsJLnByb2JlID0gcnR3ODg1MmN1X3Byb2JlLAogCS5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsCiB9OwogbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMKaW5kZXggNTZjNzliMWVjODY1Zi4uMmY2MDAyMTcwNGUwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jCkBAIC03NCwxMCAmIzQzOzc0LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODkyMmF1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184OTIyYXVfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4OTIyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg5MjJhdV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODkyMmF1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184OTIyYXVfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4OTIyYXVfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODkyMmF1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYwppbmRleCBhYWZhOGI5ZTkzZGZjLi4xZDdjNzQ1NTdhYjEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMKQEAgLTEyMDEsMTUgJiM0MzsxMjAxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHJ0dzg5X3VzYl9ncm91cCA9IHsKIF9fQVRUUklCVVRFX0dST1VQUyhydHc4OV91c2IpOwogCiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAotCQkgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzOwkJICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbykKIHsKLQljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiAJc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2OwogCXN0cnVjdCBydHc4OV91c2IgKnJ0d3VzYjsKIAlpbnQgcmV0OwogCi0JaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87Ci0KIAlydHdkZXYgPSBydHc4OV9hbGxvY19pZWVlODAyMTFfaHcoJmFtcDtpbnRmLSZndDtkZXYsCiAJCQkJCSAgc2l6ZW9mKHN0cnVjdCBydHc4OV91c2IpLCBpbmZvKTsKIAlpZiAoIXJ0d2RldikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmgKaW5kZXggYmRmMzEyNTU5NzQzOC4uMzcyNjIwZDA4NTFlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oCkBAIC05NSw3ICYjNDM7OTUsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBydHc4OV91c2IgKnJ0dzg5X3VzYl9wcml2KHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldikKIH0KIAogaW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKLQkJICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7CiYjNDM7CQkgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKTsKIHZvaWQgcnR3ODlfdXNiX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpOwogCiAjZW5kaWYKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY4MgoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDMzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgcnR3ODkgV2lyZWxlc3MgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIHRoZSBgcnR3ODlgIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlYWxpbmcgd2l0aCBSZWFsdGVrIDgwMi4xMWF4IGhhcmR3YXJlIOKAkyBpbnRlcmVzdGluZy4gSXQgbG9va3MgbGlrZSB0aGUgbWFpbiBwb2ludCBoZXJlIGlzIGEgY2hhbmdlIGluIGhvdyB0aGUgYHJ0dzg5X3VzYl9wcm9iZWAgZnVuY3Rpb24gaXMgY2FsbGVkLCBzcGVjaWZpY2FsbHkgZm9yIFVTQiBkZXZpY2VzLiBJIHNlZSB0aGF0IGluc3RlYWQgb2YgZGlyZWN0bHkgcGFzc2luZyB0aGUgYHVzYl9kZXZpY2VfaWRgIHN0cnVjdCB0byB0aGUgcHJvYmUgZnVuY3Rpb24sIHRoZXJlJiMzOTtzIG5vdyBhIHdyYXBwZXIgcHJvYmUgZnVuY3Rpb24gaW50cm9kdWNlZCBmb3IgZWFjaCBzcGVjaWZpYyBkZXZpY2UgdHlwZTogYHJ0dzg4NTFidWAsIGBydHc4ODUyYXVgLCBldGMuCgpUaGUgY3JpdGljYWwgcGFydCBpcyB0aGUgY2hlY2sgZm9yIGBpZC0mZ3Q7ZHJpdmVyX2luZm9gLiBJZiBgZHJpdmVyX2luZm9gIGlzbiYjMzk7dCBzZXQsIHdoaWNoIEkgYXNzdW1lIGNhbiBoYXBwZW4gdW5kZXIgc3BlY2lmaWMgY2lyY3Vtc3RhbmNlcywgdGhlIHdyYXBwZXIgbm93IGZhbGxzIGJhY2sgdG8gYSBkZWZhdWx0IGluZm8gc3RydWN0LCBmb3IgZXhhbXBsZSBgJmFtcDtydHc4OV84ODUxYnVfaW5mb2AuICpUaGlzIGlzIGEgZ29vZCBjYXRjaC4qIFByZXZpb3VzbHksIGlmIGBpZC0mZ3Q7ZHJpdmVyX2luZm9gICp3YXMqIE5VTEwsIGBydHc4OV91c2JfcHJvYmVgIHdvdWxkIGhhdmUgYmxpbmRseSBjYXN0IHRoYXQgTlVMTCBwb2ludGVyIHRvIGBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmAgYW5kIGFsbW9zdCBjZXJ0YWlubHkgY3Jhc2hlZCB0aGUga2VybmVsIHdoZW4gZGVyZWZlcmVuY2luZyBpdC4gIEEgY2xhc3NpYyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UsIGFuZCBsaWtlbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4KCkl0JiMzOTtzIGhhcHBlbmluZyB3aXRoaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCBhbmQgdGhhdCYjMzk7cyBpbXBvcnRhbnQuIFRoaXMgbWVhbnMgdGhhdCBldmVuIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIHRoZSBvbmVzIHVzZWQgd2l0aCBzeXprYWxsZXIgdXNpbmcgVVNCIGdhZGdldCBlbXVsYXRpb25zLCB0aGlzIGNvZGUgcGF0aCBpcyByZWFjaGFibGUuIEdpdmVuIHRoYXQgdnVsbmVyYWJpbGl0eSByZXNlYXJjaCBpcyBteSBmb2N1cywgdGhhdCBtYWtlcyBpdCBldmVuIG1vcmUgaW50ZXJlc3RpbmcuCgpOb3csIGxldCBtZSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGVzZSBkcml2ZXJzIHRvIHNlZSBob3cgZWFzaWx5IHRoZXkgY2FuIGJlIGVuYWJsZWQgb3IgZGlzYWJsZWQgYW5kIHVuZGVyc3RhbmQgdGhlIHNjb3BlIG9mIHRoZWlyIHVzZS4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCB0byBsb2NhdGUgdGhlIGBLY29uZmlnYCBmaWxlcyBhbmQgc2VlIHdoYXQgSSBjYW4gZmluZC4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGdpdmVzIG1lIGEgc2Vuc2Ugb2YgdGhlIHBvdGVudGlhbCBhdHRhY2sgc3VyZmFjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOm1lbnVjb25maWcgUlRXODlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFheCB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnPTExPWlmIFJUVzg5XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM6Y29uZmlnIFJUVzg5X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OV9QQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjA6Y29uZmlnIFJUVzg5X1VTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMzpjb25maWcgUlRXODlfODg1MUJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjY6Y29uZmlnIFJUVzg5Xzg4NTJBXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjctXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI5OmNvbmZpZyBSVFc4OV84ODUyQl9DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zMC1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MzI6Y29uZmlnIFJUVzg5Xzg4NTJCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OV84ODUyQlRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zNi1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Mzg6Y29uZmlnIFJUVzg5Xzg4NTJDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzktXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQxOmNvbmZpZyBSVFc4OV84OTIyQVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQyLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NDpjb25maWcgUlRXODlfODkyMkRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00NS1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDc6Y29uZmlnIFJUVzg5Xzg4NTFCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQ4LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NTg6Y29uZmlnIFJUVzg5Xzg4NTFCVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUxQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Njk6Y29uZmlnIFJUVzg5Xzg4NTJBRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTcwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6ODA6Y29uZmlnIFJUVzg5Xzg4NTJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTgxLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctOTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6OTE6Y29uZmlnIFJUVzg5Xzg4NTJCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkyLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTAyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMzpjb25maWcgUlRXODlfODg1MkJVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTA0LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjExNTpjb25maWcgUlRXODlfODg1MkJURVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTExNi1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkJFLVZUIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMjc6Y29uZmlnIFJUVzg5Xzg4NTJDRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyOC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MkNFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2RSkgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM4OmNvbmZpZyBSVFc4OV84ODUyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMzktXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE0OTpjb25maWcgUlRXODlfODkyMkFFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTUwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4OTIyQUUvODkyMkFFLVZTIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNjM6Y29uZmlnIFJUVzg5Xzg5MjJBVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2NC1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODkyMkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA3KSBhZGFwdGVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5Xzg5MjJERVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE3Ni1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODkyMkRFLzg5MjJERS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTg3OmNvbmZpZyBSVFc4OV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE4OC1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTkwOmNvbmZpZyBSVFc4OV9ERUJVR01TR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5MS1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1ZyBtZXNzYWdlIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE5OTpjb25maWcgUlRXODlfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIwMC1cdGJvb2wgXCYjMzQ7UmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwODpjb25maWcgUlRXODlfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIwOS1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIxNTpjb25maWcgUlRXODlfTEVEU19NQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTIxNi1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4MTIyCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhlIGV4cGVydDoKCioqSW52ZXN0aWdhdGluZyB0aGUgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBSVFc4OV84ODUxQlUsIFJUVzg5Xzg4NTJBVSwgUlRXODlfODg1MkJVLCBSVFc4OV84ODUyQ1UsIGFuZCBSVFc4OV84OTIyQVUuIEl0IHNlZW1zIHByZXR0eSBjbGVhciB0aGF0IHRoZXNlIGFyZSB0aGUgcHJpbWFyeSBjb250ZW5kZXJzIHdlJiMzOTtyZSB3b3JraW5nIHdpdGguIE5vdywgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBSVFc4OV9VU0IgZml0IGludG8gdGhpcyBwaWN0dXJlPyBJdCYjMzk7cyBsaWtlbHkgdGhhdCBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjb25maWdzIGltcGxpY2l0bHkgc2VsZWN0IG9yIGRlcGVuZCBvbiBSVFc4OV9VU0IsIGJ1dCBpdCYjMzk7cyBjcnVjaWFsIHRvIGNvbmZpcm0gdGhhdC4gSSBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIgdG8gZW5zdXJlIGV2ZXJ5dGhpbmcgaXMgYXBwcm9wcmlhdGVseSBjb25maWd1cmVkIGFuZCB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IHJlZHVuZGFuY2llcyBvciBvbWlzc2lvbnMuIExldCYjMzk7cyBzdGFydCBieSBjaGVja2luZyB0aGUgZGVwZW5kZW5jaWVzIGFuZCBpbmNsdWRlZCBmaWxlcyBmb3IgZWFjaCBvZiB0aGUgbWFpbiBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUlRXODlfODg1MUJVJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00Nz1jb25maWcgUlRXODlfODg1MUJFXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OmNvbmZpZyBSVFc4OV84ODUxQlVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy01OS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODU5NAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgaW50byB0aGUgUlRXODlfODg1MUJVIEtjb25maWcqKgoKQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCYjMzk7cyBwdWxsIHVwIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGUgYW5kIHN0YXJ0IGRpc3NlY3RpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdXJyb3VuZGluZyB0aGUgUlRXODlfODg1MUJVLiBUaGlzIHVzdWFsbHkgbWVhbnMgSSYjMzk7bSBsb29raW5nIGZvciBhIHNwZWNpZmljIGZlYXR1cmUsIGRlYnVnZ2luZyBhIHJlcG9ydGVkIGlzc3VlLCBvciBhc3Nlc3NpbmcgdGhlIGltcGFjdCBvZiBhIHBvdGVudGlhbCBjaGFuZ2UuIE15IGluaXRpYWwgZm9jdXMgd2lsbCBiZSBvbiB1bmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgdmFsdWVzLCBhbmQgYW55IHRyaXN0YXRlIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIHByZXNlbnQuIEkgd2FudCB0byBzZWUgaG93IHRoaXMgcGFydGljdWxhciBkcml2ZXIgaXMgaW50ZWdyYXRlZCBpbnRvIHRoZSBicm9hZGVyIFJlYWx0ZWsgV2lGaSBlY29zeXN0ZW0gd2l0aGluIHRoZSBrZXJuZWwuIEkmIzM5O2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9yIGluY2x1c2lvbiBndWFyZHMuIFNwZWNpZmljYWxseSwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYW55IGhpbnRzIGFib3V0IHBvd2VyIG1hbmFnZW1lbnQsIHJlZ3VsYXRvcnkgZG9tYWluIHNldHRpbmdzLCBhbmQgcGVyaGFwcyBldmVuIGVhcmx5IGluZGljYXRpb25zIGFib3V0IGludGVyZmFjZS1zcGVjaWZpYyBmbGFncyBsaWtlIFVTQiB2ZXJzdXMgU0RJTyBpbXBsZW1lbnRhdGlvbnMuIEl0IGlzIHByb2JhYmxlLCBJIHdpbGwgYmUgdGhpbmtpbmcgYWJvdXQgaG93IGl0IGlzIGludGVncmF0ZWQgaW50byB0aGUgd2lkZXIgZnJhbWV3b3JrLiBVbHRpbWF0ZWx5LCBteSBnb2FsIGlzIHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiB0aGlzIG1vZHVsZSYjMzk7cyBjb25maWd1cmFibGUgYXNwZWN0cyBhbmQgaG93IHRoZXkgcGxheSB0b2dldGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDU4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgNTg6XHRjb25maWcgUlRXODlfODg1MUJVXG4gIDU5Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuICA2MDpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgNjE6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gIDYyOlx0XHRzZWxlY3QgUlRXODlfVVNCXG4gIDYzOlx0XHRzZWxlY3QgUlRXODlfODg1MUJcbiAgNjQ6XHRcdGhlbHBcbiAgNjU6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTFCVSBjaGlwc2V0XG4gIDY2Olx0XG4gIDY3Olx0XHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXG4gIDY4Olx0XG4gIDY5Olx0Y29uZmlnIFJUVzg5Xzg4NTJBRVxuICA3MDpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgNzE6XHRcdGRlcGVuZHMgb24gUENJXG4gIDcyOlx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA3MzpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA3NDpcdFx0c2VsZWN0IFJUVzg5Xzg4NTJBXG4gIDc1Olx0XHRoZWxwXG4gIDc2Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQUUgY2hpcHNldFxuICA3NzpcdFxuICA3ODpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAgNzk6XHRcbiAgODA6XHRjb25maWcgUlRXODlfODg1MkFVXG4gIDgxOlx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuICA4MjpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAgODM6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gIDg0Olx0XHRzZWxlY3QgUlRXODlfVVNCXG4gIDg1Olx0XHRzZWxlY3QgUlRXODlfODg1MkFcbiAgODY6XHRcdGhlbHBcbiAgODc6XHRcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTJBVSBjaGlwc2V0XG4gIDg4Olx0XG4gIDg5Olx0XHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXG4gIDkwOlx0XG4gIDkxOlx0Y29uZmlnIFJUVzg5Xzg4NTJCRVxuICA5MjpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4ODUyQkUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcJiMzNDtcbiAgOTM6XHRcdGRlcGVuZHMgb24gUENJXG4gIDk0Olx0XHRzZWxlY3QgUlRXODlfQ09SRVxuICA5NTpcdFx0c2VsZWN0IFJUVzg5X1BDSVxuICA5NjpcdFx0c2VsZWN0IFJUVzg5Xzg4NTJCXG4gIDk3Olx0XHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXG4gIDk4Olx0XHRoZWxwXG4gIDk5Olx0XHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQkUgY2hpcHNldFxuIDEwMDpcdFxuIDEwMTpcdFx0ICA4MDIuMTFheCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcbiAxMDI6XHRcbiAxMDM6XHRjb25maWcgUlRXODlfODg1MkJVXG4gMTA0Olx0XHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIDg4NTJCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclwmIzM0O1xuIDEwNTpcdFx0ZGVwZW5kcyBvbiBVU0JcbiAxMDY6XHRcdHNlbGVjdCBSVFc4OV9DT1JFXG4gMTA3Olx0XHRzZWxlY3QgUlRXODlfVVNCXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTY3OQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFJUVzg5IERyaXZlciBMYW5kc2NhcGUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW1tZWRpYXRlIGZvY3VzIGlzIG9uIHRoZSBSVFc4OSBzZXJpZXMsIHNwZWNpZmljYWxseSB0aGUgVVNCIHZhcmlhbnRzIGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9ucyBsaXN0ZWQ6IFJUVzg5Xzg4NTFCVSwgUlRXODlfODg1MkFVLCBSVFc4OV84ODUyQlUsIFJUVzg5Xzg4NTJDVSwgYW5kIFJUVzg5Xzg5MjJBVS4gVGhlc2UgYXJlIHRoZSBjb25maWd1cmF0aW9ucyBJIG5lZWQgdG8gdW5kZXJzdGFuZC4KCkkgc2VlIGEgY2xlYXIgc2V0IG9mIHByb2JlIGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggY29uZmlndXJhdGlvbjogYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBgcnR3ODg1MmJ1X3Byb2JlYCwgYHJ0dzg4NTJjdV9wcm9iZWAsIGFuZCBgcnR3ODkyMmF1X3Byb2JlYCwgYXMgd2VsbCBhcyB0aGUgbW9yZSBnZW5lcmljIGBydHc4OV91c2JfcHJvYmVgLiBUaGVzZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdG8gdW5kZXJzdGFuZCBob3cgZWFjaCBoYXJkd2FyZSB2YXJpYW50IGlzIGluaXRpYWxpemVkIGFuZCBtYW5hZ2VkLgoKQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBjb2RlLCBJJiMzOTtsbCBxdWlja2x5IGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGluZmx1ZW5jZSB0aGUgUlRXODkgc2VyaWVzLiBUaGUgYG1lbnVjb25maWdgIG9wdGlvbiBpcyBgUlRXODlgLCB3aGljaCwgYXMgZXhwZWN0ZWQsIGRlcGVuZHMgb24gdGhlIGBNQUM4MDIxMWAgZnJhbWV3b3JrLiBJIHNob3VsZCBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoYXQgZGVwZW5kZW5jeSwgYnV0IGZpcnN0LCBJIHdpbGwgZ28gdG8gdGhlIHRvcCBvZiBgS2NvbmZpZ2AgZm9yIHRoZSBvdmVyYWxsIGNvbnRleHQuIEdvdHRhIGNoZWNrIHRoZSBiaWcgcGljdHVyZSBiZWZvcmUgem9vbWluZyBpbiBvbiB0aGUgc3BlY2lmaWNzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gICAyOlx0bWVudWNvbmZpZyBSVFc4OVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayA4MDIuMTFheCB3aXJlbGVzcyBjaGlwcyBzdXBwb3J0XCYjMzQ7XG4gICA0Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA1Olx0XHRoZWxwXG4gICA2Olx0XHQgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgbWFjODAyMTEtYmFzZWQgd2lyZWxlc3MgZHJpdmVycyB0aGF0XG4gICA3Olx0XHQgIGVuYWJsZXMgUmVhbHRlayBJRUVFIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzZXRzLlxuICAgODpcdFxuICAgOTpcdFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCYjMzk7bGwgYmUgY2FsbGVkIHJ0dzg5LlxuICAxMDpcdFxuICAxMTpcdGlmIFJUVzg5XG4gIDEyOlx0XG4gIDEzOlx0Y29uZmlnIFJUVzg5X0NPUkVcbiAgMTQ6XHRcdHRyaXN0YXRlXG4gIDE1Olx0XHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcbiAgMTY6XHRcbiAgMTc6XHRjb25maWcgUlRXODlfUENJXG4gIDE4Olx0XHR0cmlzdGF0ZVxuICAxOTpcdFxuICAyMDpcdGNvbmZpZyBSVFc4OV9VU0JcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA0NzkKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAxODkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBSVFc4OSBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgZGl2aW5nIGludG8gdGhlIFJlYWx0ZWsgd2lyZWxlc3Mgc2l0dWF0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgc3BlY2lmaWMgc2V0IG9mIGhhcmR3YXJlIGhlcmUg4oCTIGxpa2VseSBmb2N1c2luZyBvbiB0aGUgUlRXODkgY2hpcHNldC4gSSBzZWUgd2UgbmVlZCB0byBlbnN1cmUgdGhlIFJUVzg5IG1vZHVsZSBpdHNlbGYgaXMgZW5hYmxlZCwgYWxvbmcgd2l0aCBzcGVjaWZpYyBzdWItbW9kdWxlczogUlRXODlfODg1MUJVLCBSVFc4OV84ODUyQVUsIFJUVzg5Xzg4NTJCVSwgUlRXODlfODg1MkNVLCBhbmQgUlRXODlfODkyMkFVLiBUaGlzIHRlbGxzIG1lIHdlIGhhdmUgYSByYW5nZSBvZiBwb3RlbnRpYWwgaGFyZHdhcmUgcmV2aXNpb25zIG9yIGNvbmZpZ3VyYXRpb25zIHdlIG5lZWQgdG8gc3VwcG9ydCB3aXRoaW4gdGhpcyBnZW5lcmFsIFJUVzg5IGZyYW1ld29yay4gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGtlcm5lbCBjb25maWcgb3B0aW9ucyB0byBlbnN1cmUgdGhlc2UgYXJlIGFsbCBzZWxlY3RlZC4KClRoZSBpbmNsdXNpb24gb2YgTUFDODAyMTEgYW5kIFVTQiBpcyBleHBlY3RlZCwgZ2l2ZW4gdGhpcyBpcyB3aXJlbGVzcyBoYXJkd2FyZS4gTUFDODAyMTEgaXMgdGhlIHN0YW5kYXJkIHdpcmVsZXNzIHN0YWNrLCBhbmQgVVNCIGlzIHRoZSBsaWtlbHkgcGh5c2ljYWwgaW50ZXJmYWNlLgoKTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJvYmUgZnVuY3Rpb25zIGZvciBlYWNoIG9mIHRob3NlIHN1Yi1tb2R1bGVzLiBUaGUgZm9jdXMgc3ltYm9scyBnaXZlIG1lIGEgY2xlYXIgbGlzdCBvZiB0aGUgZW50cnkgcG9pbnRzOiBgcnR3ODg1MWJ1X3Byb2JlYCwgYHJ0dzg4NTJhdV9wcm9iZWAsIGBydHc4ODUyYnVfcHJvYmVgLCBgcnR3ODg1MmN1X3Byb2JlYCwgYW5kIGBydHc4OTIyYXVfcHJvYmVgLCBhbG9uZyB3aXRoIHRoZSBvdmVyYXJjaGluZyBgcnR3ODlfdXNiX3Byb2JlYC4gVGhlc2UgYXJlIHRoZSBmdW5jdGlvbnMgcmVzcG9uc2libGUgZm9yIGluaXRpYWxpemluZyB0aGUgaGFyZHdhcmUuCgpGaW5hbGx5LCBJJiMzOTttIHNwZWNpZmljYWxseSBpbnRlcmVzdGVkIGluIHRoZSBgcnR3ODlfdXNiX3Byb2JlYCBmdW5jdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5IHRoYXQgaXQmIzM5O3MgYWN0dWFsbHkgZXhwb3J0ZWQg4oCTIG1lYW5pbmcgaXQmIzM5O3MgdmlzaWJsZSBhbmQgY2FsbGFibGUgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsLiBBIHF1aWNrIGNoZWNrIG9mIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jYCB3aWxsIGNvbmZpcm0gdGhpcy4gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBSVFc4OSBVU0IgZHJpdmVyLCBhbmQgaWYgaXQmIzM5O3Mgbm90IGV4cG9ydGVkLCB3ZSYjMzk7dmUgZ290IGEgcHJvYmxlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RVhQT1JUX1NZTUJPTC4qcnR3ODlfdXNiX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jPTEyMDM9aW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jLTEyOTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYzoxMjkyOkVYUE9SVF9TWU1CT0wocnR3ODlfdXNiX3Byb2JlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMtMTI5My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTEyOTMKCQkJCQkJCW91dHB1dDogMjQzCgkJCQkJCQl0aG91Z2h0czogMjU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKioKCk9rYXksIHNvIEkgc2VlIHRoaXMgcGF0Y2ggaGFzIGJlZW4gZXhwb3J0ZWQuIEdvb2QuIEl0IGFkZHJlc3NlcyBhIGNyaXRpY2FsIGZ1bmN0aW9uYWwgaXNzdWUgd2l0aGluIHRoZSBydHc4OSBVU0IgZHJpdmVycy4gU3BlY2lmaWNhbGx5LCBpdCBndWFyZHMgYWdhaW5zdCB0aGUgcG9zc2liaWxpdHkgb2YgYGlkLSZndDtkcml2ZXJfaW5mb2AgYmVpbmcgTlVMTCBkdXJpbmcgcHJvYmUgZnVuY3Rpb25zIGxpa2UgYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBldGMuIFRoaXMgcG90ZW50aWFsIE5VTEwgZGVyZWZlcmVuY2Ugd2FzIGEgc2VyaW91cyB2dWxuZXJhYmlsaXR5OyBhIGNyYXNoIHdhaXRpbmcgdG8gaGFwcGVuLiBUaGUgY29yZSBvZiB0aGlzIGZpeCBpcyB0aGUgaW50cm9kdWN0aW9uIG9mIHdyYXBwZXIgZnVuY3Rpb25zLiBFZmZlY3RpdmVseSwgaXQmIzM5O3MgYSBudWxsIGNoZWNrIGJlaW5nIGFkZGVkIHRvIHRoZSBVU0IgcHJvYmUgZmxvdy4KClRoZSBpbmNsdXNpb24gb2YgYFdvcnRoRnV6emluZzogdHJ1ZWAgaXMgc3BvdCBvbiwgZ2l2ZW4gdGhpcyBpcyBub3cgbW9yZSByb2J1c3QgYW5kIGxlc3MgbGlrZWx5IHRvIGZhbGwgb3ZlciBkdWUgdG8gYSBudWxsIHBvaW50ZXIuIFRoZSBgRm9jdXNTeW1ib2xzYCBhcmUgY2xlYXJseSBpZGVudGlmeWluZyB0aGUgcmVsZXZhbnQgcHJvYmUgZnVuY3Rpb25zLCBhbmQgdGhlIGBFbmFibGVDb25maWdzYCByZWluZm9yY2Ugd2hpY2ggY29uZmlndXJhdGlvbnMgYXJlIGFmZmVjdGVkLiBUaGUgcGF0Y2gmIzM5O3MgcmVhc29uaW5nIGlzIHNvdW5kOyBpdCBjb3JyZWN0bHkgaWRlbnRpZmllcyB0aGUgaXNzdWUgYXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCBhbmQgaW1wb3J0YW50bHksIGl0IGFja25vd2xlZGdlcyB0aGF0IHRoaXMgY29kZSBwYXRoIGlzIGV4cG9zZWQgaW4gdmlydHVhbGl6ZWQgc2V0dXBzIChwYXJ0aWN1bGFybHkgdGhyb3VnaCBkdW1teV9oY2QpLiBUaGlzIHBhdGNoIGlzIGRlZmluaXRlbHkgYSBwb3NpdGl2ZSBjaGFuZ2UgYW5kIG1pdGlnYXRlcyBhIHBvdGVudGlhbCBzb3VyY2Ugb2YgaW5zdGFiaWxpdHksIGltcHJvdmluZyB0aGUgcm9idXN0bmVzcyBvZiB0aGUgc3lzdGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODkmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MUJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQlUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkNVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg5MjJBVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg4NTFidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmJ1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJjdV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4OTIyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODlfdXNiX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgd3JhcHBlciBmdW5jdGlvbnMgZm9yIFVTQiBwcm9iZSBpbiBzZXZlcmFsIHJ0dzg5IGRyaXZlcnMgdG8gaGFuZGxlIGNhc2VzIHdoZXJlIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRXODkmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MUJVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg4NTJBVSYjMzQ7LAogICAgJiMzNDtSVFc4OV84ODUyQlUmIzM0OywKICAgICYjMzQ7UlRXODlfODg1MkNVJiMzNDssCiAgICAmIzM0O1JUVzg5Xzg5MjJBVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0dzg4NTFidV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4ODUyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODg1MmJ1X3Byb2JlJiMzNDssCiAgICAmIzM0O3J0dzg4NTJjdV9wcm9iZSYjMzQ7LAogICAgJiMzNDtydHc4OTIyYXVfcHJvYmUmIzM0OywKICAgICYjMzQ7cnR3ODlfdXNiX3Byb2JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgd3JhcHBlciBmdW5jdGlvbnMgZm9yIFVTQiBwcm9iZSBpbiBzZXZlcmFsIHJ0dzg5IGRyaXZlcnMgdG8gaGFuZGxlIGNhc2VzIHdoZXJlIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5rbXNhbi1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgdGhhdCBvY2N1cnMgd2hlbiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIHNlY3VyaXR5IGVuZ2luZWVyIHNwZWNpYWxpemluZyBpbiBrZXJuZWwgbWVtb3J5CmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kCmRldGVybWluZSBpZiB0aGUgY29kZSBjaGFuZ2VzIGp1c3RpZnkgc3Bhd25pbmcgYSBkZWRpY2F0ZWQgS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikKZnV6emluZyBzZXNzaW9uIGluIGFkZGl0aW9uIHRvIHN0YW5kYXJkIEtBU0FOIGZ1enppbmcuCgpDUklUSUNBTCBESVNUSU5DVElPTiBCRVRXRUVOIEtBU0FOIEFORCBLTVNBTjoKLSBTdGFuZGFyZCBLQVNBTiBrZXJuZWwgYnVpbGRzICh1cHN0cmVhbS1hcHBhcm1vci1rYXNhbi5jb25maWcpIGFscmVhZHkgZW5hYmxlCiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOCiAgKG91dC1vZi1ib3VuZHMgYWNjZXNzZXMsIHVzZS1hZnRlci1mcmVlLCBkb3VibGUgZnJlZSwgaW52YWxpZCBmcmVlKSwgTE9DS0RFUAogIChsb2NraW5nIGJ1Z3MgYW5kIGRlYWRsb2NrcyksIFVCLXNhbml0aXplcnMsIGFuZCBtZW1vcnkgY29ycnVwdGlvbiBjaGVja3MuCi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsCiAgb3IgcGFnZSBhbGxvY2F0aW9ucykgYW5kIGtlcm5lbC10by11c2VyIG1lbW9yeSBpbmZvLWxlYWtzLgoKUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTiwKTE9DS0RFUCwgT1IgT1RIRVIgU1RBTkRBUkQgQlVHIERFVEVDVE9SUy4KQSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGluY3VycyBzaWduaWZpY2FudCByZXNvdXJjZSBjb3N0cy4gWW91IG11c3QgT05MWQpzZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrcwp0aGF0IGFyZSBkZXRlY3RlZCBPTkxZIGJ5IEtNU0FOLgoKTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3QKdW5pbml0aWFsaXplZCBmaWVsZCBhY2Nlc3NlcyBvciBuZXcgYnVmZmVyIGFsbG9jYXRpb25zIGFyZSBhZGRlZCBpbiB0aGUgZGlmZiBpdHNlbGYsCmEgcGF0Y2ggbWF5IGFsdGVyIGNvbnRyb2wgZmxvdywgYm91bmRzIGNoZWNraW5nLCBvciBkYXRhIGxlbmd0aCBjYWxjdWxhdGlvbnMgaW4gd2F5cwp0aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZwp1bmluaXRpYWxpemVkIHN0YWNrL2hlYXAgbWVtb3J5IHRvIGJlIHJlYWQsIGNvcGllZCB0byB1c2VyIHNwYWNlLCBvciB1c2VkIGluIGNvbnRyb2wKZmxvdykuIERvIG5vdCBoZXNpdGF0ZSB0byB1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBpbnNwZWN0IHRoZSBzdXJyb3VuZGluZyBjb2RlLApjYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy4KClNldCBOZWVkc0tNU0FOPXRydWUgT05MWSBJRiB0aGUgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllczoKMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2IKICAgYXR0cmlidXRlcywgaW9jdGwgb3V0cHV0IGFyZ3VtZW50cywgc29ja2V0IG9wdGlvbnMsIG9yIEJQRiBidWZmZXJzKSB3aGVyZSBmaWVsZHMKICAgb3Igc3RydWN0dXJlIHBhZGRpbmcgbWlnaHQgbm90IGJlIGZ1bGx5IGluaXRpYWxpemVkL3plcm9lZC4KMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcwogICBvciBzdHJ1Y3QgZmllbGRzLgozLiBBbGxvY2F0aW9uIG9yIGluaXRpYWxpemF0aW9uIG9mIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIHdoZXJlIHVuaW5pdGlhbGl6ZWQgZmllbGRzCiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuCjQuIEJvdW5kcyBjaGVja3MsIGxlbmd0aHMsIG9yIGxvZ2ljIGluIGEgd2F5IHRoYXQgYWxsb3dzIHN1cnJvdW5kaW5nIGNvZGUgdG8gYWNjZXNzCiAgIHVuaW5pdGlhbGl6ZWQgYnl0ZXMgb2YgZXhpc3RpbmcgYnVmZmVycy4KClNldCBOZWVkc0tNU0FOPWZhbHNlIElGOgotIFRoZSBjb2RlIGNoYW5nZXMgcHJpbWFyaWx5IHJpc2sgb3V0LW9mLWJvdW5kcyBhY2Nlc3MsIGFycmF5IG92ZXJmbG93cywgTlVMTCBwb2ludGVyCiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0CiAgYnkgS0FTQU4sIExPQ0tERVAsIG9yIHN0YW5kYXJkIGJ1ZyBkZXRlY3RvcnMpLgotIEFsbCBzdGFjay9oZWFwIHN0cnVjdHVyZXMgdG91Y2hlZCBvciBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBhcmUgZnVsbHkgemVyb2VkCiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLgotIFRoZSBwYXRjaCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IHJpc2sgb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgdXNhZ2Ugb3IgaW5mby1sZWFrcy4KClVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGUKZGV0YWlsZWQgS01TQU5SZWFzb25pbmcgY29udHJhc3RpbmcgS0FTQU4gdnMgS01TQU4gYXBwbGljYWJpbGl0eSBmb3IgdGhpcyBwYXRjaC4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDkwMjM3YTRjYmVhYzgwZmE2OTVmNzAwZDUzOWMzNDQ5YjJhYjE1M2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU3VuIEF1ZyAxNiAxODozMzo1OCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jCmluZGV4IDFlODI3MjA1ZjI1NDAuLjQzMmQyMTZkZTg3NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuYwpAQCAtNTksMTAgJiM0Mzs1OSwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTFidV9pZF90YWJsZVtdID0gewogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTsKIAomIzQzO3N0YXRpYyBpbnQgcnR3ODg1MWJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAomIzQzOwkJCSAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKJiM0Mzt7CiYjNDM7CWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKJiM0MzsKJiM0MzsJaWYgKGlkLSZndDtkcml2ZXJfaW5mbykKJiM0MzsJCWluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtJmd0O2RyaXZlcl9pbmZvOwomIzQzOwllbHNlCiYjNDM7CQlpbmZvID0gJmFtcDtydHc4OV84ODUxYnVfaW5mbzsKJiM0MzsKJiM0MzsJcmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTFidV9kcml2ZXIgPSB7CiAJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwKIAkuaWRfdGFibGUgPSBydHdfODg1MWJ1X2lkX3RhYmxlLAotCS5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSwKJiM0MzsJLnByb2JlID0gcnR3ODg1MWJ1X3Byb2JlLAogCS5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsCiB9OwogbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTFidV9kcml2ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmMKaW5kZXggMDY1ZjRlNWIxN2FmYS4uYTM3YjYwYjU4NGYyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jCkBAIC03MywxMCAmIzQzOzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmF1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYXVfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4ODUyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg4NTJhdV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmF1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184ODUyYXVfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4ODUyYXVfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYwppbmRleCBkZTc5YTE5YTI4MjRkLi44MWI2MTU2YThkMjdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMKQEAgLTczLDEwICYjNDM7NzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyYnVfaWRfdGFibGVbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJidV9pZF90YWJsZSk7CiAKJiM0MztzdGF0aWMgaW50IHJ0dzg4NTJidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKJiM0MzsJCQkgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiYjNDM7CiYjNDM7CWlmIChpZC0mZ3Q7ZHJpdmVyX2luZm8pCiYjNDM7CQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKJiM0MzsJZWxzZQomIzQzOwkJaW5mbyA9ICZhbXA7cnR3ODlfODg1MmJ1X2luZm87CiYjNDM7CiYjNDM7CXJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7CiYjNDM7fQomIzQzOwogc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYnVfZHJpdmVyID0gewogCS5uYW1lID0gS0JVSUxEX01PRE5BTUUsCiAJLmlkX3RhYmxlID0gcnR3Xzg4NTJidV9pZF90YWJsZSwKLQkucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsCiYjNDM7CS5wcm9iZSA9IHJ0dzg4NTJidV9wcm9iZSwKIAkuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LAogfTsKIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUyYnVfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jCmluZGV4IDJkZWM5Yjg0NTQ4MTUuLjA2N2M2YmIwMDdiMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuYwpAQCAtMTMzLDEwICYjNDM7MTMzLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmN1X2lkX3RhYmxlW10gPSB7CiB9OwogTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpOwogCiYjNDM7c3RhdGljIGludCBydHc4ODUyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiYjNDM7CQkJICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQomIzQzO3sKJiM0MzsJY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvOwomIzQzOwomIzQzOwlpZiAoaWQtJmd0O2RyaXZlcl9pbmZvKQomIzQzOwkJaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CiYjNDM7CWVsc2UKJiM0MzsJCWluZm8gPSAmYW1wO3J0dzg5Xzg4NTJjdV9pbmZvOwomIzQzOwomIzQzOwlyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pOwomIzQzO30KJiM0MzsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmN1X2RyaXZlciA9IHsKIAkubmFtZSA9IEtCVUlMRF9NT0ROQU1FLAogCS5pZF90YWJsZSA9IHJ0d184ODUyY3VfaWRfdGFibGUsCi0JLnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLAomIzQzOwkucHJvYmUgPSBydHc4ODUyY3VfcHJvYmUsCiAJLmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCwKIH07CiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmN1X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuYwppbmRleCA1NmM3OWIxZWM4NjVmLi4yZjYwMDIxNzA0ZTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMKQEAgLTc0LDEwICYjNDM7NzQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184OTIyYXVfaWRfdGFibGVbXSA9IHsKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg5MjJhdV9pZF90YWJsZSk7CiAKJiM0MztzdGF0aWMgaW50IHJ0dzg5MjJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKJiM0MzsJCQkgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87CiYjNDM7CiYjNDM7CWlmIChpZC0mZ3Q7ZHJpdmVyX2luZm8pCiYjNDM7CQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKJiM0MzsJZWxzZQomIzQzOwkJaW5mbyA9ICZhbXA7cnR3ODlfODkyMmF1X2luZm87CiYjNDM7CiYjNDM7CXJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7CiYjNDM7fQomIzQzOwogc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184OTIyYXVfZHJpdmVyID0gewogCS5uYW1lID0gS0JVSUxEX01PRE5BTUUsCiAJLmlkX3RhYmxlID0gcnR3Xzg5MjJhdV9pZF90YWJsZSwKLQkucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsCiYjNDM7CS5wcm9iZSA9IHJ0dzg5MjJhdV9wcm9iZSwKIAkuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LAogfTsKIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jCmluZGV4IGFhZmE4YjllOTNkZmMuLjFkN2M3NDU1N2FiMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYwpAQCAtMTIwMSwxNSAmIzQzOzEyMDEsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcnR3ODlfdXNiX2dyb3VwID0gewogX19BVFRSSUJVVEVfR1JPVVBTKHJ0dzg5X3VzYik7CiAKIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCi0JCSAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpCiYjNDM7CQkgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKQogewotCWNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbzsKIAlzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXY7CiAJc3RydWN0IHJ0dzg5X3VzYiAqcnR3dXNiOwogCWludCByZXQ7CiAKLQlpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLSZndDtkcml2ZXJfaW5mbzsKLQogCXJ0d2RldiA9IHJ0dzg5X2FsbG9jX2llZWU4MDIxMV9odygmYW1wO2ludGYtJmd0O2RldiwKIAkJCQkJICBzaXplb2Yoc3RydWN0IHJ0dzg5X3VzYiksIGluZm8pOwogCWlmICghcnR3ZGV2KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaAppbmRleCBiZGYzMTI1NTk3NDM4Li4zNzI2MjBkMDg1MWU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmgKQEAgLTk1LDcgJiM0Mzs5NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJ0dzg5X3VzYiAqcnR3ODlfdXNiX3ByaXYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KQogfQogCiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLAotCQkgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKJiM0MzsJCSAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm8pOwogdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7CiAKICNlbmRpZgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8zPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTYgMTg6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPmttc2FuLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY3OQoJCQkJCQkJb3V0cHV0OiAxMjQKCQkJCQkJCXRob3VnaHRzOiA2NzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqCgpPa2F5LCBsZXQgbWUgYnJlYWsgZG93biB0aGlzIFJlYWx0ZWsgd2lyZWxlc3MgZHJpdmVyIHBhdGNoLiBJdCYjMzk7cyB0YXJnZXRpbmcgdGhlIHByb2JlIGZ1bmN0aW9ucyB3aXRoaW4gc2V2ZXJhbCBgcnR3ODlgIGZhbWlseSBkcml2ZXJzOiBgcnR3ODg1MWJ1YCwgYHJ0dzg4NTJhdWAsIGBydHc4ODUyYnVgLCBgcnR3ODg1MmN1YCwgYW5kIGBydHc4OTIyYXVgLiBUaGUgY29yZSBjaGFuZ2UgaXMgaW4gaG93IHRoZSBVU0IgcHJvYmUgZnVuY3Rpb24sIGBydHc4OV91c2JfcHJvYmVgLCBoYW5kbGVzIGRyaXZlci1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gSW5zdGVhZCBvZiBkaXJlY3RseSB1c2luZyBhIGB1c2JfZGV2aWNlX2lkYCYjMzk7cyBgZHJpdmVyX2luZm9gIGZpZWxkLCB3aGljaCwgY3JpdGljYWxseSwgaXMgYSBga2VybmVsX3Vsb25nX3RgIGFuZCB0aGVyZWZvcmUgY2FuIGJlIHplcm8sIGl0IG5vdyB0YWtlcyBhIGBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm9gIGRpcmVjdGx5LgoKVGhlIGluZGl2aWR1YWwgZHJpdmVyIGZpbGVzIG5vdyBoYXZlIGEgbmV3IHByb2JlIGZ1bmN0aW9uLCBsaWtlIGBydHc4ODUxYnVfcHJvYmVgLCB3aGljaCBjaGVja3MgaWYgdGhlIGBpZC0mZ3Q7ZHJpdmVyX2luZm9gIHBvaW50ZXIgaXMgdmFsaWQuIElmIGl0ICppcyogc2V0IChub24tTlVMTCwgYWZ0ZXIgdGhlIGNhc3QpLCBpdCB1c2VzIGl0LiBJZiBpdCYjMzk7cyAqbm90KiBzZXQsIGkuZS4sIGlzIHplcm8sIGl0IGZhbGxzIGJhY2sgdG8gYSBkZWZhdWx0IGBydHc4OV84ODUxYnVfaW5mb2Agc3RydWN0LiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQuCgpUaGUgaW5pdGlhbCBwcm9ibGVtIGhlcmUgaXMgY3J5c3RhbCBjbGVhcjogdGhlIGNvZGUgd2FzIGRlcmVmZXJlbmNpbmcgYGlkLSZndDtkcml2ZXJfaW5mb2Agd2hpY2ggY291bGQgYmUgemVyby4gU3BlY2lmaWNhbGx5LCB0aGUgb3JpZ2luYWwgY29kZSBoYWQ6CgpgYGBjCi0JaW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC0mZ3Q7ZHJpdmVyX2luZm87CmBgYAoKVGhpcyBwcmVzZW50cyBhIGNsYXNzaWMgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGJ1Zy4gSWYgdGhlIFVTQiBkZXZpY2Ugd2FzIGJvdW5kIHRocm91Z2gsIHNheSwgc3lzZnMmIzM5O3MgYG5ld19pZGAgbWVjaGFuaXNtLCB0aGVuIHRoZSBgZHJpdmVyX2luZm9gIGZpZWxkIGNvdWxkIGJlIDAsIGFuZCB0aGUgYXNzaWdubWVudCB3b3VsZCBoYXZlIGBpbmZvYCBhcyBOVUxMLCB3aGljaCBpcyB0aGVuIHBhc3NlZCBkb3duIHRvIGBydHc4OV9hbGxvY19pZWVlODAyMTFfaHdgLCBhbmQgYm9vbSwgeW91IGNyYXNoLgoKTm93LCB0aGUgcXVlc3Rpb24gaXMsIGlzIHRoaXMgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkgaXNzdWU/IE5vLCBhYnNvbHV0ZWx5IG5vdC4gVGhlIHJvb3QgY2F1c2UgaXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBgZHJpdmVyX2luZm9gIGZpZWxkIGlzbiYjMzk7dCAmIzM0O3VuaW5pdGlhbGl6ZWQmIzM0OyBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UuIEl0JiMzOTtzIGluaXRpYWxpemVkIHRvIHplcm8uIFRoZSBwcm9ibGVtIGlzIGRlcmVmZXJlbmNpbmcgYSB6ZXJvIHZhbHVlLiBUaGlzIHBhdGNoIGNsZXZlcmx5IHByb3ZpZGVzIGEgZmFsbGJhY2ssIHByZXZlbnRpbmcgdGhlIGNyYXNoLiBLQVNBTiBvciBhIHN0YW5kYXJkIGtlcm5lbCBvb3BzIHdvdWxkIHF1aWNrbHkgY2F0Y2ggYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgbGlrZSB0aGlzLiBUaGVyZSYjMzk7cyBubyB1bmluaXRpYWxpemVkIG1lbW9yeSBiZWluZyByZWFkIG9yIGxlYWtlZCB0byB1c2Vyc3BhY2UgaGVyZS4KCkxldCYjMzk7cyBxdWlja2x5IHJlLWl0ZXJhdGU6IFRoZSBmaXggYWRkcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIHN0cnVjdCBgJmFtcDtydHc4OV84ODUxYnVfaW5mb2Agd2hlbiBgaWQtJmd0O2RyaXZlcl9pbmZvYCBpcyAwLiBUaGlzIGlzIGEgdmVyeSBjb21tb24gZml4IGZvciBVU0IgZHJpdmVycyB0aGF0IGFzc3VtZSBgZHJpdmVyX2luZm9gIGlzIGFsd2F5cyBhIHZhbGlkIHBvaW50ZXIuIFRoaXMgaXMgYWxsIGFib3V0IHByZXZlbnRpbmcgY3Jhc2hlcyBpbiBVU0IgZHJpdmVycyB3aGVuIGRlYWxpbmcgd2l0aCBkeW5hbWljYWxseSBib3VuZCBkZXZpY2VzIHRocm91Z2ggYG5ld19pZGAuCgpUaGVyZWZvcmUsIHRoZSBgTmVlZHNLTVNBTmAgZmxhZyBpcyBgZmFsc2VgLiBUaGlzIHBhdGNoIGNsZWFybHkgcmVzb2x2ZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaXNzdWUsIHNwZWNpZmljYWxseSB3aGVuIGBkcml2ZXJfaW5mb2AgaXMgMCAoYXMgb2Z0ZW4gaGFwcGVucyB3aXRoIGBuZXdfaWRgKSwgYW5kIGlzIG5vdCByZWxhdGVkIHRvIHVuaW5pdGlhbGl6ZWQgbWVtb3J5LiBUaGUgc3RhbmRhcmQga2VybmVsIHNhZmV0eSBtZWNoYW5pc21zIChLQVNBTiwgT29wcykgYXJlIGZ1bGx5IHN1ZmZpY2llbnQgZm9yIGRldGVjdGluZyBhbmQgbWl0aWdhdGluZyBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzM8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xNiAxODozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgdGhhdCBvY2N1cnMgd2hlbiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtLTVNBTlJlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgdGhhdCBvY2N1cnMgd2hlbiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuJiMzNDssCiAgJiMzNDtOZWVkc0tNU0FOJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjMzOjU5Ljk4Mzg3MDEzMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU3Njc3ODUzNDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUVzg5XCIsXG4gICAgXCJSVFc4OV84ODUxQlVcIixcbiAgICBcIlJUVzg5Xzg4NTJBVVwiLFxuICAgIFwiUlRXODlfODg1MkJVXCIsXG4gICAgXCJSVFc4OV84ODUyQ1VcIixcbiAgICBcIlJUVzg5Xzg5MjJBVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0dzg4NTFidV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmF1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyYnVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJjdV9wcm9iZVwiLFxuICAgIFwicnR3ODkyMmF1X3Byb2JlXCIsXG4gICAgXCJydHc4OV91c2JfcHJvYmVcIlxuICBdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB0aGF0IG9jY3VycyB3aGVuIGBpZC1cXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzM6NTkuOTgzODc2MzcyWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY0MzY1MjA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOTAyMzdhNGNiZWFjODBmYTY5NWY3MDBkNTM5YzM0NDliMmFiMTUzYVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAxNiAxODozMzo1OCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xcbmluZGV4IDFlODI3MjA1ZjI1NDAuLjQzMmQyMTZkZTg3NDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmNcXG5AQCAtNTksMTAgKzU5LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MWJ1X2lkX3RhYmxlW10gPSB7XFxuIH07XFxuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTtcXG4gXFxuK3N0YXRpYyBpbnQgcnR3ODg1MWJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbitcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuK3tcXG4rXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xcbitcXG4rXFx0aWYgKGlkLVxcdTAwM2Vkcml2ZXJfaW5mbylcXG4rXFx0XFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2luZm87XFxuK1xcdGVsc2VcXG4rXFx0XFx0aW5mbyA9IFxcdTAwMjZydHc4OV84ODUxYnVfaW5mbztcXG4rXFxuK1xcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XFxuK31cXG4rXFxuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MWJ1X2RyaXZlciA9IHtcXG4gXFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcXG4gXFx0LmlkX3RhYmxlID0gcnR3Xzg4NTFidV9pZF90YWJsZSxcXG4tXFx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxcbitcXHQucHJvYmUgPSBydHc4ODUxYnVfcHJvYmUsXFxuIFxcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXFxuIH07XFxuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcXG5pbmRleCAwNjVmNGU1YjE3YWZhLi5hMzdiNjBiNTg0ZjI0IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jXFxuQEAgLTczLDEwICs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJhdV9pZF90YWJsZVtdID0ge1xcbiB9O1xcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJhdV9pZF90YWJsZSk7XFxuIFxcbitzdGF0aWMgaW50IHJ0dzg4NTJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4rXFx0XFx0XFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbit7XFxuK1xcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcXG4rXFxuK1xcdGlmIChpZC1cXHUwMDNlZHJpdmVyX2luZm8pXFxuK1xcdFxcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9pbmZvO1xcbitcXHRlbHNlXFxuK1xcdFxcdGluZm8gPSBcXHUwMDI2cnR3ODlfODg1MmF1X2luZm87XFxuK1xcbitcXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xcbit9XFxuK1xcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJhdV9kcml2ZXIgPSB7XFxuIFxcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXFxuIFxcdC5pZF90YWJsZSA9IHJ0d184ODUyYXVfaWRfdGFibGUsXFxuLVxcdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcXG4rXFx0LnByb2JlID0gcnR3ODg1MmF1X3Byb2JlLFxcbiBcXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxcbiB9O1xcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXFxuaW5kZXggZGU3OWExOWEyODI0ZC4uODFiNjE1NmE4ZDI3ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuY1xcbkBAIC03MywxMCArNzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyYnVfaWRfdGFibGVbXSA9IHtcXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpO1xcbiBcXG4rc3RhdGljIGludCBydHc4ODUyYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuK1xcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4re1xcbitcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XFxuK1xcbitcXHRpZiAoaWQtXFx1MDAzZWRyaXZlcl9pbmZvKVxcbitcXHRcXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfaW5mbztcXG4rXFx0ZWxzZVxcbitcXHRcXHRpbmZvID0gXFx1MDAyNnJ0dzg5Xzg4NTJidV9pbmZvO1xcbitcXG4rXFx0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcXG4rfVxcbitcXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYnVfZHJpdmVyID0ge1xcbiBcXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxcbiBcXHQuaWRfdGFibGUgPSBydHdfODg1MmJ1X2lkX3RhYmxlLFxcbi1cXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXFxuK1xcdC5wcm9iZSA9IHJ0dzg4NTJidV9wcm9iZSxcXG4gXFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcXG4gfTtcXG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJidV9kcml2ZXIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xcbmluZGV4IDJkZWM5Yjg0NTQ4MTUuLjA2N2M2YmIwMDdiMzEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmNcXG5AQCAtMTMzLDEwICsxMzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyY3VfaWRfdGFibGVbXSA9IHtcXG4gfTtcXG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpO1xcbiBcXG4rc3RhdGljIGludCBydHc4ODUyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuK1xcdFxcdFxcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4re1xcbitcXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XFxuK1xcbitcXHRpZiAoaWQtXFx1MDAzZWRyaXZlcl9pbmZvKVxcbitcXHRcXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVxcdTAwM2Vkcml2ZXJfaW5mbztcXG4rXFx0ZWxzZVxcbitcXHRcXHRpbmZvID0gXFx1MDAyNnJ0dzg5Xzg4NTJjdV9pbmZvO1xcbitcXG4rXFx0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcXG4rfVxcbitcXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyY3VfZHJpdmVyID0ge1xcbiBcXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxcbiBcXHQuaWRfdGFibGUgPSBydHdfODg1MmN1X2lkX3RhYmxlLFxcbi1cXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXFxuK1xcdC5wcm9iZSA9IHJ0dzg4NTJjdV9wcm9iZSxcXG4gXFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcXG4gfTtcXG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xcbmluZGV4IDU2Yzc5YjFlYzg2NWYuLjJmNjAwMjE3MDRlMDggMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmNcXG5AQCAtNzQsMTAgKzc0LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODkyMmF1X2lkX3RhYmxlW10gPSB7XFxuIH07XFxuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODkyMmF1X2lkX3RhYmxlKTtcXG4gXFxuK3N0YXRpYyBpbnQgcnR3ODkyMmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxcbitcXHRcXHRcXHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuK3tcXG4rXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xcbitcXG4rXFx0aWYgKGlkLVxcdTAwM2Vkcml2ZXJfaW5mbylcXG4rXFx0XFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cXHUwMDNlZHJpdmVyX2luZm87XFxuK1xcdGVsc2VcXG4rXFx0XFx0aW5mbyA9IFxcdTAwMjZydHc4OV84OTIyYXVfaW5mbztcXG4rXFxuK1xcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XFxuK31cXG4rXFxuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODkyMmF1X2RyaXZlciA9IHtcXG4gXFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcXG4gXFx0LmlkX3RhYmxlID0gcnR3Xzg5MjJhdV9pZF90YWJsZSxcXG4tXFx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxcbitcXHQucHJvYmUgPSBydHc4OTIyYXVfcHJvYmUsXFxuIFxcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXFxuIH07XFxuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcXG5pbmRleCBhYWZhOGI5ZTkzZGZjLi4xZDdjNzQ1NTdhYjEzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXFxuQEAgLTEyMDEsMTUgKzEyMDEsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcnR3ODlfdXNiX2dyb3VwID0ge1xcbiBfX0FUVFJJQlVURV9HUk9VUFMocnR3ODlfdXNiKTtcXG4gXFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLVxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuK1xcdFxcdCAgICBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm8pXFxuIHtcXG4tXFx0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xcbiBcXHRzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXY7XFxuIFxcdHN0cnVjdCBydHc4OV91c2IgKnJ0d3VzYjtcXG4gXFx0aW50IHJldDtcXG4gXFxuLVxcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXFx1MDAzZWRyaXZlcl9pbmZvO1xcbi1cXG4gXFx0cnR3ZGV2ID0gcnR3ODlfYWxsb2NfaWVlZTgwMjExX2h3KFxcdTAwMjZpbnRmLVxcdTAwM2VkZXYsXFxuIFxcdFxcdFxcdFxcdFxcdCAgc2l6ZW9mKHN0cnVjdCBydHc4OV91c2IpLCBpbmZvKTtcXG4gXFx0aWYgKCFydHdkZXYpIHtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcXG5pbmRleCBiZGYzMTI1NTk3NDM4Li4zNzI2MjBkMDg1MWU2IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXFxuQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3ODlfdXNiICpydHc4OV91c2JfcHJpdihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXFxuIH1cXG4gXFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLVxcdFxcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xcbitcXHRcXHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKTtcXG4gdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XFxuIFxcbiAjZW5kaWZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MDEuMzQ4OTc2ODE5WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NDQzNjQ5MzUxMzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUlRXODlcIixcbiAgICBcIlJUVzg5Xzg4NTFCVVwiLFxuICAgIFwiUlRXODlfODg1MkFVXCIsXG4gICAgXCJSVFc4OV84ODUyQlVcIixcbiAgICBcIlJUVzg5Xzg4NTJDVVwiLFxuICAgIFwiUlRXODlfODkyMkFVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicnR3ODg1MWJ1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyYXVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJidV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmN1X3Byb2JlXCIsXG4gICAgXCJydHc4OTIyYXVfcHJvYmVcIixcbiAgICBcInJ0dzg5X3VzYl9wcm9iZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgd3JhcHBlciBmdW5jdGlvbnMgZm9yIFVTQiBwcm9iZSBpbiBzZXZlcmFsIHJ0dzg5IGRyaXZlcnMgdG8gaGFuZGxlIGNhc2VzIHdoZXJlIGBpZC1cXHUwMDNlZHJpdmVyX2luZm9gIGlzIE5VTEwsIHByZXZlbnRpbmcgYSBwb3RlbnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIGBydHc4OV91c2JfcHJvYmVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCB3aGljaCBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIHZpYSBkdW1teV9oY2QuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDkwMjM3YTRjYmVhYzgwZmE2OTVmNzAwZDUzOWMzNDQ5YjJhYjE1M2FcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAxNiAxODozMzo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jXG5pbmRleCAxZTgyNzIwNWYyNTQwLi40MzJkMjE2ZGU4NzQ2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuQEAgLTU5LDEwICs1OSwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTFidV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUxYnVfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODg1MWJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUxYnVfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MWJ1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MWJ1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODg1MWJ1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUxYnVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuY1xuaW5kZXggMDY1ZjRlNWIxN2FmYS4uYTM3YjYwYjU4NGYyNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbkBAIC03MywxMCArNzMsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUyYXVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MmF1X2lkX3RhYmxlKTtcbiBcbitzdGF0aWMgaW50IHJ0dzg4NTJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbitcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4re1xuK1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuK1xuK1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuK1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuK1x0ZWxzZVxuK1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODg1MmF1X2luZm87XG4rXG4rXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTJhdV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTJhdV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbitcdC5wcm9iZSA9IHJ0dzg4NTJhdV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MmF1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmNcbmluZGV4IGRlNzlhMTlhMjgyNGQuLjgxYjYxNTZhOGQyN2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG5AQCAtNzMsMTAgKzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmJ1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJidV9pZF90YWJsZSk7XG4gXG4rc3RhdGljIGludCBydHc4ODUyYnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4rXHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK3tcbitcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbitcbitcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbitcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbitcdGVsc2VcbitcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJidV9pbmZvO1xuK1xuK1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYnVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUyYnVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4rXHQucHJvYmUgPSBydHc4ODUyYnVfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJidV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jXG5pbmRleCAyZGVjOWI4NDU0ODE1Li4wNjdjNmJiMDA3YjMxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuQEAgLTEzMywxMCArMTMzLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmN1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJjdV9pZF90YWJsZSk7XG4gXG4rc3RhdGljIGludCBydHc4ODUyY3VfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4rXHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK3tcbitcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbitcbitcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbitcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbitcdGVsc2VcbitcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJjdV9pbmZvO1xuK1xuK1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyY3VfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUyY3VfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4rXHQucHJvYmUgPSBydHc4ODUyY3VfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJjdV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jXG5pbmRleCA1NmM3OWIxZWM4NjVmLi4yZjYwMDIxNzA0ZTA4IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuQEAgLTc0LDEwICs3NCwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg5MjJhdV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184OTIyYXVfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODkyMmF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84OTIyYXVfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODkyMmF1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODkyMmF1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODkyMmF1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184OTIyYXVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuY1xuaW5kZXggYWFmYThiOWU5M2RmYy4uMWQ3Yzc0NTU3YWIxMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbkBAIC0xMjAxLDE1ICsxMjAxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHJ0dzg5X3VzYl9ncm91cCA9IHtcbiBfX0FUVFJJQlVURV9HUk9VUFMocnR3ODlfdXNiKTtcbiBcbiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLVx0XHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK1x0XHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKVxuIHtcbi1cdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbiBcdHN0cnVjdCBydHc4OV9kZXYgKnJ0d2RldjtcbiBcdHN0cnVjdCBydHc4OV91c2IgKnJ0d3VzYjtcbiBcdGludCByZXQ7XG4gXG4tXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuLVxuIFx0cnR3ZGV2ID0gcnR3ODlfYWxsb2NfaWVlZTgwMjExX2h3KFx1MDAyNmludGYtXHUwMDNlZGV2LFxuIFx0XHRcdFx0XHQgIHNpemVvZihzdHJ1Y3QgcnR3ODlfdXNiKSwgaW5mbyk7XG4gXHRpZiAoIXJ0d2Rldikge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oXG5pbmRleCBiZGYzMTI1NTk3NDM4Li4zNzI2MjBkMDg1MWU2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaFxuQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnR3ODlfdXNiICpydHc4OV91c2JfcHJpdihzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXYpXG4gfVxuIFxuIGludCBydHc4OV91c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tXHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpO1xuK1x0XHQgICAgY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvKTtcbiB2b2lkIHJ0dzg5X3VzYl9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKTtcbiBcbiAjZW5kaWZcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjAxLjM0ODk3ODMwOVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgwMjM2NDkzNzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIHJ0dzg5IFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdGFyZ2V0aW5nIHRoZSBgcnR3ODlgIHdpcmVsZXNzIGRyaXZlciwgc3BlY2lmaWNhbGx5IGRlYWxpbmcgd2l0aCBSZWFsdGVrIDgwMi4xMWF4IGhhcmR3YXJlIOKAkyBpbnRlcmVzdGluZy4gSXQgbG9va3MgbGlrZSB0aGUgbWFpbiBwb2ludCBoZXJlIGlzIGEgY2hhbmdlIGluIGhvdyB0aGUgYHJ0dzg5X3VzYl9wcm9iZWAgZnVuY3Rpb24gaXMgY2FsbGVkLCBzcGVjaWZpY2FsbHkgZm9yIFVTQiBkZXZpY2VzLiBJIHNlZSB0aGF0IGluc3RlYWQgb2YgZGlyZWN0bHkgcGFzc2luZyB0aGUgYHVzYl9kZXZpY2VfaWRgIHN0cnVjdCB0byB0aGUgcHJvYmUgZnVuY3Rpb24sIHRoZXJlJ3Mgbm93IGEgd3JhcHBlciBwcm9iZSBmdW5jdGlvbiBpbnRyb2R1Y2VkIGZvciBlYWNoIHNwZWNpZmljIGRldmljZSB0eXBlOiBgcnR3ODg1MWJ1YCwgYHJ0dzg4NTJhdWAsIGV0Yy5cblxuVGhlIGNyaXRpY2FsIHBhcnQgaXMgdGhlIGNoZWNrIGZvciBgaWQtXHUwMDNlZHJpdmVyX2luZm9gLiBJZiBgZHJpdmVyX2luZm9gIGlzbid0IHNldCwgd2hpY2ggSSBhc3N1bWUgY2FuIGhhcHBlbiB1bmRlciBzcGVjaWZpYyBjaXJjdW1zdGFuY2VzLCB0aGUgd3JhcHBlciBub3cgZmFsbHMgYmFjayB0byBhIGRlZmF1bHQgaW5mbyBzdHJ1Y3QsIGZvciBleGFtcGxlIGBcdTAwMjZydHc4OV84ODUxYnVfaW5mb2AuICpUaGlzIGlzIGEgZ29vZCBjYXRjaC4qIFByZXZpb3VzbHksIGlmIGBpZC1cdTAwM2Vkcml2ZXJfaW5mb2AgKndhcyogTlVMTCwgYHJ0dzg5X3VzYl9wcm9iZWAgd291bGQgaGF2ZSBibGluZGx5IGNhc3QgdGhhdCBOVUxMIHBvaW50ZXIgdG8gYGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqYCBhbmQgYWxtb3N0IGNlcnRhaW5seSBjcmFzaGVkIHRoZSBrZXJuZWwgd2hlbiBkZXJlZmVyZW5jaW5nIGl0LiAgQSBjbGFzc2ljIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSwgYW5kIGxpa2VseSBhIGdvb2QgdGFyZ2V0IGZvciBmdXp6aW5nLlxuXG5JdCdzIGhhcHBlbmluZyB3aXRoaW4gdGhlIFVTQiBwcm9iZSBwYXRoLCBhbmQgdGhhdCdzIGltcG9ydGFudC4gVGhpcyBtZWFucyB0aGF0IGV2ZW4gaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgdGhlIG9uZXMgdXNlZCB3aXRoIHN5emthbGxlciB1c2luZyBVU0IgZ2FkZ2V0IGVtdWxhdGlvbnMsIHRoaXMgY29kZSBwYXRoIGlzIHJlYWNoYWJsZS4gR2l2ZW4gdGhhdCB2dWxuZXJhYmlsaXR5IHJlc2VhcmNoIGlzIG15IGZvY3VzLCB0aGF0IG1ha2VzIGl0IGV2ZW4gbW9yZSBpbnRlcmVzdGluZy5cblxuTm93LCBsZXQgbWUgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlc2UgZHJpdmVycyB0byBzZWUgaG93IGVhc2lseSB0aGV5IGNhbiBiZSBlbmFibGVkIG9yIGRpc2FibGVkIGFuZCB1bmRlcnN0YW5kIHRoZSBzY29wZSBvZiB0aGVpciB1c2UuIEknbGwgdXNlIGBncmVwcGVyYCB0byBsb2NhdGUgdGhlIGBLY29uZmlnYCBmaWxlcyBhbmQgc2VlIHdoYXQgSSBjYW4gZmluZC4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGdpdmVzIG1lIGEgc2Vuc2Ugb2YgdGhlIHBvdGVudGlhbCBhdHRhY2sgc3VyZmFjZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDY4MiwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjA5LjM3MjYyOTk2NFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTYxMzYwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUlRXODlcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjI6bWVudWNvbmZpZyBSVFc4OVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDgwMi4xMWF4IHdpcmVsZXNzIGNoaXBzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc9MTE9aWYgUlRXODlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEzOmNvbmZpZyBSVFc4OV9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE3OmNvbmZpZyBSVFc4OV9QQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTgtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIwOmNvbmZpZyBSVFc4OV9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjEtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIzOmNvbmZpZyBSVFc4OV84ODUxQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MjY6Y29uZmlnIFJUVzg5Xzg4NTJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI3LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyOTpjb25maWcgUlRXODlfODg1MkJfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMwLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzozMjpjb25maWcgUlRXODlfODg1MkJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzMtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM1OmNvbmZpZyBSVFc4OV84ODUyQlRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzYtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjM4OmNvbmZpZyBSVFc4OV84ODUyQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0zOS1cXHR0cmlzdGF0ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy00MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6NDE6Y29uZmlnIFJUVzg5Xzg5MjJBXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQyLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTQzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo0NDpjb25maWcgUlRXODlfODkyMkRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDUtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjQ3OmNvbmZpZyBSVFc4OV84ODUxQkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo1ODpjb25maWcgUlRXODlfODg1MUJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTU5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTFCVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy02OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6Njk6Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy03MC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQUUgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjgwOmNvbmZpZyBSVFc4OV84ODUyQVVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctODEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkFVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzo5MTpjb25maWcgUlRXODlfODg1MkJFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTkyLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMDItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEwMzpjb25maWcgUlRXODlfODg1MkJVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEwNC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxMTU6Y29uZmlnIFJUVzg5Xzg4NTJCVEVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTE2LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRS1WVCBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xMjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjEyNzpjb25maWcgUlRXODlfODg1MkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEyOC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQ0UgUENJIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDZFKSBhZGFwdGVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTEzNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWc6MTM4OmNvbmZpZyBSVFc4OV84ODUyQ1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTM5LVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJDVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNkUpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNDk6Y29uZmlnIFJUVzg5Xzg5MjJBRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNTAtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkFFLzg5MjJBRS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE2Mzpjb25maWcgUlRXODlfODkyMkFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE2NC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4OTIyQVUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDcpIGFkYXB0ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxNzU6Y29uZmlnIFJUVzg5Xzg5MjJERVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xNzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODkyMkRFLzg5MjJERS1WUyBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNykgYWRhcHRlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE4Nzpjb25maWcgUlRXODlfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTg4LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMTg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoxOTA6Y29uZmlnIFJUVzg5X0RFQlVHTVNHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnLTE5MS1cXHRib29sIFxcXCJSZWFsdGVrIHJ0dzg5IGRlYnVnIG1lc3NhZ2Ugc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0xOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjE5OTpjb25maWcgUlRXODlfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMDAtXFx0Ym9vbCBcXFwiUmVhbHRlayBydHc4OSBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZzoyMDg6Y29uZmlnIFJUVzg5X0xFRFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctMjA5LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjIxNTpjb25maWcgUlRXODlfTEVEU19NQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZy0yMTYtXFx0Ym9vbFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDowOS40MTgyNDg5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzYxNTEwMTE5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHN1bW1hcnksIGFzIHRoZSBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGVzZSBjb25maWd1cmF0aW9uczogUlRXODlfODg1MUJVLCBSVFc4OV84ODUyQVUsIFJUVzg5Xzg4NTJCVSwgUlRXODlfODg1MkNVLCBhbmQgUlRXODlfODkyMkFVLiBJdCBzZWVtcyBwcmV0dHkgY2xlYXIgdGhhdCB0aGVzZSBhcmUgdGhlIHByaW1hcnkgY29udGVuZGVycyB3ZSdyZSB3b3JraW5nIHdpdGguIE5vdywgdGhlIHF1ZXN0aW9uIGlzLCBob3cgZG9lcyBSVFc4OV9VU0IgZml0IGludG8gdGhpcyBwaWN0dXJlPyBJdCdzIGxpa2VseSB0aGF0IG9uZSBvciBtb3JlIG9mIHRoZXNlIGNvbmZpZ3MgaW1wbGljaXRseSBzZWxlY3Qgb3IgZGVwZW5kIG9uIFJUVzg5X1VTQiwgYnV0IGl0J3MgY3J1Y2lhbCB0byBjb25maXJtIHRoYXQuIEkgbmVlZCB0byBkaWcgYSBsaXR0bGUgZGVlcGVyIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIGFwcHJvcHJpYXRlbHkgY29uZmlndXJlZCBhbmQgdGhhdCB0aGVyZSBhcmVuJ3QgYW55IHJlZHVuZGFuY2llcyBvciBvbWlzc2lvbnMuIExldCdzIHN0YXJ0IGJ5IGNoZWNraW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGluY2x1ZGVkIGZpbGVzIGZvciBlYWNoIG9mIHRoZSBtYWluIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4MTIyLCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MTcuMDMzMzUyNDYxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1ODM1Nzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVFc4OV84ODUxQlVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvS2NvbmZpZz00Nz1jb25maWcgUlRXODlfODg1MUJFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9LY29uZmlnOjU4OmNvbmZpZyBSVFc4OV84ODUxQlVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWctNTktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDoxNy4wODkxOTM3ODhaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDYwMzcxNTU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGl2aW5nIGludG8gdGhlIFJUVzg5Xzg4NTFCVSBLY29uZmlnKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCdzIHB1bGwgdXAgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZSBhbmQgc3RhcnQgZGlzc2VjdGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHN1cnJvdW5kaW5nIHRoZSBSVFc4OV84ODUxQlUuIFRoaXMgdXN1YWxseSBtZWFucyBJJ20gbG9va2luZyBmb3IgYSBzcGVjaWZpYyBmZWF0dXJlLCBkZWJ1Z2dpbmcgYSByZXBvcnRlZCBpc3N1ZSwgb3IgYXNzZXNzaW5nIHRoZSBpbXBhY3Qgb2YgYSBwb3RlbnRpYWwgY2hhbmdlLiBNeSBpbml0aWFsIGZvY3VzIHdpbGwgYmUgb24gdW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHZhbHVlcywgYW5kIGFueSB0cmlzdGF0ZSBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBwcmVzZW50LiBJIHdhbnQgdG8gc2VlIGhvdyB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyIGlzIGludGVncmF0ZWQgaW50byB0aGUgYnJvYWRlciBSZWFsdGVrIFdpRmkgZWNvc3lzdGVtIHdpdGhpbiB0aGUga2VybmVsLiBJJ2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9yIGluY2x1c2lvbiBndWFyZHMuIFNwZWNpZmljYWxseSwgSSdsbCBiZSBsb29raW5nIGZvciBhbnkgaGludHMgYWJvdXQgcG93ZXIgbWFuYWdlbWVudCwgcmVndWxhdG9yeSBkb21haW4gc2V0dGluZ3MsIGFuZCBwZXJoYXBzIGV2ZW4gZWFybHkgaW5kaWNhdGlvbnMgYWJvdXQgaW50ZXJmYWNlLXNwZWNpZmljIGZsYWdzIGxpa2UgVVNCIHZlcnN1cyBTRElPIGltcGxlbWVudGF0aW9ucy4gSXQgaXMgcHJvYmFibGUsIEkgd2lsbCBiZSB0aGlua2luZyBhYm91dCBob3cgaXQgaXMgaW50ZWdyYXRlZCBpbnRvIHRoZSB3aWRlciBmcmFtZXdvcmsuIFVsdGltYXRlbHksIG15IGdvYWwgaXMgdG8gYnVpbGQgYSBtZW50YWwgbWFwIG9mIHRoaXMgbW9kdWxlJ3MgY29uZmlndXJhYmxlIGFzcGVjdHMgYW5kIGhvdyB0aGV5IHBsYXkgdG9nZXRoZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg1OTQsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDoyNC4xNDk1Njc2OTdaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDI2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogNTgsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgNTg6XFx0Y29uZmlnIFJUVzg5Xzg4NTFCVVxcbiAgNTk6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MUJVIFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbiAgNjA6XFx0XFx0ZGVwZW5kcyBvbiBVU0JcXG4gIDYxOlxcdFxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuICA2MjpcXHRcXHRzZWxlY3QgUlRXODlfVVNCXFxuICA2MzpcXHRcXHRzZWxlY3QgUlRXODlfODg1MUJcXG4gIDY0OlxcdFxcdGhlbHBcXG4gIDY1OlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTFCVSBjaGlwc2V0XFxuICA2NjpcXHRcXG4gIDY3OlxcdFxcdCAgODAyLjExYXggVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXG4gIDY4OlxcdFxcbiAgNjk6XFx0Y29uZmlnIFJUVzg5Xzg4NTJBRVxcbiAgNzA6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODg1MkFFIFBDSSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxcIlxcbiAgNzE6XFx0XFx0ZGVwZW5kcyBvbiBQQ0lcXG4gIDcyOlxcdFxcdHNlbGVjdCBSVFc4OV9DT1JFXFxuICA3MzpcXHRcXHRzZWxlY3QgUlRXODlfUENJXFxuICA3NDpcXHRcXHRzZWxlY3QgUlRXODlfODg1MkFcXG4gIDc1OlxcdFxcdGhlbHBcXG4gIDc2OlxcdFxcdCAgU2VsZWN0IHRoaXMgb3B0aW9uIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIDg4NTJBRSBjaGlwc2V0XFxuICA3NzpcXHRcXG4gIDc4OlxcdFxcdCAgODAyLjExYXggUENJZSB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxuICA3OTpcXHRcXG4gIDgwOlxcdGNvbmZpZyBSVFc4OV84ODUyQVVcXG4gIDgxOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJBVSBVU0Igd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4gIDgyOlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuICA4MzpcXHRcXHRzZWxlY3QgUlRXODlfQ09SRVxcbiAgODQ6XFx0XFx0c2VsZWN0IFJUVzg5X1VTQlxcbiAgODU6XFx0XFx0c2VsZWN0IFJUVzg5Xzg4NTJBXFxuICA4NjpcXHRcXHRoZWxwXFxuICA4NzpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQVUgY2hpcHNldFxcbiAgODg6XFx0XFxuICA4OTpcXHRcXHQgIDgwMi4xMWF4IFVTQiB3aXJlbGVzcyBuZXR3b3JrIChXaS1GaSA2KSBhZGFwdGVyXFxuICA5MDpcXHRcXG4gIDkxOlxcdGNvbmZpZyBSVFc4OV84ODUyQkVcXG4gIDkyOlxcdFxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIDg4NTJCRSBQQ0kgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcXCJcXG4gIDkzOlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICA5NDpcXHRcXHRzZWxlY3QgUlRXODlfQ09SRVxcbiAgOTU6XFx0XFx0c2VsZWN0IFJUVzg5X1BDSVxcbiAgOTY6XFx0XFx0c2VsZWN0IFJUVzg5Xzg4NTJCXFxuICA5NzpcXHRcXHRzZWxlY3QgUlRXODlfODg1MkJfQ09NTU9OXFxuICA5ODpcXHRcXHRoZWxwXFxuICA5OTpcXHRcXHQgIFNlbGVjdCB0aGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBzdXBwb3J0IGZvciA4ODUyQkUgY2hpcHNldFxcbiAxMDA6XFx0XFxuIDEwMTpcXHRcXHQgIDgwMi4xMWF4IFBDSWUgd2lyZWxlc3MgbmV0d29yayAoV2ktRmkgNikgYWRhcHRlclxcbiAxMDI6XFx0XFxuIDEwMzpcXHRjb25maWcgUlRXODlfODg1MkJVXFxuIDEwNDpcXHRcXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayA4ODUyQlUgVVNCIHdpcmVsZXNzIG5ldHdvcmsgKFdpLUZpIDYpIGFkYXB0ZXJcXFwiXFxuIDEwNTpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAxMDY6XFx0XFx0c2VsZWN0IFJUVzg5X0NPUkVcXG4gMTA3OlxcdFxcdHNlbGVjdCBSVFc4OV9VU0JcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MjQuMTQ5NjQzMTI3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzIzMjI4NTk4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFJUVzg5IERyaXZlciBMYW5kc2NhcGUqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgUlRXODkgc2VyaWVzLCBzcGVjaWZpY2FsbHkgdGhlIFVTQiB2YXJpYW50cyBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvbnMgbGlzdGVkOiBSVFc4OV84ODUxQlUsIFJUVzg5Xzg4NTJBVSwgUlRXODlfODg1MkJVLCBSVFc4OV84ODUyQ1UsIGFuZCBSVFc4OV84OTIyQVUuIFRoZXNlIGFyZSB0aGUgY29uZmlndXJhdGlvbnMgSSBuZWVkIHRvIHVuZGVyc3RhbmQuXG5cbkkgc2VlIGEgY2xlYXIgc2V0IG9mIHByb2JlIGZ1bmN0aW9ucyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggY29uZmlndXJhdGlvbjogYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBgcnR3ODg1MmJ1X3Byb2JlYCwgYHJ0dzg4NTJjdV9wcm9iZWAsIGFuZCBgcnR3ODkyMmF1X3Byb2JlYCwgYXMgd2VsbCBhcyB0aGUgbW9yZSBnZW5lcmljIGBydHc4OV91c2JfcHJvYmVgLiBUaGVzZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBJIG5lZWQgdG8gaW52ZXN0aWdhdGUgdG8gdW5kZXJzdGFuZCBob3cgZWFjaCBoYXJkd2FyZSB2YXJpYW50IGlzIGluaXRpYWxpemVkIGFuZCBtYW5hZ2VkLlxuXG5CZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gdGhlIGNvZGUsIEknbGwgcXVpY2tseSBjaGVjayBmb3IgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhlIFJUVzg5IHNlcmllcy4gVGhlIGBtZW51Y29uZmlnYCBvcHRpb24gaXMgYFJUVzg5YCwgd2hpY2gsIGFzIGV4cGVjdGVkLCBkZXBlbmRzIG9uIHRoZSBgTUFDODAyMTFgIGZyYW1ld29yay4gSSBzaG91bGQgbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGF0IGRlcGVuZGVuY3ksIGJ1dCBmaXJzdCwgSSB3aWxsIGdvIHRvIHRoZSB0b3Agb2YgYEtjb25maWdgIGZvciB0aGUgb3ZlcmFsbCBjb250ZXh0LiBHb3R0YSBjaGVjayB0aGUgYmlnIHBpY3R1cmUgYmVmb3JlIHpvb21pbmcgaW4gb24gdGhlIHNwZWNpZmljcy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTY3OSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjMxLjM4MTkzMTkyOVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4Mjk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIEJTRC0zLUNsYXVzZVxcbiAgIDI6XFx0bWVudWNvbmZpZyBSVFc4OVxcbiAgIDM6XFx0XFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgODAyLjExYXggd2lyZWxlc3MgY2hpcHMgc3VwcG9ydFxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gICA1OlxcdFxcdGhlbHBcXG4gICA2OlxcdFxcdCAgVGhpcyBtb2R1bGUgYWRkcyBzdXBwb3J0IGZvciBtYWM4MDIxMS1iYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHRoYXRcXG4gICA3OlxcdFxcdCAgZW5hYmxlcyBSZWFsdGVrIElFRUUgODAyLjExYXggd2lyZWxlc3MgY2hpcHNldHMuXFxuICAgODpcXHRcXG4gICA5OlxcdFxcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQnbGwgYmUgY2FsbGVkIHJ0dzg5LlxcbiAgMTA6XFx0XFxuICAxMTpcXHRpZiBSVFc4OVxcbiAgMTI6XFx0XFxuICAxMzpcXHRjb25maWcgUlRXODlfQ09SRVxcbiAgMTQ6XFx0XFx0dHJpc3RhdGVcXG4gIDE1OlxcdFxcdHNlbGVjdCBXQU5UX0RFVl9DT1JFRFVNUFxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgUlRXODlfUENJXFxuICAxODpcXHRcXHR0cmlzdGF0ZVxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgUlRXODlfVVNCXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjMxLjM4MjAxNjgzOVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NjA2Njc1MTQwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgQXNzZXNzbWVudCBvZiB0aGUgUlRXODkgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyB3ZSdyZSBkaXZpbmcgaW50byB0aGUgUmVhbHRlayB3aXJlbGVzcyBzaXR1YXRpb24uIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIHNwZWNpZmljIHNldCBvZiBoYXJkd2FyZSBoZXJlIOKAkyBsaWtlbHkgZm9jdXNpbmcgb24gdGhlIFJUVzg5IGNoaXBzZXQuIEkgc2VlIHdlIG5lZWQgdG8gZW5zdXJlIHRoZSBSVFc4OSBtb2R1bGUgaXRzZWxmIGlzIGVuYWJsZWQsIGFsb25nIHdpdGggc3BlY2lmaWMgc3ViLW1vZHVsZXM6IFJUVzg5Xzg4NTFCVSwgUlRXODlfODg1MkFVLCBSVFc4OV84ODUyQlUsIFJUVzg5Xzg4NTJDVSwgYW5kIFJUVzg5Xzg5MjJBVS4gVGhpcyB0ZWxscyBtZSB3ZSBoYXZlIGEgcmFuZ2Ugb2YgcG90ZW50aWFsIGhhcmR3YXJlIHJldmlzaW9ucyBvciBjb25maWd1cmF0aW9ucyB3ZSBuZWVkIHRvIHN1cHBvcnQgd2l0aGluIHRoaXMgZ2VuZXJhbCBSVFc4OSBmcmFtZXdvcmsuIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIGtlcm5lbCBjb25maWcgb3B0aW9ucyB0byBlbnN1cmUgdGhlc2UgYXJlIGFsbCBzZWxlY3RlZC5cblxuVGhlIGluY2x1c2lvbiBvZiBNQUM4MDIxMSBhbmQgVVNCIGlzIGV4cGVjdGVkLCBnaXZlbiB0aGlzIGlzIHdpcmVsZXNzIGhhcmR3YXJlLiBNQUM4MDIxMSBpcyB0aGUgc3RhbmRhcmQgd2lyZWxlc3Mgc3RhY2ssIGFuZCBVU0IgaXMgdGhlIGxpa2VseSBwaHlzaWNhbCBpbnRlcmZhY2UuXG5cbk5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByb2JlIGZ1bmN0aW9ucyBmb3IgZWFjaCBvZiB0aG9zZSBzdWItbW9kdWxlcy4gVGhlIGZvY3VzIHN5bWJvbHMgZ2l2ZSBtZSBhIGNsZWFyIGxpc3Qgb2YgdGhlIGVudHJ5IHBvaW50czogYHJ0dzg4NTFidV9wcm9iZWAsIGBydHc4ODUyYXVfcHJvYmVgLCBgcnR3ODg1MmJ1X3Byb2JlYCwgYHJ0dzg4NTJjdV9wcm9iZWAsIGFuZCBgcnR3ODkyMmF1X3Byb2JlYCwgYWxvbmcgd2l0aCB0aGUgb3ZlcmFyY2hpbmcgYHJ0dzg5X3VzYl9wcm9iZWAuIFRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXppbmcgdGhlIGhhcmR3YXJlLlxuXG5GaW5hbGx5LCBJJ20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gdGhlIGBydHc4OV91c2JfcHJvYmVgIGZ1bmN0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSB2ZXJpZnkgdGhhdCBpdCdzIGFjdHVhbGx5IGV4cG9ydGVkIOKAkyBtZWFuaW5nIGl0J3MgdmlzaWJsZSBhbmQgY2FsbGFibGUgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUga2VybmVsLiBBIHF1aWNrIGNoZWNrIG9mIGBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jYCB3aWxsIGNvbmZpcm0gdGhpcy4gVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBSVFc4OSBVU0IgZHJpdmVyLCBhbmQgaWYgaXQncyBub3QgZXhwb3J0ZWQsIHdlJ3ZlIGdvdCBhIHByb2JsZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwNDc5LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6MzguOTg4Njk1MTQ5WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzcxNzQ3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJFWFBPUlRfU1lNQk9MLipydHc4OV91c2JfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jPTEyMDM9aW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmMtMTI5MS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYzoxMjkyOkVYUE9SVF9TWU1CT0wocnR3ODlfdXNiX3Byb2JlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jLTEyOTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjM5LjA0MjQxNjk0NloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2NTg2ODYwOTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gSSBzZWUgdGhpcyBwYXRjaCBoYXMgYmVlbiBleHBvcnRlZC4gR29vZC4gSXQgYWRkcmVzc2VzIGEgY3JpdGljYWwgZnVuY3Rpb25hbCBpc3N1ZSB3aXRoaW4gdGhlIHJ0dzg5IFVTQiBkcml2ZXJzLiBTcGVjaWZpY2FsbHksIGl0IGd1YXJkcyBhZ2FpbnN0IHRoZSBwb3NzaWJpbGl0eSBvZiBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIGJlaW5nIE5VTEwgZHVyaW5nIHByb2JlIGZ1bmN0aW9ucyBsaWtlIGBydHc4ODUxYnVfcHJvYmVgLCBgcnR3ODg1MmF1X3Byb2JlYCwgZXRjLiBUaGlzIHBvdGVudGlhbCBOVUxMIGRlcmVmZXJlbmNlIHdhcyBhIHNlcmlvdXMgdnVsbmVyYWJpbGl0eTsgYSBjcmFzaCB3YWl0aW5nIHRvIGhhcHBlbi4gVGhlIGNvcmUgb2YgdGhpcyBmaXggaXMgdGhlIGludHJvZHVjdGlvbiBvZiB3cmFwcGVyIGZ1bmN0aW9ucy4gRWZmZWN0aXZlbHksIGl0J3MgYSBudWxsIGNoZWNrIGJlaW5nIGFkZGVkIHRvIHRoZSBVU0IgcHJvYmUgZmxvdy5cblxuVGhlIGluY2x1c2lvbiBvZiBgV29ydGhGdXp6aW5nOiB0cnVlYCBpcyBzcG90IG9uLCBnaXZlbiB0aGlzIGlzIG5vdyBtb3JlIHJvYnVzdCBhbmQgbGVzcyBsaWtlbHkgdG8gZmFsbCBvdmVyIGR1ZSB0byBhIG51bGwgcG9pbnRlci4gVGhlIGBGb2N1c1N5bWJvbHNgIGFyZSBjbGVhcmx5IGlkZW50aWZ5aW5nIHRoZSByZWxldmFudCBwcm9iZSBmdW5jdGlvbnMsIGFuZCB0aGUgYEVuYWJsZUNvbmZpZ3NgIHJlaW5mb3JjZSB3aGljaCBjb25maWd1cmF0aW9ucyBhcmUgYWZmZWN0ZWQuIFRoZSBwYXRjaCdzIHJlYXNvbmluZyBpcyBzb3VuZDsgaXQgY29ycmVjdGx5IGlkZW50aWZpZXMgdGhlIGlzc3VlIGFzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBVU0IgcHJvYmUgcGF0aCwgYW5kIGltcG9ydGFudGx5LCBpdCBhY2tub3dsZWRnZXMgdGhhdCB0aGlzIGNvZGUgcGF0aCBpcyBleHBvc2VkIGluIHZpcnR1YWxpemVkIHNldHVwcyAocGFydGljdWxhcmx5IHRocm91Z2ggZHVtbXlfaGNkKS4gVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IGEgcG9zaXRpdmUgY2hhbmdlIGFuZCBtaXRpZ2F0ZXMgYSBwb3RlbnRpYWwgc291cmNlIG9mIGluc3RhYmlsaXR5LCBpbXByb3ZpbmcgdGhlIHJvYnVzdG5lc3Mgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEyOTMsIk91dHB1dFRva2VucyI6MjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjQ1LjYyOTI4MTcyNFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NjI2NjExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OVwiLFxuICAgIFwiUlRXODlfODg1MUJVXCIsXG4gICAgXCJSVFc4OV84ODUyQVVcIixcbiAgICBcIlJUVzg5Xzg4NTJCVVwiLFxuICAgIFwiUlRXODlfODg1MkNVXCIsXG4gICAgXCJSVFc4OV84OTIyQVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4ODUxYnVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmJ1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyY3VfcHJvYmVcIixcbiAgICBcInJ0dzg5MjJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODlfdXNiX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVFc4OVwiLFxuICAgIFwiUlRXODlfODg1MUJVXCIsXG4gICAgXCJSVFc4OV84ODUyQVVcIixcbiAgICBcIlJUVzg5Xzg4NTJCVVwiLFxuICAgIFwiUlRXODlfODg1MkNVXCIsXG4gICAgXCJSVFc4OV84OTIyQVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydHc4ODUxYnVfcHJvYmVcIixcbiAgICBcInJ0dzg4NTJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODg1MmJ1X3Byb2JlXCIsXG4gICAgXCJydHc4ODUyY3VfcHJvYmVcIixcbiAgICBcInJ0dzg5MjJhdV9wcm9iZVwiLFxuICAgIFwicnR3ODlfdXNiX3Byb2JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgVVNCIHByb2JlIGluIHNldmVyYWwgcnR3ODkgZHJpdmVycyB0byBoYW5kbGUgY2FzZXMgd2hlcmUgYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgTlVMTCwgcHJldmVudGluZyBhIHBvdGVudGlhbCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYHJ0dzg5X3VzYl9wcm9iZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgVVNCIHByb2JlIHBhdGgsIHdoaWNoIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgdmlhIGR1bW15X2hjZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6NDUuNzEzOTE3MzQ1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTk0Nzc5NTQ2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTE2VDE4OjM0OjQ1LjcxNDQ4MzEzNVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoia21zYW4tZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxMTk0NzIyNDUwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoYXQgb2NjdXJzIHdoZW4gYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgMCAod2hpY2ggY2FuIGhhcHBlbiB3aGVuIGEgVVNCIGRldmljZSBpcyBib3VuZCBkeW5hbWljYWxseSB2aWEgc3lzZnMgYG5ld19pZGApLiBUaGUgZml4IHByb3ZpZGVzIGEgZmFsbGJhY2sgdG8gYSBzdGF0aWMgZHJpdmVyIGluZm8gc3RydWN0dXJlLiBUaGlzIGRvZXMgbm90IGludm9sdmUgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlcnNwYWNlLiBTdGFuZGFyZCBLQVNBTiBhbmQga2VybmVsIG9vcHMgbWVjaGFuaXNtcyBhcmUgZnVsbHkgY2FwYWJsZSBvZiBkZXRlY3RpbmcgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgc2VjdXJpdHkgZW5naW5lZXIgc3BlY2lhbGl6aW5nIGluIGtlcm5lbCBtZW1vcnlcbmVycm9yIGRldGVjdG9ycyAoS0FTQU4gYW5kIEtNU0FOKS4gWW91ciBqb2IgaXMgdG8gcmV2aWV3IHRoZSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kXG5kZXRlcm1pbmUgaWYgdGhlIGNvZGUgY2hhbmdlcyBqdXN0aWZ5IHNwYXduaW5nIGEgZGVkaWNhdGVkIEtNU0FOIChLZXJuZWxNZW1vcnlTYW5pdGl6ZXIpXG5mdXp6aW5nIHNlc3Npb24gaW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgS0FTQU4gZnV6emluZy5cblxuQ1JJVElDQUwgRElTVElOQ1RJT04gQkVUV0VFTiBLQVNBTiBBTkQgS01TQU46XG4tIFN0YW5kYXJkIEtBU0FOIGtlcm5lbCBidWlsZHMgKHVwc3RyZWFtLWFwcGFybW9yLWthc2FuLmNvbmZpZykgYWxyZWFkeSBlbmFibGVcbiAgYSBjb21wcmVoZW5zaXZlIHN1aXRlIG9mIGRlYnVnZ2luZyB0b29scyBhbmQgc2FuaXRpemVycywgaW5jbHVkaW5nIEtBU0FOXG4gIChvdXQtb2YtYm91bmRzIGFjY2Vzc2VzLCB1c2UtYWZ0ZXItZnJlZSwgZG91YmxlIGZyZWUsIGludmFsaWQgZnJlZSksIExPQ0tERVBcbiAgKGxvY2tpbmcgYnVncyBhbmQgZGVhZGxvY2tzKSwgVUItc2FuaXRpemVycywgYW5kIG1lbW9yeSBjb3JydXB0aW9uIGNoZWNrcy5cbi0gS01TQU4gKEtlcm5lbE1lbW9yeVNhbml0aXplcikgZGV0ZWN0cyByZWFkcyBvZiBVTklOSVRJQUxJWkVEIG1lbW9yeSAoc3RhY2ssIGhlYXAsXG4gIG9yIHBhZ2UgYWxsb2NhdGlvbnMpIGFuZCBrZXJuZWwtdG8tdXNlciBtZW1vcnkgaW5mby1sZWFrcy5cblxuUnVsZTogVEhFUkUgSVMgTk8gU0VOU0UgSU4gUlVOTklORyBBIEtNU0FOIFNFU1NJT04gSUYgQSBCVUcgQ0FOIEJFIENBVUdIVCBCWSBLQVNBTixcbkxPQ0tERVAsIE9SIE9USEVSIFNUQU5EQVJEIEJVRyBERVRFQ1RPUlMuXG5BIGRlZGljYXRlZCBLTVNBTiBmdXp6aW5nIHNlc3Npb24gaW5jdXJzIHNpZ25pZmljYW50IHJlc291cmNlIGNvc3RzLiBZb3UgbXVzdCBPTkxZXG5zZXQgTmVlZHNLTVNBTj10cnVlIGlmIHRoZSBjb2RlIGNoYW5nZXMgaW50cm9kdWNlIG9yIGV4cG9zZSBVTklOSVRJQUxJWkVEIE1FTU9SWSByaXNrc1xudGhhdCBhcmUgZGV0ZWN0ZWQgT05MWSBieSBLTVNBTi5cblxuTG9vayBob2xpc3RpY2FsbHkgYXQgdGhlIHBhdGNoIHNlcmllcyBhbmQgc3Vycm91bmRpbmcgY29kZS4gRXZlbiBpZiBubyBkaXJlY3RcbnVuaW5pdGlhbGl6ZWQgZmllbGQgYWNjZXNzZXMgb3IgbmV3IGJ1ZmZlciBhbGxvY2F0aW9ucyBhcmUgYWRkZWQgaW4gdGhlIGRpZmYgaXRzZWxmLFxuYSBwYXRjaCBtYXkgYWx0ZXIgY29udHJvbCBmbG93LCBib3VuZHMgY2hlY2tpbmcsIG9yIGRhdGEgbGVuZ3RoIGNhbGN1bGF0aW9ucyBpbiB3YXlzXG50aGF0IGNoYW5nZSBob3cgdGhlIHJlc3Qgb2YgdGhlIGNvZGUgb3BlcmF0ZXMgb24gZXhpc3RpbmcgYnVmZmVycyAoZS5nLiBhbGxvd2luZ1xudW5pbml0aWFsaXplZCBzdGFjay9oZWFwIG1lbW9yeSB0byBiZSByZWFkLCBjb3BpZWQgdG8gdXNlciBzcGFjZSwgb3IgdXNlZCBpbiBjb250cm9sXG5mbG93KS4gRG8gbm90IGhlc2l0YXRlIHRvIHVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUsXG5jYWxsZWQgZnVuY3Rpb25zLCBhbmQgY2FsbGVycy5cblxuU2V0IE5lZWRzS01TQU49dHJ1ZSBPTkxZIElGIHRoZSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzOlxuMS4gS2VybmVsIHN0cnVjdHVyZXMgc2VudCB0byB1c2VyIHNwYWNlICh2aWEgY29weV90b191c2VyLCBwdXRfdXNlciwgbmV0bGluayBza2JcbiAgIGF0dHJpYnV0ZXMsIGlvY3RsIG91dHB1dCBhcmd1bWVudHMsIHNvY2tldCBvcHRpb25zLCBvciBCUEYgYnVmZmVycykgd2hlcmUgZmllbGRzXG4gICBvciBzdHJ1Y3R1cmUgcGFkZGluZyBtaWdodCBub3QgYmUgZnVsbHkgaW5pdGlhbGl6ZWQvemVyb2VkLlxuMi4gQ29uZGl0aW9uYWwgbG9naWMgb3IgYnJhbmNoaW5nIHRoYXQgZGVwZW5kcyBvbiBwb3RlbnRpYWxseSB1bmluaXRpYWxpemVkIHZhcmlhYmxlc1xuICAgb3Igc3RydWN0IGZpZWxkcy5cbjMuIEFsbG9jYXRpb24gb3IgaW5pdGlhbGl6YXRpb24gb2YgY29tcGxleCBkYXRhIHN0cnVjdHVyZXMgd2hlcmUgdW5pbml0aWFsaXplZCBmaWVsZHNcbiAgIGNvdWxkIGJlIHJlYWQgbGF0ZXIgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMuXG40LiBCb3VuZHMgY2hlY2tzLCBsZW5ndGhzLCBvciBsb2dpYyBpbiBhIHdheSB0aGF0IGFsbG93cyBzdXJyb3VuZGluZyBjb2RlIHRvIGFjY2Vzc1xuICAgdW5pbml0aWFsaXplZCBieXRlcyBvZiBleGlzdGluZyBidWZmZXJzLlxuXG5TZXQgTmVlZHNLTVNBTj1mYWxzZSBJRjpcbi0gVGhlIGNvZGUgY2hhbmdlcyBwcmltYXJpbHkgcmlzayBvdXQtb2YtYm91bmRzIGFjY2VzcywgYXJyYXkgb3ZlcmZsb3dzLCBOVUxMIHBvaW50ZXJcbiAgZGVyZWZlcmVuY2VzLCBsb2NraW5nIGRlYWRsb2Nrcywgb3IgdXNlLWFmdGVyLWZyZWUgYnVncyAodGhlc2UgYXJlIGFscmVhZHkgY2F1Z2h0XG4gIGJ5IEtBU0FOLCBMT0NLREVQLCBvciBzdGFuZGFyZCBidWcgZGV0ZWN0b3JzKS5cbi0gQWxsIHN0YWNrL2hlYXAgc3RydWN0dXJlcyB0b3VjaGVkIG9yIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIGFyZSBmdWxseSB6ZXJvZWRcbiAgb3IgaW5pdGlhbGl6ZWQgKGUuZy4gdXNpbmcgPSB7MH0sIG1lbXNldCwga3phbGxvYykgYmVmb3JlIGJlaW5nIHJlYWQgb3IgY29waWVkLlxuLSBUaGUgcGF0Y2ggZG9lcyBub3QgaW50cm9kdWNlIGFueSByaXNrIG9mIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHVzYWdlIG9yIGluZm8tbGVha3MuXG5cblVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGluc3BlY3QgdGhlIHN1cnJvdW5kaW5nIGNvZGUgaWYgbmVjZXNzYXJ5LCB0aGVuIHByb3ZpZGVcbmRldGFpbGVkIEtNU0FOUmVhc29uaW5nIGNvbnRyYXN0aW5nIEtBU0FOIHZzIEtNU0FOIGFwcGxpY2FiaWxpdHkgZm9yIHRoaXMgcGF0Y2guXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5MDIzN2E0Y2JlYWM4MGZhNjk1ZjcwMGQ1MzljMzQ0OWIyYWIxNTNhXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBBdWcgMTYgMTg6MzM6NTggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTFidS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUxYnUuY1xuaW5kZXggMWU4MjcyMDVmMjU0MC4uNDMyZDIxNmRlODc0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MWJ1LmNcbkBAIC01OSwxMCArNTksMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184ODUxYnVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODg1MWJ1X2lkX3RhYmxlKTtcbiBcbitzdGF0aWMgaW50IHJ0dzg4NTFidV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbitcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4re1xuK1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuK1xuK1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuK1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuK1x0ZWxzZVxuK1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODg1MWJ1X2luZm87XG4rXG4rXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg4NTFidV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg4NTFidV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbitcdC5wcm9iZSA9IHJ0dzg4NTFidV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODg1MWJ1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYXUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmF1LmNcbmluZGV4IDA2NWY0ZTViMTdhZmEuLmEzN2I2MGI1ODRmMjQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJhdS5jXG5AQCAtNzMsMTAgKzczLDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBydHdfODg1MmF1X2lkX3RhYmxlW10gPSB7XG4gfTtcbiBNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgcnR3Xzg4NTJhdV9pZF90YWJsZSk7XG4gXG4rc3RhdGljIGludCBydHc4ODUyYXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4rXHRcdFx0ICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuK3tcbitcdGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbztcbitcbitcdGlmIChpZC1cdTAwM2Vkcml2ZXJfaW5mbylcbitcdFx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbitcdGVsc2VcbitcdFx0aW5mbyA9IFx1MDAyNnJ0dzg5Xzg4NTJhdV9pbmZvO1xuK1xuK1x0cmV0dXJuIHJ0dzg5X3VzYl9wcm9iZShpbnRmLCBpbmZvKTtcbit9XG4rXG4gc3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIHJ0d184ODUyYXVfZHJpdmVyID0ge1xuIFx0Lm5hbWUgPSBLQlVJTERfTU9ETkFNRSxcbiBcdC5pZF90YWJsZSA9IHJ0d184ODUyYXVfaWRfdGFibGUsXG4tXHQucHJvYmUgPSBydHc4OV91c2JfcHJvYmUsXG4rXHQucHJvYmUgPSBydHc4ODUyYXVfcHJvYmUsXG4gXHQuZGlzY29ubmVjdCA9IHJ0dzg5X3VzYl9kaXNjb25uZWN0LFxuIH07XG4gbW9kdWxlX3VzYl9kcml2ZXIocnR3Xzg4NTJhdV9kcml2ZXIpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmJ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJidS5jXG5pbmRleCBkZTc5YTE5YTI4MjRkLi44MWI2MTU2YThkMjdlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuY1xuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyYnUuY1xuQEAgLTczLDEwICs3MywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJidV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyYnVfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODg1MmJ1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyYnVfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmJ1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MmJ1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODg1MmJ1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUyYnVfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg4NTJjdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4ODUyY3UuY1xuaW5kZXggMmRlYzliODQ1NDgxNS4uMDY3YzZiYjAwN2IzMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODg1MmN1LmNcbkBAIC0xMzMsMTAgKzEzMywyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgcnR3Xzg4NTJjdV9pZF90YWJsZVtdID0ge1xuIH07XG4gTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIHJ0d184ODUyY3VfaWRfdGFibGUpO1xuIFxuK3N0YXRpYyBpbnQgcnR3ODg1MmN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuK1x0XHRcdCAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbit7XG4rXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4rXG4rXHRpZiAoaWQtXHUwMDNlZHJpdmVyX2luZm8pXG4rXHRcdGluZm8gPSAoY29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICopaWQtXHUwMDNlZHJpdmVyX2luZm87XG4rXHRlbHNlXG4rXHRcdGluZm8gPSBcdTAwMjZydHc4OV84ODUyY3VfaW5mbztcbitcbitcdHJldHVybiBydHc4OV91c2JfcHJvYmUoaW50ZiwgaW5mbyk7XG4rfVxuK1xuIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBydHdfODg1MmN1X2RyaXZlciA9IHtcbiBcdC5uYW1lID0gS0JVSUxEX01PRE5BTUUsXG4gXHQuaWRfdGFibGUgPSBydHdfODg1MmN1X2lkX3RhYmxlLFxuLVx0LnByb2JlID0gcnR3ODlfdXNiX3Byb2JlLFxuK1x0LnByb2JlID0gcnR3ODg1MmN1X3Byb2JlLFxuIFx0LmRpc2Nvbm5lY3QgPSBydHc4OV91c2JfZGlzY29ubmVjdCxcbiB9O1xuIG1vZHVsZV91c2JfZHJpdmVyKHJ0d184ODUyY3VfZHJpdmVyKTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3J0dzg5MjJhdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS9ydHc4OTIyYXUuY1xuaW5kZXggNTZjNzliMWVjODY1Zi4uMmY2MDAyMTcwNGUwOCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvcnR3ODkyMmF1LmNcbkBAIC03NCwxMCArNzQsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0d184OTIyYXVfaWRfdGFibGVbXSA9IHtcbiB9O1xuIE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBydHdfODkyMmF1X2lkX3RhYmxlKTtcbiBcbitzdGF0aWMgaW50IHJ0dzg5MjJhdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZixcbitcdFx0XHQgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4re1xuK1x0Y29uc3Qgc3RydWN0IHJ0dzg5X2RyaXZlcl9pbmZvICppbmZvO1xuK1xuK1x0aWYgKGlkLVx1MDAzZWRyaXZlcl9pbmZvKVxuK1x0XHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuK1x0ZWxzZVxuK1x0XHRpbmZvID0gXHUwMDI2cnR3ODlfODkyMmF1X2luZm87XG4rXG4rXHRyZXR1cm4gcnR3ODlfdXNiX3Byb2JlKGludGYsIGluZm8pO1xuK31cbitcbiBzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcnR3Xzg5MjJhdV9kcml2ZXIgPSB7XG4gXHQubmFtZSA9IEtCVUlMRF9NT0ROQU1FLFxuIFx0LmlkX3RhYmxlID0gcnR3Xzg5MjJhdV9pZF90YWJsZSxcbi1cdC5wcm9iZSA9IHJ0dzg5X3VzYl9wcm9iZSxcbitcdC5wcm9iZSA9IHJ0dzg5MjJhdV9wcm9iZSxcbiBcdC5kaXNjb25uZWN0ID0gcnR3ODlfdXNiX2Rpc2Nvbm5lY3QsXG4gfTtcbiBtb2R1bGVfdXNiX2RyaXZlcihydHdfODkyMmF1X2RyaXZlcik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmNcbmluZGV4IGFhZmE4YjllOTNkZmMuLjFkN2M3NDU1N2FiMTMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5jXG5AQCAtMTIwMSwxNSArMTIwMSwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBydHc4OV91c2JfZ3JvdXAgPSB7XG4gX19BVFRSSUJVVEVfR1JPVVBTKHJ0dzg5X3VzYik7XG4gXG4gaW50IHJ0dzg5X3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zixcbi1cdFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcbitcdFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbylcbiB7XG4tXHRjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm87XG4gXHRzdHJ1Y3QgcnR3ODlfZGV2ICpydHdkZXY7XG4gXHRzdHJ1Y3QgcnR3ODlfdXNiICpydHd1c2I7XG4gXHRpbnQgcmV0O1xuIFxuLVx0aW5mbyA9IChjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKilpZC1cdTAwM2Vkcml2ZXJfaW5mbztcbi1cbiBcdHJ0d2RldiA9IHJ0dzg5X2FsbG9jX2llZWU4MDIxMV9odyhcdTAwMjZpbnRmLVx1MDAzZWRldixcbiBcdFx0XHRcdFx0ICBzaXplb2Yoc3RydWN0IHJ0dzg5X3VzYiksIGluZm8pO1xuIFx0aWYgKCFydHdkZXYpIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg5L3VzYi5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OS91c2IuaFxuaW5kZXggYmRmMzEyNTU5NzQzOC4uMzcyNjIwZDA4NTFlNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODkvdXNiLmhcbkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJ0dzg5X3VzYiAqcnR3ODlfdXNiX3ByaXYoc3RydWN0IHJ0dzg5X2RldiAqcnR3ZGV2KVxuIH1cbiBcbiBpbnQgcnR3ODlfdXNiX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmLFxuLVx0XHQgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTtcbitcdFx0ICAgIGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqaW5mbyk7XG4gdm9pZCBydHc4OV91c2JfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50Zik7XG4gXG4gI2VuZGlmXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xNlQxODozNDo0NS43MTQ0ODQ0MDVaIiwiU2VxIjoxNywiTmVzdGluZyI6MywiVHlwZSI6ImxsbSIsIk5hbWUiOiJrbXNhbi1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE5NDcxOTgwMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFsdGVrIFdpcmVsZXNzIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCBtZSBicmVhayBkb3duIHRoaXMgUmVhbHRlayB3aXJlbGVzcyBkcml2ZXIgcGF0Y2guIEl0J3MgdGFyZ2V0aW5nIHRoZSBwcm9iZSBmdW5jdGlvbnMgd2l0aGluIHNldmVyYWwgYHJ0dzg5YCBmYW1pbHkgZHJpdmVyczogYHJ0dzg4NTFidWAsIGBydHc4ODUyYXVgLCBgcnR3ODg1MmJ1YCwgYHJ0dzg4NTJjdWAsIGFuZCBgcnR3ODkyMmF1YC4gVGhlIGNvcmUgY2hhbmdlIGlzIGluIGhvdyB0aGUgVVNCIHByb2JlIGZ1bmN0aW9uLCBgcnR3ODlfdXNiX3Byb2JlYCwgaGFuZGxlcyBkcml2ZXItc3BlY2lmaWMgaW5mb3JtYXRpb24uIEluc3RlYWQgb2YgZGlyZWN0bHkgdXNpbmcgYSBgdXNiX2RldmljZV9pZGAncyBgZHJpdmVyX2luZm9gIGZpZWxkLCB3aGljaCwgY3JpdGljYWxseSwgaXMgYSBga2VybmVsX3Vsb25nX3RgIGFuZCB0aGVyZWZvcmUgY2FuIGJlIHplcm8sIGl0IG5vdyB0YWtlcyBhIGBjb25zdCBzdHJ1Y3QgcnR3ODlfZHJpdmVyX2luZm8gKmluZm9gIGRpcmVjdGx5LlxuXG5UaGUgaW5kaXZpZHVhbCBkcml2ZXIgZmlsZXMgbm93IGhhdmUgYSBuZXcgcHJvYmUgZnVuY3Rpb24sIGxpa2UgYHJ0dzg4NTFidV9wcm9iZWAsIHdoaWNoIGNoZWNrcyBpZiB0aGUgYGlkLVx1MDAzZWRyaXZlcl9pbmZvYCBwb2ludGVyIGlzIHZhbGlkLiBJZiBpdCAqaXMqIHNldCAobm9uLU5VTEwsIGFmdGVyIHRoZSBjYXN0KSwgaXQgdXNlcyBpdC4gSWYgaXQncyAqbm90KiBzZXQsIGkuZS4sIGlzIHplcm8sIGl0IGZhbGxzIGJhY2sgdG8gYSBkZWZhdWx0IGBydHc4OV84ODUxYnVfaW5mb2Agc3RydWN0LiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQuXG5cblRoZSBpbml0aWFsIHByb2JsZW0gaGVyZSBpcyBjcnlzdGFsIGNsZWFyOiB0aGUgY29kZSB3YXMgZGVyZWZlcmVuY2luZyBgaWQtXHUwMDNlZHJpdmVyX2luZm9gIHdoaWNoIGNvdWxkIGJlIHplcm8uIFNwZWNpZmljYWxseSwgdGhlIG9yaWdpbmFsIGNvZGUgaGFkOlxuXG5gYGBjXG4tXHRpbmZvID0gKGNvbnN0IHN0cnVjdCBydHc4OV9kcml2ZXJfaW5mbyAqKWlkLVx1MDAzZWRyaXZlcl9pbmZvO1xuYGBgXG5cblRoaXMgcHJlc2VudHMgYSBjbGFzc2ljIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBidWcuIElmIHRoZSBVU0IgZGV2aWNlIHdhcyBib3VuZCB0aHJvdWdoLCBzYXksIHN5c2ZzJ3MgYG5ld19pZGAgbWVjaGFuaXNtLCB0aGVuIHRoZSBgZHJpdmVyX2luZm9gIGZpZWxkIGNvdWxkIGJlIDAsIGFuZCB0aGUgYXNzaWdubWVudCB3b3VsZCBoYXZlIGBpbmZvYCBhcyBOVUxMLCB3aGljaCBpcyB0aGVuIHBhc3NlZCBkb3duIHRvIGBydHc4OV9hbGxvY19pZWVlODAyMTFfaHdgLCBhbmQgYm9vbSwgeW91IGNyYXNoLlxuXG5Ob3csIHRoZSBxdWVzdGlvbiBpcywgaXMgdGhpcyBhbiB1bmluaXRpYWxpemVkIG1lbW9yeSBpc3N1ZT8gTm8sIGFic29sdXRlbHkgbm90LiBUaGUgcm9vdCBjYXVzZSBpcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZS4gVGhlIGBkcml2ZXJfaW5mb2AgZmllbGQgaXNuJ3QgXCJ1bmluaXRpYWxpemVkXCIgaW4gdGhlIHRyYWRpdGlvbmFsIHNlbnNlLiBJdCdzIGluaXRpYWxpemVkIHRvIHplcm8uIFRoZSBwcm9ibGVtIGlzIGRlcmVmZXJlbmNpbmcgYSB6ZXJvIHZhbHVlLiBUaGlzIHBhdGNoIGNsZXZlcmx5IHByb3ZpZGVzIGEgZmFsbGJhY2ssIHByZXZlbnRpbmcgdGhlIGNyYXNoLiBLQVNBTiBvciBhIHN0YW5kYXJkIGtlcm5lbCBvb3BzIHdvdWxkIHF1aWNrbHkgY2F0Y2ggYSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgbGlrZSB0aGlzLiBUaGVyZSdzIG5vIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGJlaW5nIHJlYWQgb3IgbGVha2VkIHRvIHVzZXJzcGFjZSBoZXJlLlxuXG5MZXQncyBxdWlja2x5IHJlLWl0ZXJhdGU6IFRoZSBmaXggYWRkcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIHN0cnVjdCBgXHUwMDI2cnR3ODlfODg1MWJ1X2luZm9gIHdoZW4gYGlkLVx1MDAzZWRyaXZlcl9pbmZvYCBpcyAwLiBUaGlzIGlzIGEgdmVyeSBjb21tb24gZml4IGZvciBVU0IgZHJpdmVycyB0aGF0IGFzc3VtZSBgZHJpdmVyX2luZm9gIGlzIGFsd2F5cyBhIHZhbGlkIHBvaW50ZXIuIFRoaXMgaXMgYWxsIGFib3V0IHByZXZlbnRpbmcgY3Jhc2hlcyBpbiBVU0IgZHJpdmVycyB3aGVuIGRlYWxpbmcgd2l0aCBkeW5hbWljYWxseSBib3VuZCBkZXZpY2VzIHRocm91Z2ggYG5ld19pZGAuXG5cblRoZXJlZm9yZSwgdGhlIGBOZWVkc0tNU0FOYCBmbGFnIGlzIGBmYWxzZWAuIFRoaXMgcGF0Y2ggY2xlYXJseSByZXNvbHZlcyBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpc3N1ZSwgc3BlY2lmaWNhbGx5IHdoZW4gYGRyaXZlcl9pbmZvYCBpcyAwIChhcyBvZnRlbiBoYXBwZW5zIHdpdGggYG5ld19pZGApLCBhbmQgaXMgbm90IHJlbGF0ZWQgdG8gdW5pbml0aWFsaXplZCBtZW1vcnkuIFRoZSBzdGFuZGFyZCBrZXJuZWwgc2FmZXR5IG1lY2hhbmlzbXMgKEtBU0FOLCBPb3BzKSBhcmUgZnVsbHkgc3VmZmljaWVudCBmb3IgZGV0ZWN0aW5nIGFuZCBtaXRpZ2F0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NzksIk91dHB1dFRva2VucyI6MTI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Njc5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTZUMTg6MzQ6NTcuNjYxNjg4MDdaIiwiU2VxIjoxOCwiTmVzdGluZyI6MywiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSB0aGF0IG9jY3VycyB3aGVuIGBpZC1cXHUwMDNlZHJpdmVyX2luZm9gIGlzIDAgKHdoaWNoIGNhbiBoYXBwZW4gd2hlbiBhIFVTQiBkZXZpY2UgaXMgYm91bmQgZHluYW1pY2FsbHkgdmlhIHN5c2ZzIGBuZXdfaWRgKS4gVGhlIGZpeCBwcm92aWRlcyBhIGZhbGxiYWNrIHRvIGEgc3RhdGljIGRyaXZlciBpbmZvIHN0cnVjdHVyZS4gVGhpcyBkb2VzIG5vdCBpbnZvbHZlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHJlYWRzIG9yIGluZm9ybWF0aW9uIGxlYWtzIHRvIHVzZXJzcGFjZS4gU3RhbmRhcmQgS0FTQU4gYW5kIGtlcm5lbCBvb3BzIG1lY2hhbmlzbXMgYXJlIGZ1bGx5IGNhcGFibGUgb2YgZGV0ZWN0aW5nIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZXMsIHNvIGEgZGVkaWNhdGVkIEtNU0FOIGZ1enppbmcgc2Vzc2lvbiBpcyBub3QgcmVxdWlyZWQuXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIHRoYXQgb2NjdXJzIHdoZW4gYGlkLVxcdTAwM2Vkcml2ZXJfaW5mb2AgaXMgMCAod2hpY2ggY2FuIGhhcHBlbiB3aGVuIGEgVVNCIGRldmljZSBpcyBib3VuZCBkeW5hbWljYWxseSB2aWEgc3lzZnMgYG5ld19pZGApLiBUaGUgZml4IHByb3ZpZGVzIGEgZmFsbGJhY2sgdG8gYSBzdGF0aWMgZHJpdmVyIGluZm8gc3RydWN0dXJlLiBUaGlzIGRvZXMgbm90IGludm9sdmUgdW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZHMgb3IgaW5mb3JtYXRpb24gbGVha3MgdG8gdXNlcnNwYWNlLiBTdGFuZGFyZCBLQVNBTiBhbmQga2VybmVsIG9vcHMgbWVjaGFuaXNtcyBhcmUgZnVsbHkgY2FwYWJsZSBvZiBkZXRlY3RpbmcgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlcywgc28gYSBkZWRpY2F0ZWQgS01TQU4gZnV6emluZyBzZXNzaW9uIGlzIG5vdCByZXF1aXJlZC5cIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[1] Phase: Succeeded StartedAt: 2026-08-16 18:35:09 +0000 UTC FinishedAt: 2026-08-16 18:35:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-16 18:35:09 +0000 UTC FinishedAt: 2026-08-16 18:35:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2] Phase: Succeeded StartedAt: 2026-08-16 18:35:09 +0000 UTC FinishedAt: 2026-08-16 19:15:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-16 18:35:09 +0000 UTC FinishedAt: 2026-08-16 19:15:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-16 18:35:09 +0000 UTC FinishedAt: 2026-08-16 18:35:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-16 18:35:09 +0000 UTC FinishedAt: 2026-08-16 18:35:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},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-workflowx8bz8/series-workflowx8bz8-convert-artifact-561779653/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-16 18:35:19 +0000 UTC FinishedAt: 2026-08-16 18:51:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-16 18:35:19 +0000 UTC FinishedAt: 2026-08-16 18:51:49 +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:*0d20278f-35db-459d-a27e-c2ca0e171def,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-workflowx8bz8/series-workflowx8bz8-convert-artifact-561779653/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": "0db2be56-e571-45b8-9c0f-60d519e9c573", "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-workflowx8bz8/series-workflowx8bz8-build-action-3363617387/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-16 18:35:19 +0000 UTC FinishedAt: 2026-08-16 18:51:39 +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:*0d20278f-35db-459d-a27e-c2ca0e171def,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-workflowx8bz8/series-workflowx8bz8-convert-artifact-561779653/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": "0db2be56-e571-45b8-9c0f-60d519e9c573", "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-workflowx8bz8/series-workflowx8bz8-build-action-3363617387/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-16 18:51:49 +0000 UTC FinishedAt: 2026-08-16 18:51:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-16 18:51:49 +0000 UTC FinishedAt: 2026-08-16 18:51:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-16 18:51:49 +0000 UTC FinishedAt: 2026-08-16 18:51:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-16 18:51:49 +0000 UTC FinishedAt: 2026-08-16 18:51:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},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-workflowx8bz8/series-workflowx8bz8-convert-artifact-1278185120/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-16 18:51:59 +0000 UTC FinishedAt: 2026-08-16 18:54:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-16 18:51:59 +0000 UTC FinishedAt: 2026-08-16 18:54:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0db2be56-e571-45b8-9c0f-60d519e9c573,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-workflowx8bz8/series-workflowx8bz8-build-action-3363617387/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": true },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-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-16 18:54:11 +0000 UTC FinishedAt: 2026-08-16 18:54:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-16 18:54:11 +0000 UTC FinishedAt: 2026-08-16 18:54:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-16 18:54:11 +0000 UTC FinishedAt: 2026-08-16 19:10:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-16 18:54:11 +0000 UTC FinishedAt: 2026-08-16 19:10:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,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:*0d20278f-35db-459d-a27e-c2ca0e171def,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-workflowx8bz8/series-workflowx8bz8-convert-artifact-1278185120/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": "526106f9-9c7f-47d6-8235-596fbebbc367", "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-workflowx8bz8/series-workflowx8bz8-build-action-1951433820/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-16 18:54:11 +0000 UTC FinishedAt: 2026-08-16 19:10:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,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:*0d20278f-35db-459d-a27e-c2ca0e171def,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-workflowx8bz8/series-workflowx8bz8-convert-artifact-1278185120/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": "526106f9-9c7f-47d6-8235-596fbebbc367", "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-workflowx8bz8/series-workflowx8bz8-build-action-1951433820/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-16 19:10:29 +0000 UTC FinishedAt: 2026-08-16 19:10:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-16 19:10:29 +0000 UTC FinishedAt: 2026-08-16 19:10:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-16 19:10:29 +0000 UTC FinishedAt: 2026-08-16 19:12:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-16 19:10:29 +0000 UTC FinishedAt: 2026-08-16 19:12:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*526106f9-9c7f-47d6-8235-596fbebbc367,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,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-workflowx8bz8/series-workflowx8bz8-build-action-1951433820/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": true },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-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-16 19:12:39 +0000 UTC FinishedAt: 2026-08-16 19:15:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-16 19:12:39 +0000 UTC FinishedAt: 2026-08-16 19:15:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*0db2be56-e571-45b8-9c0f-60d519e9c573,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*526106f9-9c7f-47d6-8235-596fbebbc367,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,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-workflowx8bz8/series-workflowx8bz8-build-action-3363617387/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,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-workflowx8bz8/series-workflowx8bz8-build-action-1951433820/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-16 19:12:39 +0000 UTC FinishedAt: 2026-08-16 19:12:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-16 19:12:39 +0000 UTC FinishedAt: 2026-08-16 19:12:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},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-workflowx8bz8/series-workflowx8bz8-convert-artifact-2861255161/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-16 19:12:39 +0000 UTC FinishedAt: 2026-08-16 19:12:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-16 19:12:39 +0000 UTC FinishedAt: 2026-08-16 19:12:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-16 19:12:39 +0000 UTC FinishedAt: 2026-08-16 19:12:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-16 19:12:49 +0000 UTC FinishedAt: 2026-08-16 19:15:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowx8bz8[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["rtw8851bu_probe","rtw8852au_probe","rtw8852bu_probe","rtw8852cu_probe","rtw8922au_probe","rtw89_usb_probe"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"ca800a9302764c445de0da0e84d2252400a770ee","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTW89","RTW89_8851BU","RTW89_8852AU","RTW89_8852BU","RTW89_8852CU","RTW89_8922AU"],"series_id":"9de760ec-d2cd-47ac-945d-e5c1e864c9d8","tree_name":"wireless-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/wireless/wireless-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-16 19:12:49 +0000 UTC FinishedAt: 2026-08-16 19:15:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0db2be56-e571-45b8-9c0f-60d519e9c573,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*526106f9-9c7f-47d6-8235-596fbebbc367,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-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-workflowx8bz8/series-workflowx8bz8-build-action-3363617387/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,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-workflowx8bz8/series-workflowx8bz8-build-action-1951433820/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.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-workflowx8bz8/series-workflowx8bz8-convert-artifact-2861255161/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}