Name: series-workflowh9g2q Phase: Succeeded StartedAt: 2026-08-03 14:00:52 +0000 UTC FinishedAt: 2026-08-03 16:21:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[0] Phase: Succeeded StartedAt: 2026-08-03 14:00:52 +0000 UTC FinishedAt: 2026-08-03 15:37:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 14:00:52 +0000 UTC FinishedAt: 2026-08-03 15:37:23 +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": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8192CU" ], "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": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8192CU" ], "series_id": "4f5729d8-f4ed-49d2-be4b-3e4ba715eb39" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtl92cu_update_hal_rate_tbl" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUTDgxOTJDVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBtYXNrIHVwZGF0ZSBsb2dpYyBpbiB0aGUgUmVhbHRlayBSVEw4MTkyQ1UgVVNCIFdpLUZpIGRyaXZlci4gSXQgcmVtb3ZlcyB0aGUgU01QUyBzdGF0aWMgY29uZGl0aW9uIGFuZCBzaW1wbGlmaWVzIHRoZSByYXRlIG1hc2sgY2FsY3VsYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkL3JhdyBnYWRnZXQpLiBUaGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgbG9naWMgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZGMyMjA4MDliMWE3ZDdlZjlhNjJhYjhkNGU4MjA0NGNkOWIzMGM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxNTozNjozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmNcbmluZGV4IDk4OWU3Y2ZmOGUyMDEuLmU3NWY3ZWM0NGU2YTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuY1xuQEAgLTE5MTEsNyAmIzQzOzE5MTEsNiBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Ym9vbCBzaG9ydGdpID0gZmFsc2U7XG4gXHR1OCByYXRlX21hc2tbNV07XG4gXHR1OCBtYWNpZCA9IDA7XG4tXHR1OCBtaW1vX3BzID0gSUVFRTgwMjExX1NNUFNfT0ZGO1xuIFxuIFx0c3RhX2VudHJ5ID0gKHN0cnVjdCBydGxfc3RhX2luZm8gKikgc3RhLVx1MDAzZWRydl9wcml2O1xuIFx0d2lyZWxlc3Ntb2RlID0gc3RhX2VudHJ5LVx1MDAzZXdpcmVsZXNzX21vZGU7XG5AQCAtMTk1Niw0NyAmIzQzOzE5NTUsMzggQEAgc3RhdGljIHZvaWQgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdGNhc2UgV0lSRUxFU1NfTU9ERV9OXzVHOlxuIFx0XHRyYXRyX2luZGV4ID0gUkFUUl9JTlhfV0lSRUxFU1NfTkdCO1xuIFxuLVx0XHRpZiAobWltb19wcyA9PSBJRUVFODAyMTFfU01QU19TVEFUSUMpIHtcbi1cdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMDcwMDAwO1xuLVx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDA3ZjAwMDtcbi1cdFx0XHRlbHNlXG4tXHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwN2YwMDU7XG4mIzQzO1x0XHRpZiAocnRscGh5LVx1MDAzZXJmX3R5cGUgPT0gUkZfMVQyUiB8fFxuJiM0MztcdFx0ICAgIHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMVIpIHtcbiYjNDM7XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbiYjNDM7XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGYwMDAwO1xuJiM0MztcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMTU7XG4mIzQzO1x0XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmMDAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4mIzQzO1x0XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGZmMDA1O1xuJiM0MztcdFx0XHR9XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aWYgKHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMlIgfHxcbi1cdFx0XHQgICAgcnRscGh5LVx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xuLVx0XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMTU7XG4tXHRcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmMDAwMDtcbi1cdFx0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwMDtcbi1cdFx0XHRcdFx0ZWxzZVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwNTtcbi1cdFx0XHRcdH1cbiYjNDM7XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbiYjNDM7XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGYwMDAwO1xuJiM0MztcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMTU7XG4gXHRcdFx0fSBlbHNlIHtcbi1cdFx0XHRcdGlmIChjdXJ0eGJ3XzQwbWh6KSB7XG4tXHRcdFx0XHRcdGlmIChyc3NpX2xldmVsID09IDEpXG4tXHRcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGYwMDAwO1xuLVx0XHRcdFx0XHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXG4tXHRcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDAwO1xuLVx0XHRcdFx0XHRlbHNlXG4tXHRcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDE1O1xuLVx0XHRcdFx0fSBlbHNlIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDU7XG4tXHRcdFx0XHR9XG4mIzQzO1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmMDAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4mIzQzO1x0XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDA1O1xuIFx0XHRcdH1cbiBcdFx0fVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVEw4MTkyQ1UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgbWFzayB1cGRhdGUgbG9naWMgaW4gdGhlIFJlYWx0ZWsgUlRMODE5MkNVIFVTQiBXaS1GaSBkcml2ZXIuIEl0IHJlbW92ZXMgdGhlIFNNUFMgc3RhdGljIGNvbmRpdGlvbiBhbmQgc2ltcGxpZmllcyB0aGUgcmF0ZSBtYXNrIGNhbGN1bGF0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZC9yYXcgZ2FkZ2V0KS4gVGhlIGVudHJ5IHBvaW50IGZvciB0aGlzIGxvZ2ljIGlzIGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMWRjMjIwODA5YjFhN2Q3ZWY5YTYyYWI4ZDRlODIwNDRjZDliMzBjNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMgMTU6MzY6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMKaW5kZXggOTg5ZTdjZmY4ZTIwMS4uZTc1ZjdlYzQ0ZTZhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYwpAQCAtMTkxMSw3ICYjNDM7MTkxMSw2IEBAIHN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJYm9vbCBzaG9ydGdpID0gZmFsc2U7CiAJdTggcmF0ZV9tYXNrWzVdOwogCXU4IG1hY2lkID0gMDsKLQl1OCBtaW1vX3BzID0gSUVFRTgwMjExX1NNUFNfT0ZGOwogCiAJc3RhX2VudHJ5ID0gKHN0cnVjdCBydGxfc3RhX2luZm8gKikgc3RhLSZndDtkcnZfcHJpdjsKIAl3aXJlbGVzc21vZGUgPSBzdGFfZW50cnktJmd0O3dpcmVsZXNzX21vZGU7CkBAIC0xOTU2LDQ3ICYjNDM7MTk1NSwzOCBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAogCWNhc2UgV0lSRUxFU1NfTU9ERV9OXzVHOgogCQlyYXRyX2luZGV4ID0gUkFUUl9JTlhfV0lSRUxFU1NfTkdCOwogCi0JCWlmIChtaW1vX3BzID09IElFRUU4MDIxMV9TTVBTX1NUQVRJQykgewotCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKLQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDA3MDAwMDsKLQkJCWVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMikKLQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDA3ZjAwMDsKLQkJCWVsc2UKLQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDA3ZjAwNTsKJiM0MzsJCWlmIChydGxwaHktJmd0O3JmX3R5cGUgPT0gUkZfMVQyUiB8fAomIzQzOwkJICAgIHJ0bHBoeS0mZ3Q7cmZfdHlwZSA9PSBSRl8xVDFSKSB7CiYjNDM7CQkJaWYgKGN1cnR4YndfNDBtaHopIHsKJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZmYwMTU7CiYjNDM7CQkJfSBlbHNlIHsKJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZmYwMDU7CiYjNDM7CQkJfQogCQl9IGVsc2UgewotCQkJaWYgKHJ0bHBoeS0mZ3Q7cmZfdHlwZSA9PSBSRl8xVDJSIHx8Ci0JCQkgICAgcnRscGh5LSZndDtyZl90eXBlID09IFJGXzFUMVIpIHsKLQkJCQlpZiAoY3VydHhid180MG1oeikgewotCQkJCQlpZiAocnNzaV9sZXZlbCA9PSAxKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZjAwMDA7Ci0JCQkJCWVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMikKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGZmMDAwOwotCQkJCQllbHNlCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAxNTsKLQkJCQl9IGVsc2UgewotCQkJCQlpZiAocnNzaV9sZXZlbCA9PSAxKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZjAwMDA7Ci0JCQkJCWVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMikKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGZmMDAwOwotCQkJCQllbHNlCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAwNTsKLQkJCQl9CiYjNDM7CQkJaWYgKGN1cnR4YndfNDBtaHopIHsKJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMTU7CiAJCQl9IGVsc2UgewotCQkJCWlmIChjdXJ0eGJ3XzQwbWh6KSB7Ci0JCQkJCWlmIChyc3NpX2xldmVsID09IDEpCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmMDAwMDsKLQkJCQkJZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMDA7Ci0JCQkJCWVsc2UKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGZmMDE1OwotCQkJCX0gZWxzZSB7Ci0JCQkJCWlmIChyc3NpX2xldmVsID09IDEpCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmMDAwMDsKLQkJCQkJZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMDA7Ci0JCQkJCWVsc2UKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGZmMDA1OwotCQkJCX0KJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMDU7CiAJCQl9CiAJCX0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxNTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjE5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gYXBwbGllZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jYC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyByZW1vdmluZyB0aGUgYG1pbW9fcHNgIHZhcmlhYmxlIGFuZCBhIHNwZWNpZmljIGNvbmRpdGlvbiByZWxhdGVkIHRvIGl0IHdpdGhpbiB0aGUgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGlzIGlzIGEgd2lyZWxlc3MgZHJpdmVyIGZvciB0aGUgUmVhbHRlayBSVEw4MTkyQ1UsIHdoaWNoIEkgcmVjb2duaXplIGlzIGEgVVNCIGRldmljZS4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBVU0IgaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgYWJvdXQgZnV6emluZywgcGFydGljdWxhcmx5IGdpdmVuIHRoYXQgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIHJhdyBVU0IgZ2FkZ2V0cy4gU28sIG15IG1pbmQgaXMgYWxyZWFkeSBqdW1waW5nIHRvIHBvdGVudGlhbCBmdXp6aW5nIHN0cmF0ZWdpZXMuCgpOb3csIGEgcXVpY2sgY2hlY2sgdG8gc2VlIGlmIEkgY2FuIHVzZSBtYWM4MDIxMV9od3NpbT8gTm8sIHRoYXQmIzM5O3MgYSBzb2Z0d2FyZSBzaW11bGF0b3IsIG5vdCByZWxldmFudCBoZXJlLiBIb3dldmVyLCBzeXprYWxsZXIgY291bGQgYmUgaGVscGZ1bCBiZWNhdXNlIGl0IGNhbiBmdXp6IFVTQiBkcml2ZXJzIHdpdGggdGhlIGR1bW15X2hjZCBhbmQgcmF3IGdhZGdldC4gQnV0IGZpcnN0LCBsZXQgbWUgY29uZmlybSBteSBhc3N1bXB0aW9uOiBpcyBgcnRsODE5MmN1YCBhY3R1YWxseSBhIFVTQiBkcml2ZXI/IFllcywgZGVmaW5pdGVseS4gTm93IHRoYXQmIzM5O3MgY29uZmlybWVkLCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyBmb3IgYHJ0bDgxOTJjdWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUTDgxOTJDVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9OTg9Y29uZmlnIFJUTDg4MjFBRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjExMDpjb25maWcgUlRMODE5MkNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMTEtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIFJUTDgxOTJDVS9SVEw4MTg4Q1UgVVNCIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4OTAKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhbmFseXppbmcgdGhhdCBxdWVzdGlvbjoKCioqRGVjb25zdHJ1Y3RpbmcgRGVwZW5kZW5jaWVzIG9mIFJUTDgxOTJDVSoqCgpPa2F5LCBzbyB0aGUgdGFzayBpcyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGBSVEw4MTkyQ1VgIGRyaXZlci4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyB0byBhdm9pZCBqdW1waW5nIGludG8gY29kZSBpbW1lZGlhdGVseS4gSSYjMzk7ZCBiZWdpbiBieSB0aGlua2luZyBhYm91dCB0aGUgYnJvYWRlciBjb250ZXh0IG9mIGEgdHlwaWNhbCBuZXR3b3JrIGRyaXZlci4KCkkmIzM5O20gYXNzdW1pbmcgdGhpcyBpcyBhIExpbnV4LWJhc2VkIHN5c3RlbSwgbGlrZWx5IHRhcmdldGluZyBhIHNwZWNpZmljIGhhcmR3YXJlIHBsYXRmb3JtLiBJ4oCZbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgZXh0ZXJuYWwgY29tcG9uZW50cyBvciBsaWJyYXJpZXMgdGhpcyBkcml2ZXIsIGBSVEw4MTkyQ1VgLCByZWxpZXMgb24gdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBUaGlzIGNvdWxkIGluY2x1ZGUsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgdGhlIGtlcm5lbCBpdHNlbGYsIG90aGVyIGtlcm5lbCBtb2R1bGVzLCBzcGVjaWZpYyBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllcnMgKEhBTHMpIGlmIGl0IGV4aXN0cywgb3IgZXZlbiB1c2Vyc3BhY2UgdXRpbGl0aWVzIGZvciBjb25maWd1cmF0aW9uLiBJIHdvdWxkIGd1ZXNzLCBiZWluZyBhIFJlYWx0ZWsgZHJpdmVyLCBpdCBtaWdodCByZWx5IG9uIGEgcHJvcHJpZXRhcnkgSEFMLCBvciBhdCBsZWFzdCBhIHNwZWNpZmljIGtlcm5lbCB2ZXJzaW9uIGZvciBjb21wYXRpYmlsaXR5LgoKSSB3b3VsZCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGFuZCBhbnkgYXNzb2NpYXRlZCBjb25maWd1cmF0aW9ucy4gRG9lcyBpdCByZWx5IG9uIGEgc3BlY2lmaWMgbWFrZWZpbGUgb3IgS2NvbmZpZyBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBrZXJuZWwgaGVhZGVycyB0aGF0IG5lZWQgdG8gYmUgaW5jbHVkZWQgYW5kIHByZXNlbnQgYXQgY29tcGlsZSB0aW1lPyBLbm93aW5nIHRoZSBrZXJuZWwmIzM5O3MgdmVyc2lvbiBhbmQgY29uZmlndXJhdGlvbiBjb3VsZCBvZmZlciBpbnNpZ2h0cyBpbnRvIGFueSBzcGVjaWZpYyBpbnRlcmZhY2Ugb3IgZnVuY3Rpb25hbGl0eS4gCgpJJiMzOTtkIGFsc28gY29uc2lkZXIgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYW5kIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBjb21wb25lbnRzLiBEb2VzIGl0IG5lZWQgYSBzcGVjaWZpYyBmaXJtd2FyZSB0byBvcGVyYXRlPyBQZXJoYXBzIHNvbWUgb2YgdGhlIGRyaXZlciYjMzk7cyBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgaW4gZmlybXdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTI9bWVudWNvbmZpZyBSVExfQ0FSRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIHJ0bHdpZmkgZmFtaWx5IG9mIGRldmljZXNcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiAoUENJIHx8IFVTQilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xND1jb25maWcgUlRMODE5MkNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODE5MkNFL1JUTDgxODhDRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjE2Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE3LVx0c2VsZWN0IFJUTDgxOTJDX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTI2PWNvbmZpZyBSVEw4MTkyU0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTI3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4MTkyU0UvUlRMODE5MVNFIFBDSWUgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoyODpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0yOS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9Mzc9Y29uZmlnIFJUTDgxOTJERVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIFJUTDgxOTJERS9SVEw4MTg4REUgUENJZSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjM5Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTQwLVx0c2VsZWN0IFJUTDgxOTJEX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTQ5PWNvbmZpZyBSVEw4NzIzQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4NzIzQUUgUENJZSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjUxOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUyLVx0c2VsZWN0IFJUTFdJRklcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz02Mj1jb25maWcgUlRMODcyM0JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy02My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODcyM0JFIFBDSWUgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo2NDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy02NS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9NzU9Y29uZmlnIFJUTDgxODhFRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctNzYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIFJUTDgxODhFRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjc3Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTc4LVx0c2VsZWN0IFJUTFdJRklcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz04Nj1jb25maWcgUlRMODE5MkVFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy04Ny1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODE5MkVFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6ODg6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctODktXHRzZWxlY3QgUlRMV0lGSVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTk4PWNvbmZpZyBSVEw4ODIxQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTk5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4ODIxQUUvUlRMODgxMkFFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTAwOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEwMS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTEwPWNvbmZpZyBSVEw4MTkyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTExMS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODE5MkNVL1JUTDgxODhDVSBVU0IgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxMTI6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTEzLVx0c2VsZWN0IFJUTFdJRklcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xMjI9Y29uZmlnIFJUTDgxOTJEVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTIzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4MTkyRFUgVVNCIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTI0Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEyNS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTQ0PWNvbmZpZyBSVExXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNDUtXHRib29sIFwmIzM0O0RlYnVnZ2luZyBvdXRwdXQgZm9yIHJ0bHdpZmkgZHJpdmVyIGZhbWlseVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTQ2Olx0ZGVwZW5kcyBvbiBSVExXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNDctXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xNTM9Y29uZmlnIFJUTDgxOTJDX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTU0LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjE1NTpcdGRlcGVuZHMgb24gUlRMODE5MkNFIHx8IFJUTDgxOTJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTU2LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTYxPWNvbmZpZyBSVEw4NzIzX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTYyLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjE2MzpcdGRlcGVuZHMgb24gUlRMODcyM0FFIHx8IFJUTDg3MjNCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTY0LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTY2PWNvbmZpZyBSVExCVENPRVhJU1RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE2Ny1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxNjg6XHRkZXBlbmRzIG9uIFJUTDg3MjNBRSB8fCBSVEw4NzIzQkUgfHwgUlRMODgyMUFFIHx8IFJUTDgxOTJFRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTY5LVx0ZGVmYXVsdCB5XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA3MAoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUlRMODE5MkNVIE1vZHVsZSYjMzk7cyBEZXBlbmRlbmNpZXMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhlIGBSVEw4MTkyQ1VgIGRyaXZlciByZWxpZXMgb24gdGhlIGBVU0JgIHN1YnN5c3RlbSwgYW5kIGluIHR1cm4sIHRoZSBgUlRMX0NBUkRTYCBtb2R1bGUuIGBSVExfQ0FSRFNgIGl0c2VsZiBzZWVtcyB0byBiZSBpbnRyaWNhdGVseSBsaW5rZWQgd2l0aCBgTUFDODAyMTFgIGFuZCBlaXRoZXIgYFBDSWAgb3IgYFVTQmAg4oCTIHdoaWNoIG1ha2VzIHNlbnNlIGluIHRoZSBjb250ZXh0IG9mIG5ldHdvcmsgY2FyZCBhcmNoaXRlY3R1cmVzLiBOb3csIHRoZSBrZXkgZnVuY3Rpb24gSSYjMzk7bSBsb29raW5nIGF0LCB0aGUgb25lIEkmIzM5O20gZm9jdXNlZCBvbiwgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGV0ZXJtaW5lIGl0cyBhY2Nlc3NpYmlsaXR5IHdpdGhpbiB0aGUgb3ZlcmFsbCBzeXN0ZW0uIEkgbmVlZCB0byB0cmFjZSBpdHMgY2FsbCBncmFwaCBhbmQgdW5kZXJzdGFuZCBpZiBpdCYjMzk7cyBhY3R1YWxseSBiZWluZyB1c2VkLiBUaGlzIGRlcGVuZGVuY3kgc3RydWN0dXJlIGdpdmVzIG1lIGEgc3RhcnRpbmcgcG9pbnQsIG5vdyB0aGUgZ29hbCBpcyB0byBzZWUgaG93IHRoaXMgYWxsIGNvbm5lY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM9MTgwNT1zdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YWJsZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMTg5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYzoxODkzOnN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMTg5NC1cdFx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jPTIwMzA9dm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90Ymwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTIwMzYtXHRpZiAocnRscHJpdi1cdTAwM2VkbS51c2VyYW1hc2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM6MjAzNzpcdFx0cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFzayhodywgc3RhLCByc3NpX2xldmVsLCB1cGRhdGVfYncpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTIwMzgtXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc3OQoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIFJhdGUgVGFibGUgVXBkYXRlKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4gSSBzZWUgaXQmIzM5O3MgY2FsbGluZyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza2AsIHdoaWNoIGlzIGludGVyZXN0aW5nIOKAkyBsaWtlbHkgaW5kaWNhdGluZyBzb21lIGtpbmQgb2YgcmF0ZSBzZWxlY3Rpb24gb3IgbWFzayBtYW5pcHVsYXRpb24uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIHRoYXQmIzM5O3MgdGhlIGRlcGVuZGVuY3kuIEJ1dCB3aGF0IHRyaWdnZXJzICp0aGlzKiBmdW5jdGlvbiwgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAsIGluIHRoZSBmaXJzdCBwbGFjZT8mIzM0OyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dC4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgaXRzIGNhbGwgc2l0ZXMuIFdoYXQgZXZlbnRzIG9yIHN0YXRlIGNoYW5nZXMgbmVjZXNzaXRhdGUgdXBkYXRpbmcgdGhlIHJhdGUgdGFibGU/IElzIHRoaXMgdHJpZ2dlcmVkIG9uIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCwgY2hhbm5lbCBjaGFuZ2VzLCBwb3dlciBzYXZlIGV2ZW50cywgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRpbWUgdG8gZGlnIGludG8gdGhlIGNvZGUgYW5kIHNlZSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5ICp1c2VkKi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGNydWNpYWwgY29udGV4dCBJIG5lZWQgdG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIHdpdGhpbi4gSeKAmWxsIGxvb2sgZm9yIHRoZSBjYWxscyB0byBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCB0byBmaW5kIHRoZSB0cmlnZ2VyIGFuZCB1c2UgdGhhdCBpbmZvcm1hdGlvbiB0byBhc3Nlc3MgdGhlIHJhdGUgbWFuYWdlbWVudCBzY2hlbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYz0xODkzPXN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTIwMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM6MjAzMDp2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0yMDMxLVx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5oPTc4PWJvb2wgcnRsOTJjdV9waHlfbWFjX2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3Lmg6Nzk6dm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90Ymwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmgtODAtXHRcdFx0XHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY3VfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAwLVx0LnNldF9od19yZWcgPSBydGw5MmN1X3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM6MTAxOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDItXHQuZmlsbF90eF9kZXNjID0gcnRsOTJjdV90eF9maWxsX2Rlc2MsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2ODAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSYXRlIFRhYmxlIFVwZGF0ZSBpbiB0aGUgUlRMODE5MkNVIFVTQiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY2hhbmdlLCBhbmQgaXQgc2VlbXMgdGhlIGNvcmUgb2YgaXQgcmV2b2x2ZXMgYXJvdW5kIGhvdyB0aGUgcmF0ZSB0YWJsZSBpcyBiZWluZyB1cGRhdGVkIHdpdGhpbiB0aGUgYHJ0bDgxOTJjdV9oYWxfb3BzYCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSBhc3NpZ25lZCB0byBgLnVwZGF0ZV9yYXRlX3RibGAuIFRoaXMgaXMsIGZ1bmRhbWVudGFsbHksIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBVU0IgZHJpdmVyIGZvciB0aGUgUlRMODE5MkNVLgoKVGhlIGVudHJ5IHBvaW50IHNlZW1zIHRvIGJlIGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgLiBCdXQgaG9sZCBvbi4uLiB0aGF0IGZ1bmN0aW9uIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYHVwZGF0ZV9yYXRlX3RibGAgd2hpY2ggaXMgZGVmaW5lZCBpbiBgcnRsX2hhbF9vcHNgLiBBbHJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjYWxsIGNoYWluIGFuZCB3aGVyZSBgdXBkYXRlX3JhdGVfdGJsYCBpdHNlbGYgaXMgYmVpbmcgaW52b2tlZC4gQmVzdCB0byB0cmFjZSBiYWNrIHRvIHdoZXJlICp0aGF0KiBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VwZGF0ZV9yYXRlX3RibCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYz0yNDM0PWludCBydGxfc2VuZF9zbXBzX2FjdGlvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvYmFzZS5jLTI0NzAtXHRcdHN0YV9lbnRyeS1cdTAwM2VtaW1vX3BzID0gc21wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9iYXNlLmM6MjQ3MTpcdFx0LyogcnRscHJpdi1cdTAwM2VjZmctXHUwMDNlb3BzLVx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLCAwLCB0cnVlKTsgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9iYXNlLmMtMjQ3Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jPTg1Nz1zdGF0aWMgaW50IHJ0bF9vcF9zdGFfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtODk2LVx0XHRcdFwmIzM0O0FkZCBzdGEgYWRkciBpcyAlcE1cXG5cJiMzNDssIHN0YS1cdTAwM2VhZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6ODk3Olx0XHRydGxwcml2LVx1MDAzZWNmZy1cdTAwM2VvcHMtXHUwMDNldXBkYXRlX3JhdGVfdGJsKGh3LCBzdGEsIDAsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy04OTgtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xMDA4PXN0YXRpYyB2b2lkIHJ0bF9vcF9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtMTEyNS1cdFx0XHRpZiAodmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6MTEyNjpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtMTEyNy1cdFx0XHRcdFx0XHRcdFx0ICAgdHJ1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxODhlZS9kbS5jPTExMzE9c3RhdGljIHZvaWQgcnRsODhlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk0LVx0XHRcdGlmIChzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL2RtLmM6MTE5NTpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk2LVx0XHRcdFx0XHRcdFx0cF9yYS1cdTAwM2VyYXRyX3N0YXRlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvc3cuYz0xOTM9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTg4ZWVfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmMtMjExLVx0LnNldF9od19yZWcgPSBydGw4OGVlX3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmM6MjEyOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDg4ZWVfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvc3cuYy0yMTMtXHQuZmlsbF90eF9kZXNjID0gcnRsODhlZV90eF9maWxsX2Rlc2MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jPTE3MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJjZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYy0xODgtXHQuc2V0X2h3X3JlZyA9IHJ0bDkyY2Vfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYzoxODk6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJjZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jLTE5MC1cdC5maWxsX3R4X2Rlc2MgPSBydGw5MmNlX3R4X2ZpbGxfZGVzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY3VfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAwLVx0LnNldF9od19yZWcgPSBydGw5MmN1X3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM6MTAxOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDItXHQuZmlsbF90eF9kZXNjID0gcnRsOTJjdV90eF9maWxsX2Rlc2MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkZS9zdy5jPTE4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJkZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYy0yMDUtXHQuc2V0X2h3X3JlZyA9IHJ0bDkyZGVfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYzoyMDY6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJkX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmRlL3N3LmMtMjA3LVx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyZGVfdHhfZmlsbF9kZXNjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvc3cuYz0xODU9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyZHVfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmMtMjAxLVx0LnNldF9od19yZWcgPSBydGw5MmR1X3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmM6MjAyOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyZF91cGRhdGVfaGFsX3JhdGVfdGJsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkdS9zdy5jLTIwMy1cdC5maWxsX3R4X2Rlc2MgPSBydGw5MmR1X3R4X2ZpbGxfZGVzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmVlL2RtLmM9ODU2PXN0YXRpYyB2b2lkIHJ0bDkyZWVfZG1fcmVmcmVzaF9yYXRlX2FkYXB0aXZlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jLTg5MC1cdFx0XHRpZiAoc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jOjg5MTpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvZG0uYy04OTItXHRcdFx0XHRcdFx0XHQgICAgICBwX3JhLVx1MDAzZXJhdHJfc3RhdGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9zdy5jPTE3OT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJlZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYy0xOTctXHQuc2V0X2h3X3JlZyA9IHJ0bDkyZWVfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYzoxOTg6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJlZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9zdy5jLTE5OS1cdC5yeF9kZXNjX2J1ZmZfcmVtYWluZWRfY250ID0gcnRsOTJlZV9yeF9kZXNjX2J1ZmZfcmVtYWluZWRfY250LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYz0yMDE9c3RhdGljIHZvaWQgX3J0bDkyc19kbV9yZWZyZXNoX3JhdGVhZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYy0yNzQtXHRcdFx0aWYgKHN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYzoyNzU6XHRcdFx0XHRydGxwcml2LVx1MDAzZWNmZy1cdTAwM2VvcHMtXHUwMDNldXBkYXRlX3JhdGVfdGJsKGh3LCBzdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmMtMjc2LVx0XHRcdFx0XHRcdFx0ICAgcmEtXHUwMDNlcmF0cl9zdGF0ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL3N3LmM9MjI0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE5MnNlX2hhbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jLTI0Mi1cdC5zZXRfaHdfcmVnID0gcnRsOTJzZV9zZXRfaHdfcmVnLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jOjI0MzpcdC51cGRhdGVfcmF0ZV90YmwgPSBydGw5MnNlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL3N3LmMtMjQ0LVx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyc2VfdHhfZmlsbF9kZXNjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYz01NTQ9c3RhdGljIHZvaWQgcnRsODcyM2VfZG1fcmVmcmVzaF9yYXRlX2FkYXB0aXZlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9kbS5jLTYyNi1cdFx0XHRpZiAoc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9kbS5jOjYyNzpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYy02MjgtXHRcdFx0XHRcdFx0XHQgICBwX3JhLVx1MDAzZXJhdHJfc3RhdGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jPTE4Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDg3MjNlX2hhbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jLTIwNC1cdC5zZXRfaHdfcmVnID0gcnRsODcyM2Vfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvc3cuYzoyMDU6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2VfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvc3cuYy0yMDYtXHQuZmlsbF90eF9kZXNjID0gcnRsODcyM2VfdHhfZmlsbF9kZXNjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYz05MDI9c3RhdGljIHZvaWQgcnRsODcyM2JlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYy05NjAtXHRcdFx0aWYgKHN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYzo5NjE6XHRcdFx0XHRydGxwcml2LVx1MDAzZWNmZy1cdTAwM2VvcHMtXHUwMDNldXBkYXRlX3JhdGVfdGJsKGh3LCBzdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmMtOTYyLVx0XHRcdFx0XHRcdFx0ICAgcF9yYS1cdTAwM2VyYXRyX3N0YXRlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvc3cuYz0xOTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4NzIzYmVfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmMtMjA4LVx0LnNldF9od19yZWcgPSBydGw4NzIzYmVfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvc3cuYzoyMDk6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2JlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmMtMjEwLVx0LmZpbGxfdHhfZGVzYyA9IHJ0bDg3MjNiZV90eF9maWxsX2Rlc2MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9kbS5jPTIzNDI9c3RhdGljIHZvaWQgcnRsODgyMWFlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvZG0uYy0yNDAwLVx0XHRcdGlmIChzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODgyMWFlL2RtLmM6MjQwMTpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODgyMWFlL2RtLmMtMjQwMi1cdFx0XHRcdFx0XHRzdGEsIHBfcmEtXHUwMDNlcmF0cl9zdGF0ZSwgdHJ1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jPTIzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDg4MjFhZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYy0yNTAtXHQuc2V0X2h3X3JlZyA9IHJ0bDg4MjFhZV9zZXRfaHdfcmVnLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jOjI1MTpcdC51cGRhdGVfcmF0ZV90YmwgPSBydGw4ODIxYWVfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYy0yNTItXHQuZmlsbF90eF9kZXNjID0gcnRsODgyMWFlX3R4X2ZpbGxfZGVzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oPTIxNjA9c3RydWN0IHJ0bF9oYWxfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oLTIxODYtXHR2b2lkICgqc2V0X2h3X3JlZykoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHU4IHZhcmlhYmxlLCB1OCAqdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS93aWZpLmg6MjE4NzpcdHZvaWQgKCp1cGRhdGVfcmF0ZV90YmwpKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3dpZmkuaC0yMTg4LVx0XHRcdFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdTggcnNzaV9sZXZlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxNTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTgxNQoJCQkJCQkJb3V0cHV0OiAxNDEKCQkJCQkJCXRob3VnaHRzOiA2NTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgdGhlIGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgIEZ1bmN0aW9uIGFuZCBpdHMgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhlIHRhcmdldCBmdW5jdGlvbiBhcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4gSSYjMzk7dmUgY29uZmlybWVkIGl0JiMzOTtzIHJlYWNoYWJsZSBmcm9tIHNldmVyYWwgbWFjODAyMTEgY2FsbGJhY2tzIOKAkyBgcnRsX29wX3N0YV9hZGRgLCBgcnRsX29wX2Jzc19pbmZvX2NoYW5nZWRgIOKAkyBhbmQgb3RoZXIgcGF0aHMgbGlrZSBgcnRsX3NlbmRfc21wc19hY3Rpb25gIGFuZCBgcnRsODhlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrYC4gVGhpcyBjb25maXJtcyBpdHMgcmVsZXZhbmNlLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHRoZSBgUlRMODE5MkNVYCwgd2hpY2gsIGZyb20gbXkgZXhwZXJpZW5jZSwgaXMgYSBVU0IgZHJpdmVyLgoKSSBpbml0aWFsbHkgY29uc2lkZXJlZCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYmVpbmcgYFJUTDgxOTJDVWAsIGBNQUM4MDIxMWAsIGFuZCBgVVNCYCwgYnV0IHJlYWxpemVkIGBSVEw4MTkyQ1VgIGluaGVyZW50bHkgZGVwZW5kcyBvbiBib3RoIGBVU0JgIGFuZCBgTUFDODAyMTFgLiBTaW5jZSBgUlRMODE5MkNVYCBpcyB0cmlzdGF0ZSwgSSBjb25maXJtZWQgdGhhdCBpdCBpcyB0aGUgb25seSBuZWNlc3NhcnkgY29uZmlnLiBUaGUgbWFpbiBmdW5jdGlvbiB0byBmb2N1cyBvbiBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCwgYnV0IEkgbm90ZSB0aGF0IGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrYCBpcyBzdGF0aWM7IHRoZXJlZm9yZSwgaXQgaXMgbGlrZWx5IGlubGluZWQuIEkgdmVyaWZpZWQgdGhhdCBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCBpcyBpbmRlZWQgZXhwb3J0ZWQgYW5kIG5vbi1zdGF0aWM6IGB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdTggcnNzaV9sZXZlbCwgYm9vbCB1cGRhdGVfYncpYC4KCkkmIzM5O3ZlIGFsc28gZG91YmxlLWNoZWNrZWQgdGhlIGNvbmZpZ3MuIGBSVEw4MTkyQ1VgIGFsb25lIGlzIHN1ZmZpY2llbnQsIGFzIGBSVExXSUZJYCBhbmQgYFJUTDgxOTJDX0NPTU1PTmAgYXJlIHNlbGVjdGVkIGJ5IGBSVEw4MTkyQ1VgLgoKUmV2aWV3aW5nIHRoZSBwYXRjaCwgaXQgc2VlbXMgdGhlIGNvcmUgY2hhbmdlIHJlbW92ZXMgYG1pbW9fcHNgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBpZiAobWltb19wcyA9PSBJRUVFODAyMTFfU01QU19TVEFUSUMpYCBicmFuY2guIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGNoYW5nZSwgbWFraW5nIGl0IHByaW1lIGZvciBmdXp6aW5nLiBHaXZlbiB0aGUgVVNCIG5hdHVyZSBvZiB0aGUgZHJpdmVyLCBJIGNhbiBlYXNpbHkgdGFyZ2V0IHRoaXMgd2l0aCBkdW1teV9oY2Qgb3IgcmF3IGdhZGdldCBzZXR1cHMuIENvbnNpZGVyaW5nIHRoZSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgdGhlIGRyaXZlciYjMzk7cyBVU0IgYXNwZWN0LCBgV29ydGhGdXp6aW5nYCBpcyBkZWZpbml0ZWx5IHRydWUuCgpTbywgdG8gc3VtbWFyaXplOgoKKiAgIENvbmZpZ3M6IGBSVEw4MTkyQ1VgCiogICBGb2N1cyBTeW1ib2xzOiBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxNTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMODE5MkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMODE5MkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE1OjM2OjMzLjQ1MjYwNTkzOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4Njc5MTIzNDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUTDgxOTJDVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTU6MzY6MzMuNDUyNjE4NTI4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzg3Nzc4NzMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMWRjMjIwODA5YjFhN2Q3ZWY5YTYyYWI4ZDRlODIwNDRjZDliMzBjN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDE1OjM2OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuY1xcbmluZGV4IDk4OWU3Y2ZmOGUyMDEuLmU3NWY3ZWM0NGU2YTEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXFxuQEAgLTE5MTEsNyArMTkxMSw2IEBAIHN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdGJvb2wgc2hvcnRnaSA9IGZhbHNlO1xcbiBcXHR1OCByYXRlX21hc2tbNV07XFxuIFxcdHU4IG1hY2lkID0gMDtcXG4tXFx0dTggbWltb19wcyA9IElFRUU4MDIxMV9TTVBTX09GRjtcXG4gXFxuIFxcdHN0YV9lbnRyeSA9IChzdHJ1Y3QgcnRsX3N0YV9pbmZvICopIHN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuIFxcdHdpcmVsZXNzbW9kZSA9IHN0YV9lbnRyeS1cXHUwMDNld2lyZWxlc3NfbW9kZTtcXG5AQCAtMTk1Niw0NyArMTk1NSwzOCBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiBcXHRjYXNlIFdJUkVMRVNTX01PREVfTl81RzpcXG4gXFx0XFx0cmF0cl9pbmRleCA9IFJBVFJfSU5YX1dJUkVMRVNTX05HQjtcXG4gXFxuLVxcdFxcdGlmIChtaW1vX3BzID09IElFRUU4MDIxMV9TTVBTX1NUQVRJQykge1xcbi1cXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbi1cXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMDcwMDAwO1xcbi1cXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuLVxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwN2YwMDA7XFxuLVxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDA3ZjAwNTtcXG4rXFx0XFx0aWYgKHJ0bHBoeS1cXHUwMDNlcmZfdHlwZSA9PSBSRl8xVDJSIHx8XFxuK1xcdFxcdCAgICBydGxwaHktXFx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xcbitcXHRcXHRcXHRpZiAoY3VydHhid180MG1oeikge1xcbitcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGYwMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDA7XFxuK1xcdFxcdFxcdFxcdGVsc2VcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmZjAxNTtcXG4rXFx0XFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0XFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmMDAwMDtcXG4rXFx0XFx0XFx0XFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGZmMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDU7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fSBlbHNlIHtcXG4tXFx0XFx0XFx0aWYgKHJ0bHBoeS1cXHUwMDNlcmZfdHlwZSA9PSBSRl8xVDJSIHx8XFxuLVxcdFxcdFxcdCAgICBydGxwaHktXFx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xcbi1cXHRcXHRcXHRcXHRpZiAoY3VydHhid180MG1oeikge1xcbi1cXHRcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGYwMDAwO1xcbi1cXHRcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDA7XFxuLVxcdFxcdFxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmZjAxNTtcXG4tXFx0XFx0XFx0XFx0fSBlbHNlIHtcXG4tXFx0XFx0XFx0XFx0XFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmMDAwMDtcXG4tXFx0XFx0XFx0XFx0XFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGZmMDAwO1xcbi1cXHRcXHRcXHRcXHRcXHRlbHNlXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDU7XFxuLVxcdFxcdFxcdFxcdH1cXG4rXFx0XFx0XFx0aWYgKGN1cnR4YndfNDBtaHopIHtcXG4rXFx0XFx0XFx0XFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmMDAwMDtcXG4rXFx0XFx0XFx0XFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGZmMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZmYwMTU7XFxuIFxcdFxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdFxcdGlmIChjdXJ0eGJ3XzQwbWh6KSB7XFxuLVxcdFxcdFxcdFxcdFxcdGlmIChyc3NpX2xldmVsID09IDEpXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZjAwMDA7XFxuLVxcdFxcdFxcdFxcdFxcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmZjAwMDtcXG4tXFx0XFx0XFx0XFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGZmMDE1O1xcbi1cXHRcXHRcXHRcXHR9IGVsc2Uge1xcbi1cXHRcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGYwMDAwO1xcbi1cXHRcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZmYwMDA7XFxuLVxcdFxcdFxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmZjAwNTtcXG4tXFx0XFx0XFx0XFx0fVxcbitcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGYwMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZmYwMDA7XFxuK1xcdFxcdFxcdFxcdGVsc2VcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmZjAwNTtcXG4gXFx0XFx0XFx0fVxcbiBcXHRcXHR9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjozNC44NDE1NDMwNDhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNzI5MDE3MjI4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVEw4MTkyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBtYXNrIHVwZGF0ZSBsb2dpYyBpbiB0aGUgUmVhbHRlayBSVEw4MTkyQ1UgVVNCIFdpLUZpIGRyaXZlci4gSXQgcmVtb3ZlcyB0aGUgU01QUyBzdGF0aWMgY29uZGl0aW9uIGFuZCBzaW1wbGlmaWVzIHRoZSByYXRlIG1hc2sgY2FsY3VsYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkL3JhdyBnYWRnZXQpLiBUaGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgbG9naWMgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFkYzIyMDgwOWIxYTdkN2VmOWE2MmFiOGQ0ZTgyMDQ0Y2Q5YjMwYzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDE1OjM2OjMxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXG5pbmRleCA5ODllN2NmZjhlMjAxLi5lNzVmN2VjNDRlNmExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmNcbkBAIC0xOTExLDcgKzE5MTEsNiBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Ym9vbCBzaG9ydGdpID0gZmFsc2U7XG4gXHR1OCByYXRlX21hc2tbNV07XG4gXHR1OCBtYWNpZCA9IDA7XG4tXHR1OCBtaW1vX3BzID0gSUVFRTgwMjExX1NNUFNfT0ZGO1xuIFxuIFx0c3RhX2VudHJ5ID0gKHN0cnVjdCBydGxfc3RhX2luZm8gKikgc3RhLVx1MDAzZWRydl9wcml2O1xuIFx0d2lyZWxlc3Ntb2RlID0gc3RhX2VudHJ5LVx1MDAzZXdpcmVsZXNzX21vZGU7XG5AQCAtMTk1Niw0NyArMTk1NSwzOCBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Y2FzZSBXSVJFTEVTU19NT0RFX05fNUc6XG4gXHRcdHJhdHJfaW5kZXggPSBSQVRSX0lOWF9XSVJFTEVTU19OR0I7XG4gXG4tXHRcdGlmIChtaW1vX3BzID09IElFRUU4MDIxMV9TTVBTX1NUQVRJQykge1xuLVx0XHRcdGlmIChyc3NpX2xldmVsID09IDEpXG4tXHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwNzAwMDA7XG4tXHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMDdmMDAwO1xuLVx0XHRcdGVsc2Vcbi1cdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDA3ZjAwNTtcbitcdFx0aWYgKHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMlIgfHxcbitcdFx0ICAgIHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMVIpIHtcbitcdFx0XHRpZiAoY3VydHhid180MG1oeikge1xuK1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGYwMDAwO1xuK1x0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4rXHRcdFx0XHRlbHNlXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAxNTtcbitcdFx0XHR9IGVsc2Uge1xuK1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGYwMDAwO1xuK1x0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4rXHRcdFx0XHRlbHNlXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwNTtcbitcdFx0XHR9XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aWYgKHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMlIgfHxcbi1cdFx0XHQgICAgcnRscGh5LVx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xuLVx0XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMTU7XG4tXHRcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmMDAwMDtcbi1cdFx0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwMDtcbi1cdFx0XHRcdFx0ZWxzZVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwNTtcbi1cdFx0XHRcdH1cbitcdFx0XHRpZiAoY3VydHhid180MG1oeikge1xuK1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGYwMDAwO1xuK1x0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4rXHRcdFx0XHRlbHNlXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAxNTtcbiBcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMTU7XG4tXHRcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmMDAwMDtcbi1cdFx0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAwMDtcbi1cdFx0XHRcdFx0ZWxzZVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAwNTtcbi1cdFx0XHRcdH1cbitcdFx0XHRcdGlmIChyc3NpX2xldmVsID09IDEpXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmMDAwMDtcbitcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDAwO1xuK1x0XHRcdFx0ZWxzZVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDU7XG4gXHRcdFx0fVxuIFx0XHR9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjozNC44NDE1NDU2MThaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDc1OTYyMTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIGJlZW4gYXBwbGllZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jYC4gSXQgbG9va3MgbGlrZSBpdCdzIHJlbW92aW5nIHRoZSBgbWltb19wc2AgdmFyaWFibGUgYW5kIGEgc3BlY2lmaWMgY29uZGl0aW9uIHJlbGF0ZWQgdG8gaXQgd2l0aGluIHRoZSBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza2AgZnVuY3Rpb24uIFRoaXMgaXMgaW50ZXJlc3RpbmcuIFRoaXMgaXMgYSB3aXJlbGVzcyBkcml2ZXIgZm9yIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSwgd2hpY2ggSSByZWNvZ25pemUgaXMgYSBVU0IgZGV2aWNlLiBUaGUgZmFjdCB0aGF0IGl0J3MgVVNCIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGFib3V0IGZ1enppbmcsIHBhcnRpY3VsYXJseSBnaXZlbiB0aGF0IFVTQiBkZXZpY2VzIGNhbiBiZSBlbXVsYXRlZCB1c2luZyByYXcgVVNCIGdhZGdldHMuIFNvLCBteSBtaW5kIGlzIGFscmVhZHkganVtcGluZyB0byBwb3RlbnRpYWwgZnV6emluZyBzdHJhdGVnaWVzLlxuXG5Ob3csIGEgcXVpY2sgY2hlY2sgdG8gc2VlIGlmIEkgY2FuIHVzZSBtYWM4MDIxMV9od3NpbT8gTm8sIHRoYXQncyBhIHNvZnR3YXJlIHNpbXVsYXRvciwgbm90IHJlbGV2YW50IGhlcmUuIEhvd2V2ZXIsIHN5emthbGxlciBjb3VsZCBiZSBoZWxwZnVsIGJlY2F1c2UgaXQgY2FuIGZ1enogVVNCIGRyaXZlcnMgd2l0aCB0aGUgZHVtbXlfaGNkIGFuZCByYXcgZ2FkZ2V0LiBCdXQgZmlyc3QsIGxldCBtZSBjb25maXJtIG15IGFzc3VtcHRpb246IGlzIGBydGw4MTkyY3VgIGFjdHVhbGx5IGEgVVNCIGRyaXZlcj8gWWVzLCBkZWZpbml0ZWx5LiBOb3cgdGhhdCdzIGNvbmZpcm1lZCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyBmb3IgYHJ0bDgxOTJjdWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyMTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo0MC4zMTc1MTEwMzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzNTUwMDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVEw4MTkyQ1VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz05OD1jb25maWcgUlRMODgyMUFFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTEwOmNvbmZpZyBSVEw4MTkyQ1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMTEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkNVL1JUTDgxODhDVSBVU0IgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo0MC40MjEwNjc2MTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTYyOTY4NTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgYW5hbHl6aW5nIHRoYXQgcXVlc3Rpb246XG5cbioqRGVjb25zdHJ1Y3RpbmcgRGVwZW5kZW5jaWVzIG9mIFJUTDgxOTJDVSoqXG5cbk9rYXksIHNvIHRoZSB0YXNrIGlzIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiB0aGUgYFJUTDgxOTJDVWAgZHJpdmVyLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSwgaXMgdG8gYXZvaWQganVtcGluZyBpbnRvIGNvZGUgaW1tZWRpYXRlbHkuIEknZCBiZWdpbiBieSB0aGlua2luZyBhYm91dCB0aGUgYnJvYWRlciBjb250ZXh0IG9mIGEgdHlwaWNhbCBuZXR3b3JrIGRyaXZlci5cblxuSSdtIGFzc3VtaW5nIHRoaXMgaXMgYSBMaW51eC1iYXNlZCBzeXN0ZW0sIGxpa2VseSB0YXJnZXRpbmcgYSBzcGVjaWZpYyBoYXJkd2FyZSBwbGF0Zm9ybS4gSeKAmWxsIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGV4dGVybmFsIGNvbXBvbmVudHMgb3IgbGlicmFyaWVzIHRoaXMgZHJpdmVyLCBgUlRMODE5MkNVYCwgcmVsaWVzIG9uIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBjb3VsZCBpbmNsdWRlLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHRoZSBrZXJuZWwgaXRzZWxmLCBvdGhlciBrZXJuZWwgbW9kdWxlcywgc3BlY2lmaWMgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXJzIChIQUxzKSBpZiBpdCBleGlzdHMsIG9yIGV2ZW4gdXNlcnNwYWNlIHV0aWxpdGllcyBmb3IgY29uZmlndXJhdGlvbi4gSSB3b3VsZCBndWVzcywgYmVpbmcgYSBSZWFsdGVrIGRyaXZlciwgaXQgbWlnaHQgcmVseSBvbiBhIHByb3ByaWV0YXJ5IEhBTCwgb3IgYXQgbGVhc3QgYSBzcGVjaWZpYyBrZXJuZWwgdmVyc2lvbiBmb3IgY29tcGF0aWJpbGl0eS5cblxuSSB3b3VsZCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGFuZCBhbnkgYXNzb2NpYXRlZCBjb25maWd1cmF0aW9ucy4gRG9lcyBpdCByZWx5IG9uIGEgc3BlY2lmaWMgbWFrZWZpbGUgb3IgS2NvbmZpZyBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBrZXJuZWwgaGVhZGVycyB0aGF0IG5lZWQgdG8gYmUgaW5jbHVkZWQgYW5kIHByZXNlbnQgYXQgY29tcGlsZSB0aW1lPyBLbm93aW5nIHRoZSBrZXJuZWwncyB2ZXJzaW9uIGFuZCBjb25maWd1cmF0aW9uIGNvdWxkIG9mZmVyIGluc2lnaHRzIGludG8gYW55IHNwZWNpZmljIGludGVyZmFjZSBvciBmdW5jdGlvbmFsaXR5LiBcblxuSSdkIGFsc28gY29uc2lkZXIgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYW5kIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBjb21wb25lbnRzLiBEb2VzIGl0IG5lZWQgYSBzcGVjaWZpYyBmaXJtd2FyZSB0byBvcGVyYXRlPyBQZXJoYXBzIHNvbWUgb2YgdGhlIGRyaXZlcidzIGZ1bmN0aW9ucyBhcmUgaGFuZGxlZCBpbiBmaXJtd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg5MCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE1OjM2OjQ3LjM4NDAzODc4N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjU4MjcwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTI9bWVudWNvbmZpZyBSVExfQ0FSRFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIHJ0bHdpZmkgZmFtaWx5IG9mIGRldmljZXNcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IChQQ0kgfHwgVVNCKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xND1jb25maWcgUlRMODE5MkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkNFL1JUTDgxODhDRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTY6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNy1cXHRzZWxlY3QgUlRMODE5MkNfQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0yNj1jb25maWcgUlRMODE5MlNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MlNFL1JUTDgxOTFTRSBQQ0llIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoyODpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTI5LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0zNz1jb25maWcgUlRMODE5MkRFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMzgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkRFL1JUTDgxODhERSBQQ0llIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzozOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTQwLVxcdHNlbGVjdCBSVEw4MTkyRF9DT01NT05cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTQ5PWNvbmZpZyBSVEw4NzIzQUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy01MC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayBSVEw4NzIzQUUgUENJZSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6NTE6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy01Mi1cXHRzZWxlY3QgUlRMV0lGSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9NjI9Y29uZmlnIFJUTDg3MjNCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIFJUTDg3MjNCRSBQQ0llIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo2NDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTY1LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz03NT1jb25maWcgUlRMODE4OEVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctNzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE4OEVFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo3NzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTc4LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz04Nj1jb25maWcgUlRMODE5MkVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctODctXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkVFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo4ODpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTg5LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz05OD1jb25maWcgUlRMODgyMUFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctOTktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODgyMUFFL1JUTDg4MTJBRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTAwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTAxLVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xMTA9Y29uZmlnIFJUTDgxOTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTExMS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayBSVEw4MTkyQ1UvUlRMODE4OENVIFVTQiBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTEyOlxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTEzLVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xMjI9Y29uZmlnIFJUTDgxOTJEVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEyMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayBSVEw4MTkyRFUgVVNCIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxMjQ6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMjUtXFx0c2VsZWN0IFJUTFdJRklcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTE0ND1jb25maWcgUlRMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE0NS1cXHRib29sIFxcXCJEZWJ1Z2dpbmcgb3V0cHV0IGZvciBydGx3aWZpIGRyaXZlciBmYW1pbHlcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTQ2OlxcdGRlcGVuZHMgb24gUlRMV0lGSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE0Ny1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTE1Mz1jb25maWcgUlRMODE5MkNfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTU0LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTU1OlxcdGRlcGVuZHMgb24gUlRMODE5MkNFIHx8IFJUTDgxOTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE1Ni1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTE2MT1jb25maWcgUlRMODcyM19DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNjItXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxNjM6XFx0ZGVwZW5kcyBvbiBSVEw4NzIzQUUgfHwgUlRMODcyM0JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTY0LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTY2PWNvbmZpZyBSVExCVENPRVhJU1RcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNjctXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxNjg6XFx0ZGVwZW5kcyBvbiBSVEw4NzIzQUUgfHwgUlRMODcyM0JFIHx8IFJUTDg4MjFBRSB8fCBSVEw4MTkyRUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNjktXFx0ZGVmYXVsdCB5XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE1OjM2OjQ3LjQ3NjYzMDY4OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1ODU1MTM4ODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSVEw4MTkyQ1UgTW9kdWxlJ3MgRGVwZW5kZW5jaWVzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgYFJUTDgxOTJDVWAgZHJpdmVyIHJlbGllcyBvbiB0aGUgYFVTQmAgc3Vic3lzdGVtLCBhbmQgaW4gdHVybiwgdGhlIGBSVExfQ0FSRFNgIG1vZHVsZS4gYFJUTF9DQVJEU2AgaXRzZWxmIHNlZW1zIHRvIGJlIGludHJpY2F0ZWx5IGxpbmtlZCB3aXRoIGBNQUM4MDIxMWAgYW5kIGVpdGhlciBgUENJYCBvciBgVVNCYCDigJMgd2hpY2ggbWFrZXMgc2Vuc2UgaW4gdGhlIGNvbnRleHQgb2YgbmV0d29yayBjYXJkIGFyY2hpdGVjdHVyZXMuIE5vdywgdGhlIGtleSBmdW5jdGlvbiBJJ20gbG9va2luZyBhdCwgdGhlIG9uZSBJJ20gZm9jdXNlZCBvbiwgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGV0ZXJtaW5lIGl0cyBhY2Nlc3NpYmlsaXR5IHdpdGhpbiB0aGUgb3ZlcmFsbCBzeXN0ZW0uIEkgbmVlZCB0byB0cmFjZSBpdHMgY2FsbCBncmFwaCBhbmQgdW5kZXJzdGFuZCBpZiBpdCdzIGFjdHVhbGx5IGJlaW5nIHVzZWQuIFRoaXMgZGVwZW5kZW5jeSBzdHJ1Y3R1cmUgZ2l2ZXMgbWUgYSBzdGFydGluZyBwb2ludCwgbm93IHRoZSBnb2FsIGlzIHRvIHNlZSBob3cgdGhpcyBhbGwgY29ubmVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNzAsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo1Mi4wNjIxNDlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIxOTY2NTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM9MTgwNT1zdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YWJsZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0xODkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYzoxODkzOnN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTE4OTQtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM9MjAzMD12b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0yMDM2LVxcdGlmIChydGxwcml2LVxcdTAwM2VkbS51c2VyYW1hc2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jOjIwMzc6XFx0XFx0cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFzayhodywgc3RhLCByc3NpX2xldmVsLCB1cGRhdGVfYncpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0yMDM4LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTU6MzY6NTIuMTI0MzU0MzE0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQzNTg5MTU0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSYXRlIFRhYmxlIFVwZGF0ZSoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgLiBJIHNlZSBpdCdzIGNhbGxpbmcgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgLCB3aGljaCBpcyBpbnRlcmVzdGluZyDigJMgbGlrZWx5IGluZGljYXRpbmcgc29tZSBraW5kIG9mIHJhdGUgc2VsZWN0aW9uIG9yIG1hc2sgbWFuaXB1bGF0aW9uLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCB0aGF0J3MgdGhlIGRlcGVuZGVuY3kuIEJ1dCB3aGF0IHRyaWdnZXJzICp0aGlzKiBmdW5jdGlvbiwgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAsIGluIHRoZSBmaXJzdCBwbGFjZT9cIiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dC4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgaXRzIGNhbGwgc2l0ZXMuIFdoYXQgZXZlbnRzIG9yIHN0YXRlIGNoYW5nZXMgbmVjZXNzaXRhdGUgdXBkYXRpbmcgdGhlIHJhdGUgdGFibGU/IElzIHRoaXMgdHJpZ2dlcmVkIG9uIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCwgY2hhbm5lbCBjaGFuZ2VzLCBwb3dlciBzYXZlIGV2ZW50cywgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRpbWUgdG8gZGlnIGludG8gdGhlIGNvZGUgYW5kIHNlZSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5ICp1c2VkKi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGNydWNpYWwgY29udGV4dCBJIG5lZWQgdG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIHdpdGhpbi4gSeKAmWxsIGxvb2sgZm9yIHRoZSBjYWxscyB0byBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCB0byBmaW5kIHRoZSB0cmlnZ2VyIGFuZCB1c2UgdGhhdCBpbmZvcm1hdGlvbiB0byBhc3Nlc3MgdGhlIHJhdGUgbWFuYWdlbWVudCBzY2hlbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3NzksIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo1Ni41NjAyNTA1MVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjI5MDkzODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYz0xODkzPXN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMjAyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM6MjAzMDp2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMjAzMS1cXHRcXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuaD03OD1ib29sIHJ0bDkyY3VfcGh5X21hY19jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuaDo3OTp2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmgtODAtXFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY3VfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDAtXFx0LnNldF9od19yZWcgPSBydGw5MmN1X3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jOjEwMTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDItXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyY3VfdHhfZmlsbF9kZXNjLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo1Ni42MjMxNjk5MzRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI4NDY3NzgxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJhdGUgVGFibGUgVXBkYXRlIGluIHRoZSBSVEw4MTkyQ1UgVVNCIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY2hhbmdlLCBhbmQgaXQgc2VlbXMgdGhlIGNvcmUgb2YgaXQgcmV2b2x2ZXMgYXJvdW5kIGhvdyB0aGUgcmF0ZSB0YWJsZSBpcyBiZWluZyB1cGRhdGVkIHdpdGhpbiB0aGUgYHJ0bDgxOTJjdV9oYWxfb3BzYCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSBhc3NpZ25lZCB0byBgLnVwZGF0ZV9yYXRlX3RibGAuIFRoaXMgaXMsIGZ1bmRhbWVudGFsbHksIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBVU0IgZHJpdmVyIGZvciB0aGUgUlRMODE5MkNVLlxuXG5UaGUgZW50cnkgcG9pbnQgc2VlbXMgdG8gYmUgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuIEJ1dCBob2xkIG9uLi4uIHRoYXQgZnVuY3Rpb24gaXMsIGluIHR1cm4sIGNhbGxlZCBieSBgdXBkYXRlX3JhdGVfdGJsYCB3aGljaCBpcyBkZWZpbmVkIGluIGBydGxfaGFsX29wc2AuIEFscmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGNhbGwgY2hhaW4gYW5kIHdoZXJlIGB1cGRhdGVfcmF0ZV90YmxgIGl0c2VsZiBpcyBiZWluZyBpbnZva2VkLiBCZXN0IHRvIHRyYWNlIGJhY2sgdG8gd2hlcmUgKnRoYXQqIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBnZXQgdGhlIGZ1bGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzY4MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNzowMC45MDc4NTA1NTRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMzU5ODY3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1cGRhdGVfcmF0ZV90YmxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvYmFzZS5jPTI0MzQ9aW50IHJ0bF9zZW5kX3NtcHNfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYy0yNDcwLVxcdFxcdHN0YV9lbnRyeS1cXHUwMDNlbWltb19wcyA9IHNtcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYzoyNDcxOlxcdFxcdC8qIHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSwgMCwgdHJ1ZSk7ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYy0yNDcyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz04NTc9c3RhdGljIGludCBydGxfb3Bfc3RhX2FkZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtODk2LVxcdFxcdFxcdFxcXCJBZGQgc3RhIGFkZHIgaXMgJXBNXFxcXG5cXFwiLCBzdGEtXFx1MDAzZWFkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6ODk3OlxcdFxcdHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSwgMCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy04OTgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xMDA4PXN0YXRpYyB2b2lkIHJ0bF9vcF9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy0xMTI1LVxcdFxcdFxcdGlmICh2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jOjExMjY6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtMTEyNy1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICB0cnVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYz0xMTMxPXN0YXRpYyB2b2lkIHJ0bDg4ZV9kbV9yZWZyZXNoX3JhdGVfYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk0LVxcdFxcdFxcdGlmIChzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxODhlZS9kbS5jOjExOTU6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk2LVxcdFxcdFxcdFxcdFxcdFxcdFxcdHBfcmEtXFx1MDAzZXJhdHJfc3RhdGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmM9MTkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE4OGVlX2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmMtMjExLVxcdC5zZXRfaHdfcmVnID0gcnRsODhlZV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvc3cuYzoyMTI6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDg4ZWVfdXBkYXRlX2hhbF9yYXRlX3RibCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmMtMjEzLVxcdC5maWxsX3R4X2Rlc2MgPSBydGw4OGVlX3R4X2ZpbGxfZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYz0xNzA9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY2VfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYy0xODgtXFx0LnNldF9od19yZWcgPSBydGw5MmNlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jOjE4OTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJjZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYy0xOTAtXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyY2VfdHhfZmlsbF9kZXNjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jPTg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE5MmN1X2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAwLVxcdC5zZXRfaHdfcmVnID0gcnRsOTJjdV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYzoxMDE6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAyLVxcdC5maWxsX3R4X2Rlc2MgPSBydGw5MmN1X3R4X2ZpbGxfZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYz0xODc9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyZGVfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYy0yMDUtXFx0LnNldF9od19yZWcgPSBydGw5MmRlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkZS9zdy5jOjIwNjpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJkX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkZS9zdy5jLTIwNy1cXHQuZmlsbF90eF9kZXNjID0gcnRsOTJkZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmM9MTg1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE5MmR1X2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmMtMjAxLVxcdC5zZXRfaHdfcmVnID0gcnRsOTJkdV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvc3cuYzoyMDI6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyZF91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvc3cuYy0yMDMtXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyZHVfdHhfZmlsbF9kZXNjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jPTg1Nj1zdGF0aWMgdm9pZCBydGw5MmVlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jLTg5MC1cXHRcXHRcXHRpZiAoc3RhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvZG0uYzo4OTE6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvZG0uYy04OTItXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgcF9yYS1cXHUwMDNlcmF0cl9zdGF0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYz0xNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyZWVfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYy0xOTctXFx0LnNldF9od19yZWcgPSBydGw5MmVlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9zdy5jOjE5ODpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJlZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYy0xOTktXFx0LnJ4X2Rlc2NfYnVmZl9yZW1haW5lZF9jbnQgPSBydGw5MmVlX3J4X2Rlc2NfYnVmZl9yZW1haW5lZF9jbnQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmM9MjAxPXN0YXRpYyB2b2lkIF9ydGw5MnNfZG1fcmVmcmVzaF9yYXRlYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYy0yNzQtXFx0XFx0XFx0aWYgKHN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmM6Mjc1OlxcdFxcdFxcdFxcdHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmMtMjc2LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIHJhLVxcdTAwM2VyYXRyX3N0YXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jPTIyND1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJzZV9oYWxfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jLTI0Mi1cXHQuc2V0X2h3X3JlZyA9IHJ0bDkyc2Vfc2V0X2h3X3JlZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL3N3LmM6MjQzOlxcdC51cGRhdGVfcmF0ZV90YmwgPSBydGw5MnNlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jLTI0NC1cXHQuZmlsbF90eF9kZXNjID0gcnRsOTJzZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2FlL2RtLmM9NTU0PXN0YXRpYyB2b2lkIHJ0bDg3MjNlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9kbS5jLTYyNi1cXHRcXHRcXHRpZiAoc3RhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYzo2Mjc6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYy02MjgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgcF9yYS1cXHUwMDNlcmF0cl9zdGF0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvc3cuYz0xODY9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4NzIzZV9oYWxfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jLTIwNC1cXHQuc2V0X2h3X3JlZyA9IHJ0bDg3MjNlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jOjIwNTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2VfdXBkYXRlX2hhbF9yYXRlX3RibCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2FlL3N3LmMtMjA2LVxcdC5maWxsX3R4X2Rlc2MgPSBydGw4NzIzZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmM9OTAyPXN0YXRpYyB2b2lkIHJ0bDg3MjNiZV9kbV9yZWZyZXNoX3JhdGVfYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYy05NjAtXFx0XFx0XFx0aWYgKHN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmM6OTYxOlxcdFxcdFxcdFxcdHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmMtOTYyLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIHBfcmEtXFx1MDAzZXJhdHJfc3RhdGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmM9MTkwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODcyM2JlX2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmMtMjA4LVxcdC5zZXRfaHdfcmVnID0gcnRsODcyM2JlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNiZS9zdy5jOjIwOTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2JlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNiZS9zdy5jLTIxMC1cXHQuZmlsbF90eF9kZXNjID0gcnRsODcyM2JlX3R4X2ZpbGxfZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvZG0uYz0yMzQyPXN0YXRpYyB2b2lkIHJ0bDg4MjFhZV9kbV9yZWZyZXNoX3JhdGVfYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvZG0uYy0yNDAwLVxcdFxcdFxcdGlmIChzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9kbS5jOjI0MDE6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODgyMWFlL2RtLmMtMjQwMi1cXHRcXHRcXHRcXHRcXHRcXHRzdGEsIHBfcmEtXFx1MDAzZXJhdHJfc3RhdGUsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jPTIzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDg4MjFhZV9oYWxfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jLTI1MC1cXHQuc2V0X2h3X3JlZyA9IHJ0bDg4MjFhZV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYzoyNTE6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDg4MjFhZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYy0yNTItXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDg4MjFhZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oPTIxNjA9c3RydWN0IHJ0bF9oYWxfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS93aWZpLmgtMjE4Ni1cXHR2b2lkICgqc2V0X2h3X3JlZykoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHU4IHZhcmlhYmxlLCB1OCAqdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oOjIxODc6XFx0dm9pZCAoKnVwZGF0ZV9yYXRlX3RibCkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3dpZmkuaC0yMTg4LVxcdFxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHU4IHJzc2lfbGV2ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTU6Mzc6MDEuMDIxNDU0MzYzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwOTgxNTAyNjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCBGdW5jdGlvbiBhbmQgaXRzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSd2ZSBpZGVudGlmaWVkIHRoZSB0YXJnZXQgZnVuY3Rpb24gYXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuIEkndmUgY29uZmlybWVkIGl0J3MgcmVhY2hhYmxlIGZyb20gc2V2ZXJhbCBtYWM4MDIxMSBjYWxsYmFja3Mg4oCTIGBydGxfb3Bfc3RhX2FkZGAsIGBydGxfb3BfYnNzX2luZm9fY2hhbmdlZGAg4oCTIGFuZCBvdGhlciBwYXRocyBsaWtlIGBydGxfc2VuZF9zbXBzX2FjdGlvbmAgYW5kIGBydGw4OGVfZG1fcmVmcmVzaF9yYXRlX2FkYXB0aXZlX21hc2tgLiBUaGlzIGNvbmZpcm1zIGl0cyByZWxldmFuY2UuIFRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgdGhlIGBSVEw4MTkyQ1VgLCB3aGljaCwgZnJvbSBteSBleHBlcmllbmNlLCBpcyBhIFVTQiBkcml2ZXIuXG5cbkkgaW5pdGlhbGx5IGNvbnNpZGVyZWQgdGhlIG5lY2Vzc2FyeSBjb25maWdzIGJlaW5nIGBSVEw4MTkyQ1VgLCBgTUFDODAyMTFgLCBhbmQgYFVTQmAsIGJ1dCByZWFsaXplZCBgUlRMODE5MkNVYCBpbmhlcmVudGx5IGRlcGVuZHMgb24gYm90aCBgVVNCYCBhbmQgYE1BQzgwMjExYC4gU2luY2UgYFJUTDgxOTJDVWAgaXMgdHJpc3RhdGUsIEkgY29uZmlybWVkIHRoYXQgaXQgaXMgdGhlIG9ubHkgbmVjZXNzYXJ5IGNvbmZpZy4gVGhlIG1haW4gZnVuY3Rpb24gdG8gZm9jdXMgb24gaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAsIGJ1dCBJIG5vdGUgdGhhdCBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza2AgaXMgc3RhdGljOyB0aGVyZWZvcmUsIGl0IGlzIGxpa2VseSBpbmxpbmVkLiBJIHZlcmlmaWVkIHRoYXQgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAgaXMgaW5kZWVkIGV4cG9ydGVkIGFuZCBub24tc3RhdGljOiBgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90Ymwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHU4IHJzc2lfbGV2ZWwsIGJvb2wgdXBkYXRlX2J3KWAuXG5cbkkndmUgYWxzbyBkb3VibGUtY2hlY2tlZCB0aGUgY29uZmlncy4gYFJUTDgxOTJDVWAgYWxvbmUgaXMgc3VmZmljaWVudCwgYXMgYFJUTFdJRklgIGFuZCBgUlRMODE5MkNfQ09NTU9OYCBhcmUgc2VsZWN0ZWQgYnkgYFJUTDgxOTJDVWAuXG5cblJldmlld2luZyB0aGUgcGF0Y2gsIGl0IHNlZW1zIHRoZSBjb3JlIGNoYW5nZSByZW1vdmVzIGBtaW1vX3BzYCBhbmQgc3BlY2lmaWNhbGx5IHRoZSBgaWYgKG1pbW9fcHMgPT0gSUVFRTgwMjExX1NNUFNfU1RBVElDKWAgYnJhbmNoLiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIG1ha2luZyBpdCBwcmltZSBmb3IgZnV6emluZy4gR2l2ZW4gdGhlIFVTQiBuYXR1cmUgb2YgdGhlIGRyaXZlciwgSSBjYW4gZWFzaWx5IHRhcmdldCB0aGlzIHdpdGggZHVtbXlfaGNkIG9yIHJhdyBnYWRnZXQgc2V0dXBzLiBDb25zaWRlcmluZyB0aGUgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIHRoZSBkcml2ZXIncyBVU0IgYXNwZWN0LCBgV29ydGhGdXp6aW5nYCBpcyBkZWZpbml0ZWx5IHRydWUuXG5cblNvLCB0byBzdW1tYXJpemU6XG5cbiogICBDb25maWdzOiBgUlRMODE5MkNVYFxuKiAgIEZvY3VzIFN5bWJvbHM6IGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExODE1LCJPdXRwdXRUb2tlbnMiOjE0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNzoxMi4wMDI5NTkwNThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjg3NTE1MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUTDgxOTJDVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVEw4MTkyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBtYXNrIHVwZGF0ZSBsb2dpYyBpbiB0aGUgUmVhbHRlayBSVEw4MTkyQ1UgVVNCIFdpLUZpIGRyaXZlci4gSXQgcmVtb3ZlcyB0aGUgU01QUyBzdGF0aWMgY29uZGl0aW9uIGFuZCBzaW1wbGlmaWVzIHRoZSByYXRlIG1hc2sgY2FsY3VsYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkL3JhdyBnYWRnZXQpLiBUaGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgbG9naWMgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 14:00:52 +0000 UTC FinishedAt: 2026-08-03 15:37:13 +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": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8192CU" ], "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": "6c5fc504d0d6934132637aa3db4b9b58148eaa78", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "RTL8192CU" ], "series_id": "4f5729d8-f4ed-49d2-be4b-3e4ba715eb39" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "rtl92cu_update_hal_rate_tbl" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1JUTDgxOTJDVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3J0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBtYXNrIHVwZGF0ZSBsb2dpYyBpbiB0aGUgUmVhbHRlayBSVEw4MTkyQ1UgVVNCIFdpLUZpIGRyaXZlci4gSXQgcmVtb3ZlcyB0aGUgU01QUyBzdGF0aWMgY29uZGl0aW9uIGFuZCBzaW1wbGlmaWVzIHRoZSByYXRlIG1hc2sgY2FsY3VsYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkL3JhdyBnYWRnZXQpLiBUaGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgbG9naWMgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZGMyMjA4MDliMWE3ZDdlZjlhNjJhYjhkNGU4MjA0NGNkOWIzMGM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMyAxNTozNjozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmNcbmluZGV4IDk4OWU3Y2ZmOGUyMDEuLmU3NWY3ZWM0NGU2YTEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuY1xuQEAgLTE5MTEsNyAmIzQzOzE5MTEsNiBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Ym9vbCBzaG9ydGdpID0gZmFsc2U7XG4gXHR1OCByYXRlX21hc2tbNV07XG4gXHR1OCBtYWNpZCA9IDA7XG4tXHR1OCBtaW1vX3BzID0gSUVFRTgwMjExX1NNUFNfT0ZGO1xuIFxuIFx0c3RhX2VudHJ5ID0gKHN0cnVjdCBydGxfc3RhX2luZm8gKikgc3RhLVx1MDAzZWRydl9wcml2O1xuIFx0d2lyZWxlc3Ntb2RlID0gc3RhX2VudHJ5LVx1MDAzZXdpcmVsZXNzX21vZGU7XG5AQCAtMTk1Niw0NyAmIzQzOzE5NTUsMzggQEAgc3RhdGljIHZvaWQgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbiBcdGNhc2UgV0lSRUxFU1NfTU9ERV9OXzVHOlxuIFx0XHRyYXRyX2luZGV4ID0gUkFUUl9JTlhfV0lSRUxFU1NfTkdCO1xuIFxuLVx0XHRpZiAobWltb19wcyA9PSBJRUVFODAyMTFfU01QU19TVEFUSUMpIHtcbi1cdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMDcwMDAwO1xuLVx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDA3ZjAwMDtcbi1cdFx0XHRlbHNlXG4tXHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwN2YwMDU7XG4mIzQzO1x0XHRpZiAocnRscGh5LVx1MDAzZXJmX3R5cGUgPT0gUkZfMVQyUiB8fFxuJiM0MztcdFx0ICAgIHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMVIpIHtcbiYjNDM7XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbiYjNDM7XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGYwMDAwO1xuJiM0MztcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMTU7XG4mIzQzO1x0XHRcdH0gZWxzZSB7XG4mIzQzO1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmMDAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4mIzQzO1x0XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGZmMDA1O1xuJiM0MztcdFx0XHR9XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aWYgKHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMlIgfHxcbi1cdFx0XHQgICAgcnRscGh5LVx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xuLVx0XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMTU7XG4tXHRcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmMDAwMDtcbi1cdFx0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwMDtcbi1cdFx0XHRcdFx0ZWxzZVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwNTtcbi1cdFx0XHRcdH1cbiYjNDM7XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbiYjNDM7XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGYwMDAwO1xuJiM0MztcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMTU7XG4gXHRcdFx0fSBlbHNlIHtcbi1cdFx0XHRcdGlmIChjdXJ0eGJ3XzQwbWh6KSB7XG4tXHRcdFx0XHRcdGlmIChyc3NpX2xldmVsID09IDEpXG4tXHRcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGYwMDAwO1xuLVx0XHRcdFx0XHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXG4tXHRcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDAwO1xuLVx0XHRcdFx0XHRlbHNlXG4tXHRcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDE1O1xuLVx0XHRcdFx0fSBlbHNlIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDU7XG4tXHRcdFx0XHR9XG4mIzQzO1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbiYjNDM7XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmMDAwMDtcbiYjNDM7XHRcdFx0XHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXG4mIzQzO1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4mIzQzO1x0XHRcdFx0ZWxzZVxuJiM0MztcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDA1O1xuIFx0XHRcdH1cbiBcdFx0fVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtSVEw4MTkyQ1UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJhdGUgbWFzayB1cGRhdGUgbG9naWMgaW4gdGhlIFJlYWx0ZWsgUlRMODE5MkNVIFVTQiBXaS1GaSBkcml2ZXIuIEl0IHJlbW92ZXMgdGhlIFNNUFMgc3RhdGljIGNvbmRpdGlvbiBhbmQgc2ltcGxpZmllcyB0aGUgcmF0ZSBtYXNrIGNhbGN1bGF0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBVU0IgZHJpdmVyLCB3aGljaCBjYW4gYmUgZnV6emVkIHVzaW5nIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZC9yYXcgZ2FkZ2V0KS4gVGhlIGVudHJ5IHBvaW50IGZvciB0aGlzIGxvZ2ljIGlzIGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMWRjMjIwODA5YjFhN2Q3ZWY5YTYyYWI4ZDRlODIwNDRjZDliMzBjNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMgMTU6MzY6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMKaW5kZXggOTg5ZTdjZmY4ZTIwMS4uZTc1ZjdlYzQ0ZTZhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYwpAQCAtMTkxMSw3ICYjNDM7MTkxMSw2IEBAIHN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJYm9vbCBzaG9ydGdpID0gZmFsc2U7CiAJdTggcmF0ZV9tYXNrWzVdOwogCXU4IG1hY2lkID0gMDsKLQl1OCBtaW1vX3BzID0gSUVFRTgwMjExX1NNUFNfT0ZGOwogCiAJc3RhX2VudHJ5ID0gKHN0cnVjdCBydGxfc3RhX2luZm8gKikgc3RhLSZndDtkcnZfcHJpdjsKIAl3aXJlbGVzc21vZGUgPSBzdGFfZW50cnktJmd0O3dpcmVsZXNzX21vZGU7CkBAIC0xOTU2LDQ3ICYjNDM7MTk1NSwzOCBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LAogCWNhc2UgV0lSRUxFU1NfTU9ERV9OXzVHOgogCQlyYXRyX2luZGV4ID0gUkFUUl9JTlhfV0lSRUxFU1NfTkdCOwogCi0JCWlmIChtaW1vX3BzID09IElFRUU4MDIxMV9TTVBTX1NUQVRJQykgewotCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKLQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDA3MDAwMDsKLQkJCWVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMikKLQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDA3ZjAwMDsKLQkJCWVsc2UKLQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDA3ZjAwNTsKJiM0MzsJCWlmIChydGxwaHktJmd0O3JmX3R5cGUgPT0gUkZfMVQyUiB8fAomIzQzOwkJICAgIHJ0bHBoeS0mZ3Q7cmZfdHlwZSA9PSBSRl8xVDFSKSB7CiYjNDM7CQkJaWYgKGN1cnR4YndfNDBtaHopIHsKJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZmYwMTU7CiYjNDM7CQkJfSBlbHNlIHsKJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZmYwMDU7CiYjNDM7CQkJfQogCQl9IGVsc2UgewotCQkJaWYgKHJ0bHBoeS0mZ3Q7cmZfdHlwZSA9PSBSRl8xVDJSIHx8Ci0JCQkgICAgcnRscGh5LSZndDtyZl90eXBlID09IFJGXzFUMVIpIHsKLQkJCQlpZiAoY3VydHhid180MG1oeikgewotCQkJCQlpZiAocnNzaV9sZXZlbCA9PSAxKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZjAwMDA7Ci0JCQkJCWVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMikKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGZmMDAwOwotCQkJCQllbHNlCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAxNTsKLQkJCQl9IGVsc2UgewotCQkJCQlpZiAocnNzaV9sZXZlbCA9PSAxKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MDAwZjAwMDA7Ci0JCQkJCWVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMikKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDAwMGZmMDAwOwotCQkJCQllbHNlCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwMDBmZjAwNTsKLQkJCQl9CiYjNDM7CQkJaWYgKGN1cnR4YndfNDBtaHopIHsKJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMTU7CiAJCQl9IGVsc2UgewotCQkJCWlmIChjdXJ0eGJ3XzQwbWh6KSB7Ci0JCQkJCWlmIChyc3NpX2xldmVsID09IDEpCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmMDAwMDsKLQkJCQkJZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMDA7Ci0JCQkJCWVsc2UKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGZmMDE1OwotCQkJCX0gZWxzZSB7Ci0JCQkJCWlmIChyc3NpX2xldmVsID09IDEpCi0JCQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmMDAwMDsKLQkJCQkJZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKQotCQkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMDA7Ci0JCQkJCWVsc2UKLQkJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGZmMDA1OwotCQkJCX0KJiM0MzsJCQkJaWYgKHJzc2lfbGV2ZWwgPT0gMSkKJiM0MzsJCQkJCXJhdHJfYml0bWFwICZhbXA7PSAweDBmMGYwMDAwOwomIzQzOwkJCQllbHNlIGlmIChyc3NpX2xldmVsID09IDIpCiYjNDM7CQkJCQlyYXRyX2JpdG1hcCAmYW1wOz0gMHgwZjBmZjAwMDsKJiM0MzsJCQkJZWxzZQomIzQzOwkJCQkJcmF0cl9iaXRtYXAgJmFtcDs9IDB4MGYwZmYwMDU7CiAJCQl9CiAJCX0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxNTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjE5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIGJlZW4gYXBwbGllZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jYC4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyByZW1vdmluZyB0aGUgYG1pbW9fcHNgIHZhcmlhYmxlIGFuZCBhIHNwZWNpZmljIGNvbmRpdGlvbiByZWxhdGVkIHRvIGl0IHdpdGhpbiB0aGUgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nLiBUaGlzIGlzIGEgd2lyZWxlc3MgZHJpdmVyIGZvciB0aGUgUmVhbHRlayBSVEw4MTkyQ1UsIHdoaWNoIEkgcmVjb2duaXplIGlzIGEgVVNCIGRldmljZS4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBVU0IgaW1tZWRpYXRlbHkgbWFrZXMgbWUgdGhpbmsgYWJvdXQgZnV6emluZywgcGFydGljdWxhcmx5IGdpdmVuIHRoYXQgVVNCIGRldmljZXMgY2FuIGJlIGVtdWxhdGVkIHVzaW5nIHJhdyBVU0IgZ2FkZ2V0cy4gU28sIG15IG1pbmQgaXMgYWxyZWFkeSBqdW1waW5nIHRvIHBvdGVudGlhbCBmdXp6aW5nIHN0cmF0ZWdpZXMuCgpOb3csIGEgcXVpY2sgY2hlY2sgdG8gc2VlIGlmIEkgY2FuIHVzZSBtYWM4MDIxMV9od3NpbT8gTm8sIHRoYXQmIzM5O3MgYSBzb2Z0d2FyZSBzaW11bGF0b3IsIG5vdCByZWxldmFudCBoZXJlLiBIb3dldmVyLCBzeXprYWxsZXIgY291bGQgYmUgaGVscGZ1bCBiZWNhdXNlIGl0IGNhbiBmdXp6IFVTQiBkcml2ZXJzIHdpdGggdGhlIGR1bW15X2hjZCBhbmQgcmF3IGdhZGdldC4gQnV0IGZpcnN0LCBsZXQgbWUgY29uZmlybSBteSBhc3N1bXB0aW9uOiBpcyBgcnRsODE5MmN1YCBhY3R1YWxseSBhIFVTQiBkcml2ZXI/IFllcywgZGVmaW5pdGVseS4gTm93IHRoYXQmIzM5O3MgY29uZmlybWVkLCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyBmb3IgYHJ0bDgxOTJjdWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJUTDgxOTJDVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9OTg9Y29uZmlnIFJUTDg4MjFBRVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjExMDpjb25maWcgUlRMODE5MkNVXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMTEtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIFJUTDgxOTJDVS9SVEw4MTg4Q1UgVVNCIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4OTAKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhbmFseXppbmcgdGhhdCBxdWVzdGlvbjoKCioqRGVjb25zdHJ1Y3RpbmcgRGVwZW5kZW5jaWVzIG9mIFJUTDgxOTJDVSoqCgpPa2F5LCBzbyB0aGUgdGFzayBpcyB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGBSVEw4MTkyQ1VgIGRyaXZlci4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyB0byBhdm9pZCBqdW1waW5nIGludG8gY29kZSBpbW1lZGlhdGVseS4gSSYjMzk7ZCBiZWdpbiBieSB0aGlua2luZyBhYm91dCB0aGUgYnJvYWRlciBjb250ZXh0IG9mIGEgdHlwaWNhbCBuZXR3b3JrIGRyaXZlci4KCkkmIzM5O20gYXNzdW1pbmcgdGhpcyBpcyBhIExpbnV4LWJhc2VkIHN5c3RlbSwgbGlrZWx5IHRhcmdldGluZyBhIHNwZWNpZmljIGhhcmR3YXJlIHBsYXRmb3JtLiBJ4oCZbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgZXh0ZXJuYWwgY29tcG9uZW50cyBvciBsaWJyYXJpZXMgdGhpcyBkcml2ZXIsIGBSVEw4MTkyQ1VgLCByZWxpZXMgb24gdG8gZnVuY3Rpb24gY29ycmVjdGx5LiBUaGlzIGNvdWxkIGluY2x1ZGUsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgdGhlIGtlcm5lbCBpdHNlbGYsIG90aGVyIGtlcm5lbCBtb2R1bGVzLCBzcGVjaWZpYyBoYXJkd2FyZSBhYnN0cmFjdGlvbiBsYXllcnMgKEhBTHMpIGlmIGl0IGV4aXN0cywgb3IgZXZlbiB1c2Vyc3BhY2UgdXRpbGl0aWVzIGZvciBjb25maWd1cmF0aW9uLiBJIHdvdWxkIGd1ZXNzLCBiZWluZyBhIFJlYWx0ZWsgZHJpdmVyLCBpdCBtaWdodCByZWx5IG9uIGEgcHJvcHJpZXRhcnkgSEFMLCBvciBhdCBsZWFzdCBhIHNwZWNpZmljIGtlcm5lbCB2ZXJzaW9uIGZvciBjb21wYXRpYmlsaXR5LgoKSSB3b3VsZCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGFuZCBhbnkgYXNzb2NpYXRlZCBjb25maWd1cmF0aW9ucy4gRG9lcyBpdCByZWx5IG9uIGEgc3BlY2lmaWMgbWFrZWZpbGUgb3IgS2NvbmZpZyBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBrZXJuZWwgaGVhZGVycyB0aGF0IG5lZWQgdG8gYmUgaW5jbHVkZWQgYW5kIHByZXNlbnQgYXQgY29tcGlsZSB0aW1lPyBLbm93aW5nIHRoZSBrZXJuZWwmIzM5O3MgdmVyc2lvbiBhbmQgY29uZmlndXJhdGlvbiBjb3VsZCBvZmZlciBpbnNpZ2h0cyBpbnRvIGFueSBzcGVjaWZpYyBpbnRlcmZhY2Ugb3IgZnVuY3Rpb25hbGl0eS4gCgpJJiMzOTtkIGFsc28gY29uc2lkZXIgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYW5kIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBjb21wb25lbnRzLiBEb2VzIGl0IG5lZWQgYSBzcGVjaWZpYyBmaXJtd2FyZSB0byBvcGVyYXRlPyBQZXJoYXBzIHNvbWUgb2YgdGhlIGRyaXZlciYjMzk7cyBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgaW4gZmlybXdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTI9bWVudWNvbmZpZyBSVExfQ0FSRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIHJ0bHdpZmkgZmFtaWx5IG9mIGRldmljZXNcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjQ6XHRkZXBlbmRzIG9uIE1BQzgwMjExIFx1MDAyNlx1MDAyNiAoUENJIHx8IFVTQilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUtXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xND1jb25maWcgUlRMODE5MkNFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODE5MkNFL1JUTDgxODhDRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjE2Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE3LVx0c2VsZWN0IFJUTDgxOTJDX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTI2PWNvbmZpZyBSVEw4MTkyU0VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTI3LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4MTkyU0UvUlRMODE5MVNFIFBDSWUgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoyODpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0yOS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9Mzc9Y29uZmlnIFJUTDgxOTJERVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMzgtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIFJUTDgxOTJERS9SVEw4MTg4REUgUENJZSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjM5Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTQwLVx0c2VsZWN0IFJUTDgxOTJEX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTQ5PWNvbmZpZyBSVEw4NzIzQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUwLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4NzIzQUUgUENJZSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjUxOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUyLVx0c2VsZWN0IFJUTFdJRklcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz02Mj1jb25maWcgUlRMODcyM0JFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy02My1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODcyM0JFIFBDSWUgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo2NDpcdGRlcGVuZHMgb24gUENJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy02NS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9NzU9Y29uZmlnIFJUTDgxODhFRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctNzYtXHR0cmlzdGF0ZSBcJiMzNDtSZWFsdGVrIFJUTDgxODhFRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjc3Olx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTc4LVx0c2VsZWN0IFJUTFdJRklcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz04Nj1jb25maWcgUlRMODE5MkVFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy04Ny1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODE5MkVFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6ODg6XHRkZXBlbmRzIG9uIFBDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctODktXHRzZWxlY3QgUlRMV0lGSVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTk4PWNvbmZpZyBSVEw4ODIxQUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTk5LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4ODIxQUUvUlRMODgxMkFFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTAwOlx0ZGVwZW5kcyBvbiBQQ0lcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEwMS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTEwPWNvbmZpZyBSVEw4MTkyQ1VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTExMS1cdHRyaXN0YXRlIFwmIzM0O1JlYWx0ZWsgUlRMODE5MkNVL1JUTDgxODhDVSBVU0IgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxMTI6XHRkZXBlbmRzIG9uIFVTQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTEzLVx0c2VsZWN0IFJUTFdJRklcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xMjI9Y29uZmlnIFJUTDgxOTJEVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTIzLVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBSVEw4MTkyRFUgVVNCIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTI0Olx0ZGVwZW5kcyBvbiBVU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEyNS1cdHNlbGVjdCBSVExXSUZJXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTQ0PWNvbmZpZyBSVExXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNDUtXHRib29sIFwmIzM0O0RlYnVnZ2luZyBvdXRwdXQgZm9yIHJ0bHdpZmkgZHJpdmVyIGZhbWlseVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTQ2Olx0ZGVwZW5kcyBvbiBSVExXSUZJXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNDctXHRkZWZhdWx0IHlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xNTM9Y29uZmlnIFJUTDgxOTJDX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTU0LVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjE1NTpcdGRlcGVuZHMgb24gUlRMODE5MkNFIHx8IFJUTDgxOTJDVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTU2LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTYxPWNvbmZpZyBSVEw4NzIzX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTYyLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnOjE2MzpcdGRlcGVuZHMgb24gUlRMODcyM0FFIHx8IFJUTDg3MjNCRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTY0LVx0ZGVmYXVsdCB5XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTY2PWNvbmZpZyBSVExCVENPRVhJU1RcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE2Ny1cdHRyaXN0YXRlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxNjg6XHRkZXBlbmRzIG9uIFJUTDg3MjNBRSB8fCBSVEw4NzIzQkUgfHwgUlRMODgyMUFFIHx8IFJUTDgxOTJFRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTY5LVx0ZGVmYXVsdCB5XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjA3MAoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUlRMODE5MkNVIE1vZHVsZSYjMzk7cyBEZXBlbmRlbmNpZXMqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgdGhlIGBSVEw4MTkyQ1VgIGRyaXZlciByZWxpZXMgb24gdGhlIGBVU0JgIHN1YnN5c3RlbSwgYW5kIGluIHR1cm4sIHRoZSBgUlRMX0NBUkRTYCBtb2R1bGUuIGBSVExfQ0FSRFNgIGl0c2VsZiBzZWVtcyB0byBiZSBpbnRyaWNhdGVseSBsaW5rZWQgd2l0aCBgTUFDODAyMTFgIGFuZCBlaXRoZXIgYFBDSWAgb3IgYFVTQmAg4oCTIHdoaWNoIG1ha2VzIHNlbnNlIGluIHRoZSBjb250ZXh0IG9mIG5ldHdvcmsgY2FyZCBhcmNoaXRlY3R1cmVzLiBOb3csIHRoZSBrZXkgZnVuY3Rpb24gSSYjMzk7bSBsb29raW5nIGF0LCB0aGUgb25lIEkmIzM5O20gZm9jdXNlZCBvbiwgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGV0ZXJtaW5lIGl0cyBhY2Nlc3NpYmlsaXR5IHdpdGhpbiB0aGUgb3ZlcmFsbCBzeXN0ZW0uIEkgbmVlZCB0byB0cmFjZSBpdHMgY2FsbCBncmFwaCBhbmQgdW5kZXJzdGFuZCBpZiBpdCYjMzk7cyBhY3R1YWxseSBiZWluZyB1c2VkLiBUaGlzIGRlcGVuZGVuY3kgc3RydWN0dXJlIGdpdmVzIG1lIGEgc3RhcnRpbmcgcG9pbnQsIG5vdyB0aGUgZ29hbCBpcyB0byBzZWUgaG93IHRoaXMgYWxsIGNvbm5lY3RzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM9MTgwNT1zdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YWJsZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMTg5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYzoxODkzOnN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMTg5NC1cdFx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jPTIwMzA9dm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90Ymwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTIwMzYtXHRpZiAocnRscHJpdi1cdTAwM2VkbS51c2VyYW1hc2spXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM6MjAzNzpcdFx0cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFzayhodywgc3RhLCByc3NpX2xldmVsLCB1cGRhdGVfYncpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTIwMzgtXHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTU6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjc3OQoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCYjMzk7cyBwZXJzcGVjdGl2ZToKCioqRGl2aW5nIGludG8gdGhlIFJhdGUgVGFibGUgVXBkYXRlKioKCkFscmlnaHQsIHNvIEkmIzM5O20gbG9va2luZyBhdCBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4gSSBzZWUgaXQmIzM5O3MgY2FsbGluZyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza2AsIHdoaWNoIGlzIGludGVyZXN0aW5nIOKAkyBsaWtlbHkgaW5kaWNhdGluZyBzb21lIGtpbmQgb2YgcmF0ZSBzZWxlY3Rpb24gb3IgbWFzayBtYW5pcHVsYXRpb24uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIHRoYXQmIzM5O3MgdGhlIGRlcGVuZGVuY3kuIEJ1dCB3aGF0IHRyaWdnZXJzICp0aGlzKiBmdW5jdGlvbiwgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAsIGluIHRoZSBmaXJzdCBwbGFjZT8mIzM0OyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dC4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgaXRzIGNhbGwgc2l0ZXMuIFdoYXQgZXZlbnRzIG9yIHN0YXRlIGNoYW5nZXMgbmVjZXNzaXRhdGUgdXBkYXRpbmcgdGhlIHJhdGUgdGFibGU/IElzIHRoaXMgdHJpZ2dlcmVkIG9uIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCwgY2hhbm5lbCBjaGFuZ2VzLCBwb3dlciBzYXZlIGV2ZW50cywgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRpbWUgdG8gZGlnIGludG8gdGhlIGNvZGUgYW5kIHNlZSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5ICp1c2VkKi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGNydWNpYWwgY29udGV4dCBJIG5lZWQgdG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIHdpdGhpbi4gSeKAmWxsIGxvb2sgZm9yIHRoZSBjYWxscyB0byBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCB0byBmaW5kIHRoZSB0cmlnZ2VyIGFuZCB1c2UgdGhhdCBpbmZvcm1hdGlvbiB0byBhc3Nlc3MgdGhlIHJhdGUgbWFuYWdlbWVudCBzY2hlbWUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYz0xODkzPXN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTIwMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM6MjAzMDp2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0yMDMxLVx0XHRcdFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5oPTc4PWJvb2wgcnRsOTJjdV9waHlfbWFjX2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3Lmg6Nzk6dm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90Ymwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmgtODAtXHRcdFx0XHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY3VfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAwLVx0LnNldF9od19yZWcgPSBydGw5MmN1X3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM6MTAxOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDItXHQuZmlsbF90eF9kZXNjID0gcnRsOTJjdV90eF9maWxsX2Rlc2MsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc2ODAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxMDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSYXRlIFRhYmxlIFVwZGF0ZSBpbiB0aGUgUlRMODE5MkNVIFVTQiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY2hhbmdlLCBhbmQgaXQgc2VlbXMgdGhlIGNvcmUgb2YgaXQgcmV2b2x2ZXMgYXJvdW5kIGhvdyB0aGUgcmF0ZSB0YWJsZSBpcyBiZWluZyB1cGRhdGVkIHdpdGhpbiB0aGUgYHJ0bDgxOTJjdV9oYWxfb3BzYCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSBhc3NpZ25lZCB0byBgLnVwZGF0ZV9yYXRlX3RibGAuIFRoaXMgaXMsIGZ1bmRhbWVudGFsbHksIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBVU0IgZHJpdmVyIGZvciB0aGUgUlRMODE5MkNVLgoKVGhlIGVudHJ5IHBvaW50IHNlZW1zIHRvIGJlIGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgLiBCdXQgaG9sZCBvbi4uLiB0aGF0IGZ1bmN0aW9uIGlzLCBpbiB0dXJuLCBjYWxsZWQgYnkgYHVwZGF0ZV9yYXRlX3RibGAgd2hpY2ggaXMgZGVmaW5lZCBpbiBgcnRsX2hhbF9vcHNgLiBBbHJpZ2h0LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBjYWxsIGNoYWluIGFuZCB3aGVyZSBgdXBkYXRlX3JhdGVfdGJsYCBpdHNlbGYgaXMgYmVpbmcgaW52b2tlZC4gQmVzdCB0byB0cmFjZSBiYWNrIHRvIHdoZXJlICp0aGF0KiBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE1OjM3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3VwZGF0ZV9yYXRlX3RibCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYz0yNDM0PWludCBydGxfc2VuZF9zbXBzX2FjdGlvbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvYmFzZS5jLTI0NzAtXHRcdHN0YV9lbnRyeS1cdTAwM2VtaW1vX3BzID0gc21wcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9iYXNlLmM6MjQ3MTpcdFx0LyogcnRscHJpdi1cdTAwM2VjZmctXHUwMDNlb3BzLVx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLCAwLCB0cnVlKTsgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9iYXNlLmMtMjQ3Mi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jPTg1Nz1zdGF0aWMgaW50IHJ0bF9vcF9zdGFfYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtODk2LVx0XHRcdFwmIzM0O0FkZCBzdGEgYWRkciBpcyAlcE1cXG5cJiMzNDssIHN0YS1cdTAwM2VhZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6ODk3Olx0XHRydGxwcml2LVx1MDAzZWNmZy1cdTAwM2VvcHMtXHUwMDNldXBkYXRlX3JhdGVfdGJsKGh3LCBzdGEsIDAsIHRydWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy04OTgtXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xMDA4PXN0YXRpYyB2b2lkIHJ0bF9vcF9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtMTEyNS1cdFx0XHRpZiAodmlmLVx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6MTEyNjpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtMTEyNy1cdFx0XHRcdFx0XHRcdFx0ICAgdHJ1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxODhlZS9kbS5jPTExMzE9c3RhdGljIHZvaWQgcnRsODhlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk0LVx0XHRcdGlmIChzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL2RtLmM6MTE5NTpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk2LVx0XHRcdFx0XHRcdFx0cF9yYS1cdTAwM2VyYXRyX3N0YXRlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvc3cuYz0xOTM9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTg4ZWVfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmMtMjExLVx0LnNldF9od19yZWcgPSBydGw4OGVlX3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmM6MjEyOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDg4ZWVfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvc3cuYy0yMTMtXHQuZmlsbF90eF9kZXNjID0gcnRsODhlZV90eF9maWxsX2Rlc2MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jPTE3MD1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJjZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYy0xODgtXHQuc2V0X2h3X3JlZyA9IHJ0bDkyY2Vfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYzoxODk6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJjZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jLTE5MC1cdC5maWxsX3R4X2Rlc2MgPSBydGw5MmNlX3R4X2ZpbGxfZGVzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY3VfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAwLVx0LnNldF9od19yZWcgPSBydGw5MmN1X3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM6MTAxOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDItXHQuZmlsbF90eF9kZXNjID0gcnRsOTJjdV90eF9maWxsX2Rlc2MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkZS9zdy5jPTE4Nz1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJkZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYy0yMDUtXHQuc2V0X2h3X3JlZyA9IHJ0bDkyZGVfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYzoyMDY6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJkX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmRlL3N3LmMtMjA3LVx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyZGVfdHhfZmlsbF9kZXNjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvc3cuYz0xODU9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyZHVfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmMtMjAxLVx0LnNldF9od19yZWcgPSBydGw5MmR1X3NldF9od19yZWcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmM6MjAyOlx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyZF91cGRhdGVfaGFsX3JhdGVfdGJsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkdS9zdy5jLTIwMy1cdC5maWxsX3R4X2Rlc2MgPSBydGw5MmR1X3R4X2ZpbGxfZGVzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmVlL2RtLmM9ODU2PXN0YXRpYyB2b2lkIHJ0bDkyZWVfZG1fcmVmcmVzaF9yYXRlX2FkYXB0aXZlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jLTg5MC1cdFx0XHRpZiAoc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jOjg5MTpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvZG0uYy04OTItXHRcdFx0XHRcdFx0XHQgICAgICBwX3JhLVx1MDAzZXJhdHJfc3RhdGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9zdy5jPTE3OT1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJlZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYy0xOTctXHQuc2V0X2h3X3JlZyA9IHJ0bDkyZWVfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYzoxOTg6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJlZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9zdy5jLTE5OS1cdC5yeF9kZXNjX2J1ZmZfcmVtYWluZWRfY250ID0gcnRsOTJlZV9yeF9kZXNjX2J1ZmZfcmVtYWluZWRfY250LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYz0yMDE9c3RhdGljIHZvaWQgX3J0bDkyc19kbV9yZWZyZXNoX3JhdGVhZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYy0yNzQtXHRcdFx0aWYgKHN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYzoyNzU6XHRcdFx0XHRydGxwcml2LVx1MDAzZWNmZy1cdTAwM2VvcHMtXHUwMDNldXBkYXRlX3JhdGVfdGJsKGh3LCBzdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmMtMjc2LVx0XHRcdFx0XHRcdFx0ICAgcmEtXHUwMDNlcmF0cl9zdGF0ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL3N3LmM9MjI0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE5MnNlX2hhbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jLTI0Mi1cdC5zZXRfaHdfcmVnID0gcnRsOTJzZV9zZXRfaHdfcmVnLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jOjI0MzpcdC51cGRhdGVfcmF0ZV90YmwgPSBydGw5MnNlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL3N3LmMtMjQ0LVx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyc2VfdHhfZmlsbF9kZXNjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYz01NTQ9c3RhdGljIHZvaWQgcnRsODcyM2VfZG1fcmVmcmVzaF9yYXRlX2FkYXB0aXZlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9kbS5jLTYyNi1cdFx0XHRpZiAoc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9kbS5jOjYyNzpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYy02MjgtXHRcdFx0XHRcdFx0XHQgICBwX3JhLVx1MDAzZXJhdHJfc3RhdGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jPTE4Nj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDg3MjNlX2hhbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jLTIwNC1cdC5zZXRfaHdfcmVnID0gcnRsODcyM2Vfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvc3cuYzoyMDU6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2VfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvc3cuYy0yMDYtXHQuZmlsbF90eF9kZXNjID0gcnRsODcyM2VfdHhfZmlsbF9kZXNjLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYz05MDI9c3RhdGljIHZvaWQgcnRsODcyM2JlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYy05NjAtXHRcdFx0aWYgKHN0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYzo5NjE6XHRcdFx0XHRydGxwcml2LVx1MDAzZWNmZy1cdTAwM2VvcHMtXHUwMDNldXBkYXRlX3JhdGVfdGJsKGh3LCBzdGEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmMtOTYyLVx0XHRcdFx0XHRcdFx0ICAgcF9yYS1cdTAwM2VyYXRyX3N0YXRlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvc3cuYz0xOTA9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4NzIzYmVfaGFsX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmMtMjA4LVx0LnNldF9od19yZWcgPSBydGw4NzIzYmVfc2V0X2h3X3JlZyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvc3cuYzoyMDk6XHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2JlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmMtMjEwLVx0LmZpbGxfdHhfZGVzYyA9IHJ0bDg3MjNiZV90eF9maWxsX2Rlc2MsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9kbS5jPTIzNDI9c3RhdGljIHZvaWQgcnRsODgyMWFlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvZG0uYy0yNDAwLVx0XHRcdGlmIChzdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODgyMWFlL2RtLmM6MjQwMTpcdFx0XHRcdHJ0bHByaXYtXHUwMDNlY2ZnLVx1MDAzZW9wcy1cdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODgyMWFlL2RtLmMtMjQwMi1cdFx0XHRcdFx0XHRzdGEsIHBfcmEtXHUwMDNlcmF0cl9zdGF0ZSwgdHJ1ZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jPTIzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDg4MjFhZV9oYWxfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYy0yNTAtXHQuc2V0X2h3X3JlZyA9IHJ0bDg4MjFhZV9zZXRfaHdfcmVnLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jOjI1MTpcdC51cGRhdGVfcmF0ZV90YmwgPSBydGw4ODIxYWVfdXBkYXRlX2hhbF9yYXRlX3RibCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYy0yNTItXHQuZmlsbF90eF9kZXNjID0gcnRsODgyMWFlX3R4X2ZpbGxfZGVzYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oPTIxNjA9c3RydWN0IHJ0bF9oYWxfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oLTIxODYtXHR2b2lkICgqc2V0X2h3X3JlZykoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHU4IHZhcmlhYmxlLCB1OCAqdmFsKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS93aWZpLmg6MjE4NzpcdHZvaWQgKCp1cGRhdGVfcmF0ZV90YmwpKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3dpZmkuaC0yMTg4LVx0XHRcdFx0c3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdTggcnNzaV9sZXZlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxNTozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTgxNQoJCQkJCQkJb3V0cHV0OiAxNDEKCQkJCQkJCXRob3VnaHRzOiA2NTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHlzaXMgb2YgdGhlIGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgIEZ1bmN0aW9uIGFuZCBpdHMgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIEkmIzM5O3ZlIGlkZW50aWZpZWQgdGhlIHRhcmdldCBmdW5jdGlvbiBhcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4gSSYjMzk7dmUgY29uZmlybWVkIGl0JiMzOTtzIHJlYWNoYWJsZSBmcm9tIHNldmVyYWwgbWFjODAyMTEgY2FsbGJhY2tzIOKAkyBgcnRsX29wX3N0YV9hZGRgLCBgcnRsX29wX2Jzc19pbmZvX2NoYW5nZWRgIOKAkyBhbmQgb3RoZXIgcGF0aHMgbGlrZSBgcnRsX3NlbmRfc21wc19hY3Rpb25gIGFuZCBgcnRsODhlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrYC4gVGhpcyBjb25maXJtcyBpdHMgcmVsZXZhbmNlLiBUaGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIHRoZSBgUlRMODE5MkNVYCwgd2hpY2gsIGZyb20gbXkgZXhwZXJpZW5jZSwgaXMgYSBVU0IgZHJpdmVyLgoKSSBpbml0aWFsbHkgY29uc2lkZXJlZCB0aGUgbmVjZXNzYXJ5IGNvbmZpZ3MgYmVpbmcgYFJUTDgxOTJDVWAsIGBNQUM4MDIxMWAsIGFuZCBgVVNCYCwgYnV0IHJlYWxpemVkIGBSVEw4MTkyQ1VgIGluaGVyZW50bHkgZGVwZW5kcyBvbiBib3RoIGBVU0JgIGFuZCBgTUFDODAyMTFgLiBTaW5jZSBgUlRMODE5MkNVYCBpcyB0cmlzdGF0ZSwgSSBjb25maXJtZWQgdGhhdCBpdCBpcyB0aGUgb25seSBuZWNlc3NhcnkgY29uZmlnLiBUaGUgbWFpbiBmdW5jdGlvbiB0byBmb2N1cyBvbiBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCwgYnV0IEkgbm90ZSB0aGF0IGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrYCBpcyBzdGF0aWM7IHRoZXJlZm9yZSwgaXQgaXMgbGlrZWx5IGlubGluZWQuIEkgdmVyaWZpZWQgdGhhdCBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCBpcyBpbmRlZWQgZXhwb3J0ZWQgYW5kIG5vbi1zdGF0aWM6IGB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgdTggcnNzaV9sZXZlbCwgYm9vbCB1cGRhdGVfYncpYC4KCkkmIzM5O3ZlIGFsc28gZG91YmxlLWNoZWNrZWQgdGhlIGNvbmZpZ3MuIGBSVEw4MTkyQ1VgIGFsb25lIGlzIHN1ZmZpY2llbnQsIGFzIGBSVExXSUZJYCBhbmQgYFJUTDgxOTJDX0NPTU1PTmAgYXJlIHNlbGVjdGVkIGJ5IGBSVEw4MTkyQ1VgLgoKUmV2aWV3aW5nIHRoZSBwYXRjaCwgaXQgc2VlbXMgdGhlIGNvcmUgY2hhbmdlIHJlbW92ZXMgYG1pbW9fcHNgIGFuZCBzcGVjaWZpY2FsbHkgdGhlIGBpZiAobWltb19wcyA9PSBJRUVFODAyMTFfU01QU19TVEFUSUMpYCBicmFuY2guIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGNoYW5nZSwgbWFraW5nIGl0IHByaW1lIGZvciBmdXp6aW5nLiBHaXZlbiB0aGUgVVNCIG5hdHVyZSBvZiB0aGUgZHJpdmVyLCBJIGNhbiBlYXNpbHkgdGFyZ2V0IHRoaXMgd2l0aCBkdW1teV9oY2Qgb3IgcmF3IGdhZGdldCBzZXR1cHMuIENvbnNpZGVyaW5nIHRoZSBmdW5jdGlvbmFsIGNoYW5nZSBhbmQgdGhlIGRyaXZlciYjMzk7cyBVU0IgYXNwZWN0LCBgV29ydGhGdXp6aW5nYCBpcyBkZWZpbml0ZWx5IHRydWUuCgpTbywgdG8gc3VtbWFyaXplOgoKKiAgIENvbmZpZ3M6IGBSVEw4MTkyQ1VgCiogICBGb2N1cyBTeW1ib2xzOiBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxNTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMODE5MkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UlRMODE5MkNVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE1OjM2OjMzLjQ1MjYwNTkzOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4Njc5MTIzNDg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUTDgxOTJDVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTU6MzY6MzMuNDUyNjE4NTI4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzg3Nzc4NzMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMWRjMjIwODA5YjFhN2Q3ZWY5YTYyYWI4ZDRlODIwNDRjZDliMzBjN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDE1OjM2OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuY1xcbmluZGV4IDk4OWU3Y2ZmOGUyMDEuLmU3NWY3ZWM0NGU2YTEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXFxuQEAgLTE5MTEsNyArMTkxMSw2IEBAIHN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdGJvb2wgc2hvcnRnaSA9IGZhbHNlO1xcbiBcXHR1OCByYXRlX21hc2tbNV07XFxuIFxcdHU4IG1hY2lkID0gMDtcXG4tXFx0dTggbWltb19wcyA9IElFRUU4MDIxMV9TTVBTX09GRjtcXG4gXFxuIFxcdHN0YV9lbnRyeSA9IChzdHJ1Y3QgcnRsX3N0YV9pbmZvICopIHN0YS1cXHUwMDNlZHJ2X3ByaXY7XFxuIFxcdHdpcmVsZXNzbW9kZSA9IHN0YV9lbnRyeS1cXHUwMDNld2lyZWxlc3NfbW9kZTtcXG5AQCAtMTk1Niw0NyArMTk1NSwzOCBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbiBcXHRjYXNlIFdJUkVMRVNTX01PREVfTl81RzpcXG4gXFx0XFx0cmF0cl9pbmRleCA9IFJBVFJfSU5YX1dJUkVMRVNTX05HQjtcXG4gXFxuLVxcdFxcdGlmIChtaW1vX3BzID09IElFRUU4MDIxMV9TTVBTX1NUQVRJQykge1xcbi1cXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbi1cXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMDcwMDAwO1xcbi1cXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuLVxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwN2YwMDA7XFxuLVxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDA3ZjAwNTtcXG4rXFx0XFx0aWYgKHJ0bHBoeS1cXHUwMDNlcmZfdHlwZSA9PSBSRl8xVDJSIHx8XFxuK1xcdFxcdCAgICBydGxwaHktXFx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xcbitcXHRcXHRcXHRpZiAoY3VydHhid180MG1oeikge1xcbitcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGYwMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDA7XFxuK1xcdFxcdFxcdFxcdGVsc2VcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmZjAxNTtcXG4rXFx0XFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0XFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmMDAwMDtcXG4rXFx0XFx0XFx0XFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGZmMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDU7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fSBlbHNlIHtcXG4tXFx0XFx0XFx0aWYgKHJ0bHBoeS1cXHUwMDNlcmZfdHlwZSA9PSBSRl8xVDJSIHx8XFxuLVxcdFxcdFxcdCAgICBydGxwaHktXFx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xcbi1cXHRcXHRcXHRcXHRpZiAoY3VydHhid180MG1oeikge1xcbi1cXHRcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGYwMDAwO1xcbi1cXHRcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDA7XFxuLVxcdFxcdFxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmZjAxNTtcXG4tXFx0XFx0XFx0XFx0fSBlbHNlIHtcXG4tXFx0XFx0XFx0XFx0XFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwMDBmMDAwMDtcXG4tXFx0XFx0XFx0XFx0XFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDAwMGZmMDAwO1xcbi1cXHRcXHRcXHRcXHRcXHRlbHNlXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MDAwZmYwMDU7XFxuLVxcdFxcdFxcdFxcdH1cXG4rXFx0XFx0XFx0aWYgKGN1cnR4YndfNDBtaHopIHtcXG4rXFx0XFx0XFx0XFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmMDAwMDtcXG4rXFx0XFx0XFx0XFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGZmMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZmYwMTU7XFxuIFxcdFxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdFxcdGlmIChjdXJ0eGJ3XzQwbWh6KSB7XFxuLVxcdFxcdFxcdFxcdFxcdGlmIChyc3NpX2xldmVsID09IDEpXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZjAwMDA7XFxuLVxcdFxcdFxcdFxcdFxcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmZjAwMDtcXG4tXFx0XFx0XFx0XFx0XFx0ZWxzZVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGZmMDE1O1xcbi1cXHRcXHRcXHRcXHR9IGVsc2Uge1xcbi1cXHRcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbi1cXHRcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGYwMDAwO1xcbi1cXHRcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuLVxcdFxcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZmYwMDA7XFxuLVxcdFxcdFxcdFxcdFxcdGVsc2VcXG4tXFx0XFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmZjAwNTtcXG4tXFx0XFx0XFx0XFx0fVxcbitcXHRcXHRcXHRcXHRpZiAocnNzaV9sZXZlbCA9PSAxKVxcbitcXHRcXHRcXHRcXHRcXHRyYXRyX2JpdG1hcCBcXHUwMDI2PSAweDBmMGYwMDAwO1xcbitcXHRcXHRcXHRcXHRlbHNlIGlmIChyc3NpX2xldmVsID09IDIpXFxuK1xcdFxcdFxcdFxcdFxcdHJhdHJfYml0bWFwIFxcdTAwMjY9IDB4MGYwZmYwMDA7XFxuK1xcdFxcdFxcdFxcdGVsc2VcXG4rXFx0XFx0XFx0XFx0XFx0cmF0cl9iaXRtYXAgXFx1MDAyNj0gMHgwZjBmZjAwNTtcXG4gXFx0XFx0XFx0fVxcbiBcXHRcXHR9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjozNC44NDE1NDMwNDhaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozNzI5MDE3MjI4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVEw4MTkyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBtYXNrIHVwZGF0ZSBsb2dpYyBpbiB0aGUgUmVhbHRlayBSVEw4MTkyQ1UgVVNCIFdpLUZpIGRyaXZlci4gSXQgcmVtb3ZlcyB0aGUgU01QUyBzdGF0aWMgY29uZGl0aW9uIGFuZCBzaW1wbGlmaWVzIHRoZSByYXRlIG1hc2sgY2FsY3VsYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkL3JhdyBnYWRnZXQpLiBUaGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgbG9naWMgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFkYzIyMDgwOWIxYTdkN2VmOWE2MmFiOGQ0ZTgyMDQ0Y2Q5YjMwYzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDE1OjM2OjMxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXG5pbmRleCA5ODllN2NmZjhlMjAxLi5lNzVmN2VjNDRlNmExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmNcbkBAIC0xOTExLDcgKzE5MTEsNiBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Ym9vbCBzaG9ydGdpID0gZmFsc2U7XG4gXHR1OCByYXRlX21hc2tbNV07XG4gXHR1OCBtYWNpZCA9IDA7XG4tXHR1OCBtaW1vX3BzID0gSUVFRTgwMjExX1NNUFNfT0ZGO1xuIFxuIFx0c3RhX2VudHJ5ID0gKHN0cnVjdCBydGxfc3RhX2luZm8gKikgc3RhLVx1MDAzZWRydl9wcml2O1xuIFx0d2lyZWxlc3Ntb2RlID0gc3RhX2VudHJ5LVx1MDAzZXdpcmVsZXNzX21vZGU7XG5AQCAtMTk1Niw0NyArMTk1NSwzOCBAQCBzdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Y2FzZSBXSVJFTEVTU19NT0RFX05fNUc6XG4gXHRcdHJhdHJfaW5kZXggPSBSQVRSX0lOWF9XSVJFTEVTU19OR0I7XG4gXG4tXHRcdGlmIChtaW1vX3BzID09IElFRUU4MDIxMV9TTVBTX1NUQVRJQykge1xuLVx0XHRcdGlmIChyc3NpX2xldmVsID09IDEpXG4tXHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwNzAwMDA7XG4tXHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMDdmMDAwO1xuLVx0XHRcdGVsc2Vcbi1cdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDA3ZjAwNTtcbitcdFx0aWYgKHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMlIgfHxcbitcdFx0ICAgIHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMVIpIHtcbitcdFx0XHRpZiAoY3VydHhid180MG1oeikge1xuK1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGYwMDAwO1xuK1x0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4rXHRcdFx0XHRlbHNlXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAxNTtcbitcdFx0XHR9IGVsc2Uge1xuK1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDAwMGYwMDAwO1xuK1x0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4rXHRcdFx0XHRlbHNlXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwNTtcbitcdFx0XHR9XG4gXHRcdH0gZWxzZSB7XG4tXHRcdFx0aWYgKHJ0bHBoeS1cdTAwM2VyZl90eXBlID09IFJGXzFUMlIgfHxcbi1cdFx0XHQgICAgcnRscGh5LVx1MDAzZXJmX3R5cGUgPT0gUkZfMVQxUikge1xuLVx0XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MDAwZmYwMTU7XG4tXHRcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmMDAwMDtcbi1cdFx0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwMDtcbi1cdFx0XHRcdFx0ZWxzZVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwMDBmZjAwNTtcbi1cdFx0XHRcdH1cbitcdFx0XHRpZiAoY3VydHhid180MG1oeikge1xuK1x0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGYwMDAwO1xuK1x0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4rXHRcdFx0XHRlbHNlXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAxNTtcbiBcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0aWYgKGN1cnR4YndfNDBtaHopIHtcbi1cdFx0XHRcdFx0aWYgKHJzc2lfbGV2ZWwgPT0gMSlcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZjAwMDA7XG4tXHRcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDA7XG4tXHRcdFx0XHRcdGVsc2Vcbi1cdFx0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMTU7XG4tXHRcdFx0XHR9IGVsc2Uge1xuLVx0XHRcdFx0XHRpZiAocnNzaV9sZXZlbCA9PSAxKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmMDAwMDtcbi1cdFx0XHRcdFx0ZWxzZSBpZiAocnNzaV9sZXZlbCA9PSAyKVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAwMDtcbi1cdFx0XHRcdFx0ZWxzZVxuLVx0XHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmZjAwNTtcbi1cdFx0XHRcdH1cbitcdFx0XHRcdGlmIChyc3NpX2xldmVsID09IDEpXG4rXHRcdFx0XHRcdHJhdHJfYml0bWFwIFx1MDAyNj0gMHgwZjBmMDAwMDtcbitcdFx0XHRcdGVsc2UgaWYgKHJzc2lfbGV2ZWwgPT0gMilcbitcdFx0XHRcdFx0cmF0cl9iaXRtYXAgXHUwMDI2PSAweDBmMGZmMDAwO1xuK1x0XHRcdFx0ZWxzZVxuK1x0XHRcdFx0XHRyYXRyX2JpdG1hcCBcdTAwMjY9IDB4MGYwZmYwMDU7XG4gXHRcdFx0fVxuIFx0XHR9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjozNC44NDE1NDU2MThaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDc1OTYyMTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFJlYWx0ZWsgV2lyZWxlc3MgRHJpdmVyIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCdzIGJlZW4gYXBwbGllZCB0byBgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jYC4gSXQgbG9va3MgbGlrZSBpdCdzIHJlbW92aW5nIHRoZSBgbWltb19wc2AgdmFyaWFibGUgYW5kIGEgc3BlY2lmaWMgY29uZGl0aW9uIHJlbGF0ZWQgdG8gaXQgd2l0aGluIHRoZSBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza2AgZnVuY3Rpb24uIFRoaXMgaXMgaW50ZXJlc3RpbmcuIFRoaXMgaXMgYSB3aXJlbGVzcyBkcml2ZXIgZm9yIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSwgd2hpY2ggSSByZWNvZ25pemUgaXMgYSBVU0IgZGV2aWNlLiBUaGUgZmFjdCB0aGF0IGl0J3MgVVNCIGltbWVkaWF0ZWx5IG1ha2VzIG1lIHRoaW5rIGFib3V0IGZ1enppbmcsIHBhcnRpY3VsYXJseSBnaXZlbiB0aGF0IFVTQiBkZXZpY2VzIGNhbiBiZSBlbXVsYXRlZCB1c2luZyByYXcgVVNCIGdhZGdldHMuIFNvLCBteSBtaW5kIGlzIGFscmVhZHkganVtcGluZyB0byBwb3RlbnRpYWwgZnV6emluZyBzdHJhdGVnaWVzLlxuXG5Ob3csIGEgcXVpY2sgY2hlY2sgdG8gc2VlIGlmIEkgY2FuIHVzZSBtYWM4MDIxMV9od3NpbT8gTm8sIHRoYXQncyBhIHNvZnR3YXJlIHNpbXVsYXRvciwgbm90IHJlbGV2YW50IGhlcmUuIEhvd2V2ZXIsIHN5emthbGxlciBjb3VsZCBiZSBoZWxwZnVsIGJlY2F1c2UgaXQgY2FuIGZ1enogVVNCIGRyaXZlcnMgd2l0aCB0aGUgZHVtbXlfaGNkIGFuZCByYXcgZ2FkZ2V0LiBCdXQgZmlyc3QsIGxldCBtZSBjb25maXJtIG15IGFzc3VtcHRpb246IGlzIGBydGw4MTkyY3VgIGFjdHVhbGx5IGEgVVNCIGRyaXZlcj8gWWVzLCBkZWZpbml0ZWx5LiBOb3cgdGhhdCdzIGNvbmZpcm1lZCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyBmb3IgYHJ0bDgxOTJjdWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyMTksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo0MC4zMTc1MTEwMzdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzNTUwMDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSVEw4MTkyQ1VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz05OD1jb25maWcgUlRMODgyMUFFXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTEwOmNvbmZpZyBSVEw4MTkyQ1VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMTEtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkNVL1JUTDgxODhDVSBVU0IgV2lyZWxlc3MgTmV0d29yayBBZGFwdGVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo0MC40MjEwNjc2MTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTYyOTY4NTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgYW5hbHl6aW5nIHRoYXQgcXVlc3Rpb246XG5cbioqRGVjb25zdHJ1Y3RpbmcgRGVwZW5kZW5jaWVzIG9mIFJUTDgxOTJDVSoqXG5cbk9rYXksIHNvIHRoZSB0YXNrIGlzIHRvIHVuZGVyc3RhbmQgdGhlIGRlcGVuZGVuY2llcyBvZiB0aGUgYFJUTDgxOTJDVWAgZHJpdmVyLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBNeSBmaXJzdCBpbnN0aW5jdCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSwgaXMgdG8gYXZvaWQganVtcGluZyBpbnRvIGNvZGUgaW1tZWRpYXRlbHkuIEknZCBiZWdpbiBieSB0aGlua2luZyBhYm91dCB0aGUgYnJvYWRlciBjb250ZXh0IG9mIGEgdHlwaWNhbCBuZXR3b3JrIGRyaXZlci5cblxuSSdtIGFzc3VtaW5nIHRoaXMgaXMgYSBMaW51eC1iYXNlZCBzeXN0ZW0sIGxpa2VseSB0YXJnZXRpbmcgYSBzcGVjaWZpYyBoYXJkd2FyZSBwbGF0Zm9ybS4gSeKAmWxsIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IGV4dGVybmFsIGNvbXBvbmVudHMgb3IgbGlicmFyaWVzIHRoaXMgZHJpdmVyLCBgUlRMODE5MkNVYCwgcmVsaWVzIG9uIHRvIGZ1bmN0aW9uIGNvcnJlY3RseS4gVGhpcyBjb3VsZCBpbmNsdWRlLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHRoZSBrZXJuZWwgaXRzZWxmLCBvdGhlciBrZXJuZWwgbW9kdWxlcywgc3BlY2lmaWMgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXJzIChIQUxzKSBpZiBpdCBleGlzdHMsIG9yIGV2ZW4gdXNlcnNwYWNlIHV0aWxpdGllcyBmb3IgY29uZmlndXJhdGlvbi4gSSB3b3VsZCBndWVzcywgYmVpbmcgYSBSZWFsdGVrIGRyaXZlciwgaXQgbWlnaHQgcmVseSBvbiBhIHByb3ByaWV0YXJ5IEhBTCwgb3IgYXQgbGVhc3QgYSBzcGVjaWZpYyBrZXJuZWwgdmVyc2lvbiBmb3IgY29tcGF0aWJpbGl0eS5cblxuSSB3b3VsZCBuZWVkIHRvIGNvbnNpZGVyIHRoZSBrZXJuZWwgYnVpbGQgc3lzdGVtIGFuZCBhbnkgYXNzb2NpYXRlZCBjb25maWd1cmF0aW9ucy4gRG9lcyBpdCByZWx5IG9uIGEgc3BlY2lmaWMgbWFrZWZpbGUgb3IgS2NvbmZpZyBzZXR0aW5ncz8gQXJlIHRoZXJlIGFueSBrZXJuZWwgaGVhZGVycyB0aGF0IG5lZWQgdG8gYmUgaW5jbHVkZWQgYW5kIHByZXNlbnQgYXQgY29tcGlsZSB0aW1lPyBLbm93aW5nIHRoZSBrZXJuZWwncyB2ZXJzaW9uIGFuZCBjb25maWd1cmF0aW9uIGNvdWxkIG9mZmVyIGluc2lnaHRzIGludG8gYW55IHNwZWNpZmljIGludGVyZmFjZSBvciBmdW5jdGlvbmFsaXR5LiBcblxuSSdkIGFsc28gY29uc2lkZXIgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYW5kIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBjb21wb25lbnRzLiBEb2VzIGl0IG5lZWQgYSBzcGVjaWZpYyBmaXJtd2FyZSB0byBvcGVyYXRlPyBQZXJoYXBzIHNvbWUgb2YgdGhlIGRyaXZlcidzIGZ1bmN0aW9ucyBhcmUgaGFuZGxlZCBpbiBmaXJtd2FyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg5MCwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE1OjM2OjQ3LjM4NDAzODc4N1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjU4MjcwMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTI9bWVudWNvbmZpZyBSVExfQ0FSRFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIHJ0bHdpZmkgZmFtaWx5IG9mIGRldmljZXNcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6NDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IChQQ0kgfHwgVVNCKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTUtXFx0ZGVmYXVsdCB5XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xND1jb25maWcgUlRMODE5MkNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkNFL1JUTDgxODhDRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTY6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNy1cXHRzZWxlY3QgUlRMODE5MkNfQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0yNj1jb25maWcgUlRMODE5MlNFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MlNFL1JUTDgxOTFTRSBQQ0llIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoyODpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTI5LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0zNz1jb25maWcgUlRMODE5MkRFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMzgtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkRFL1JUTDgxODhERSBQQ0llIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzozOTpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTQwLVxcdHNlbGVjdCBSVEw4MTkyRF9DT01NT05cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTQ5PWNvbmZpZyBSVEw4NzIzQUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy01MC1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayBSVEw4NzIzQUUgUENJZSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6NTE6XFx0ZGVwZW5kcyBvbiBQQ0lcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy01Mi1cXHRzZWxlY3QgUlRMV0lGSVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9NjI9Y29uZmlnIFJUTDg3MjNCRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTYzLVxcdHRyaXN0YXRlIFxcXCJSZWFsdGVrIFJUTDg3MjNCRSBQQ0llIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo2NDpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTY1LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz03NT1jb25maWcgUlRMODE4OEVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctNzYtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE4OEVFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo3NzpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTc4LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz04Nj1jb25maWcgUlRMODE5MkVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctODctXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODE5MkVFIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzo4ODpcXHRkZXBlbmRzIG9uIFBDSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTg5LVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz05OD1jb25maWcgUlRMODgyMUFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctOTktXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgUlRMODgyMUFFL1JUTDg4MTJBRSBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTAwOlxcdGRlcGVuZHMgb24gUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTAxLVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xMTA9Y29uZmlnIFJUTDgxOTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTExMS1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayBSVEw4MTkyQ1UvUlRMODE4OENVIFVTQiBXaXJlbGVzcyBOZXR3b3JrIEFkYXB0ZXJcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTEyOlxcdGRlcGVuZHMgb24gVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTEzLVxcdHNlbGVjdCBSVExXSUZJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZz0xMjI9Y29uZmlnIFJUTDgxOTJEVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTEyMy1cXHR0cmlzdGF0ZSBcXFwiUmVhbHRlayBSVEw4MTkyRFUgVVNCIFdpcmVsZXNzIE5ldHdvcmsgQWRhcHRlclxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxMjQ6XFx0ZGVwZW5kcyBvbiBVU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xMjUtXFx0c2VsZWN0IFJUTFdJRklcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTE0ND1jb25maWcgUlRMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE0NS1cXHRib29sIFxcXCJEZWJ1Z2dpbmcgb3V0cHV0IGZvciBydGx3aWZpIGRyaXZlciBmYW1pbHlcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTQ2OlxcdGRlcGVuZHMgb24gUlRMV0lGSVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE0Ny1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTE1Mz1jb25maWcgUlRMODE5MkNfQ09NTU9OXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTU0LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc6MTU1OlxcdGRlcGVuZHMgb24gUlRMODE5MkNFIHx8IFJUTDgxOTJDVVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnLTE1Ni1cXHRkZWZhdWx0IHlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9LY29uZmlnPTE2MT1jb25maWcgUlRMODcyM19DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNjItXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxNjM6XFx0ZGVwZW5kcyBvbiBSVEw4NzIzQUUgfHwgUlRMODcyM0JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWctMTY0LVxcdGRlZmF1bHQgeVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL0tjb25maWc9MTY2PWNvbmZpZyBSVExCVENPRVhJU1RcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNjctXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZzoxNjg6XFx0ZGVwZW5kcyBvbiBSVEw4NzIzQUUgfHwgUlRMODcyM0JFIHx8IFJUTDg4MjFBRSB8fCBSVEw4MTkyRUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvS2NvbmZpZy0xNjktXFx0ZGVmYXVsdCB5XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE1OjM2OjQ3LjQ3NjYzMDY4OFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1ODU1MTM4ODIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSVEw4MTkyQ1UgTW9kdWxlJ3MgRGVwZW5kZW5jaWVzKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgYFJUTDgxOTJDVWAgZHJpdmVyIHJlbGllcyBvbiB0aGUgYFVTQmAgc3Vic3lzdGVtLCBhbmQgaW4gdHVybiwgdGhlIGBSVExfQ0FSRFNgIG1vZHVsZS4gYFJUTF9DQVJEU2AgaXRzZWxmIHNlZW1zIHRvIGJlIGludHJpY2F0ZWx5IGxpbmtlZCB3aXRoIGBNQUM4MDIxMWAgYW5kIGVpdGhlciBgUENJYCBvciBgVVNCYCDigJMgd2hpY2ggbWFrZXMgc2Vuc2UgaW4gdGhlIGNvbnRleHQgb2YgbmV0d29yayBjYXJkIGFyY2hpdGVjdHVyZXMuIE5vdywgdGhlIGtleSBmdW5jdGlvbiBJJ20gbG9va2luZyBhdCwgdGhlIG9uZSBJJ20gZm9jdXNlZCBvbiwgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGV0ZXJtaW5lIGl0cyBhY2Nlc3NpYmlsaXR5IHdpdGhpbiB0aGUgb3ZlcmFsbCBzeXN0ZW0uIEkgbmVlZCB0byB0cmFjZSBpdHMgY2FsbCBncmFwaCBhbmQgdW5kZXJzdGFuZCBpZiBpdCdzIGFjdHVhbGx5IGJlaW5nIHVzZWQuIFRoaXMgZGVwZW5kZW5jeSBzdHJ1Y3R1cmUgZ2l2ZXMgbWUgYSBzdGFydGluZyBwb2ludCwgbm93IHRoZSBnb2FsIGlzIHRvIHNlZSBob3cgdGhpcyBhbGwgY29ubmVjdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYwNzAsIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo1Mi4wNjIxNDlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIxOTY2NTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM9MTgwNT1zdGF0aWMgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YWJsZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0xODkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYzoxODkzOnN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jLTE4OTQtXFx0XFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM9MjAzMD12b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0yMDM2LVxcdGlmIChydGxwcml2LVxcdTAwM2VkbS51c2VyYW1hc2spXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9ody5jOjIwMzc6XFx0XFx0cnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFzayhodywgc3RhLCByc3NpX2xldmVsLCB1cGRhdGVfYncpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYy0yMDM4LVxcdGVsc2VcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTU6MzY6NTIuMTI0MzU0MzE0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQzNTg5MTU0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSYXRlIFRhYmxlIFVwZGF0ZSoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgLiBJIHNlZSBpdCdzIGNhbGxpbmcgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2tgLCB3aGljaCBpcyBpbnRlcmVzdGluZyDigJMgbGlrZWx5IGluZGljYXRpbmcgc29tZSBraW5kIG9mIHJhdGUgc2VsZWN0aW9uIG9yIG1hc2sgbWFuaXB1bGF0aW9uLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCB0aGF0J3MgdGhlIGRlcGVuZGVuY3kuIEJ1dCB3aGF0IHRyaWdnZXJzICp0aGlzKiBmdW5jdGlvbiwgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAsIGluIHRoZSBmaXJzdCBwbGFjZT9cIiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dC4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgaXRzIGNhbGwgc2l0ZXMuIFdoYXQgZXZlbnRzIG9yIHN0YXRlIGNoYW5nZXMgbmVjZXNzaXRhdGUgdXBkYXRpbmcgdGhlIHJhdGUgdGFibGU/IElzIHRoaXMgdHJpZ2dlcmVkIG9uIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCwgY2hhbm5lbCBjaGFuZ2VzLCBwb3dlciBzYXZlIGV2ZW50cywgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRpbWUgdG8gZGlnIGludG8gdGhlIGNvZGUgYW5kIHNlZSB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIGFjdHVhbGx5ICp1c2VkKi4gVGhpcyB3aWxsIGdpdmUgbWUgdGhlIGNydWNpYWwgY29udGV4dCBJIG5lZWQgdG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIHdpdGhpbi4gSeKAmWxsIGxvb2sgZm9yIHRoZSBjYWxscyB0byBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCB0byBmaW5kIHRoZSB0cmlnZ2VyIGFuZCB1c2UgdGhhdCBpbmZvcm1hdGlvbiB0byBhc3Nlc3MgdGhlIHJhdGUgbWFuYWdlbWVudCBzY2hlbWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY3NzksIk91dHB1dFRva2VucyI6NTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo1Ni41NjAyNTA1MVoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjI5MDkzODQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuYz0xODkzPXN0YXRpYyB2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMjAyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmM6MjAzMDp2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmMtMjAzMS1cXHRcXHRcXHRcXHQgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuaD03OD1ib29sIHJ0bDkyY3VfcGh5X21hY19jb25maWcoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3UvaHcuaDo3OTp2b2lkIHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L2h3LmgtODAtXFx0XFx0XFx0XFx0IHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmM9ODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY3VfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDAtXFx0LnNldF9od19yZWcgPSBydGw5MmN1X3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jOjEwMTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYy0xMDItXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyY3VfdHhfZmlsbF9kZXNjLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNjo1Ni42MjMxNjk5MzRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI4NDY3NzgxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFJhdGUgVGFibGUgVXBkYXRlIGluIHRoZSBSVEw4MTkyQ1UgVVNCIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY2hhbmdlLCBhbmQgaXQgc2VlbXMgdGhlIGNvcmUgb2YgaXQgcmV2b2x2ZXMgYXJvdW5kIGhvdyB0aGUgcmF0ZSB0YWJsZSBpcyBiZWluZyB1cGRhdGVkIHdpdGhpbiB0aGUgYHJ0bDgxOTJjdV9oYWxfb3BzYCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSBhc3NpZ25lZCB0byBgLnVwZGF0ZV9yYXRlX3RibGAuIFRoaXMgaXMsIGZ1bmRhbWVudGFsbHksIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aGluIHRoZSBVU0IgZHJpdmVyIGZvciB0aGUgUlRMODE5MkNVLlxuXG5UaGUgZW50cnkgcG9pbnQgc2VlbXMgdG8gYmUgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuIEJ1dCBob2xkIG9uLi4uIHRoYXQgZnVuY3Rpb24gaXMsIGluIHR1cm4sIGNhbGxlZCBieSBgdXBkYXRlX3JhdGVfdGJsYCB3aGljaCBpcyBkZWZpbmVkIGluIGBydGxfaGFsX29wc2AuIEFscmlnaHQsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGNhbGwgY2hhaW4gYW5kIHdoZXJlIGB1cGRhdGVfcmF0ZV90YmxgIGl0c2VsZiBpcyBiZWluZyBpbnZva2VkLiBCZXN0IHRvIHRyYWNlIGJhY2sgdG8gd2hlcmUgKnRoYXQqIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBnZXQgdGhlIGZ1bGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NzY4MCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNzowMC45MDc4NTA1NTRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMzU5ODY3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ1cGRhdGVfcmF0ZV90YmxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvYmFzZS5jPTI0MzQ9aW50IHJ0bF9zZW5kX3NtcHNfYWN0aW9uKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYy0yNDcwLVxcdFxcdHN0YV9lbnRyeS1cXHUwMDNlbWltb19wcyA9IHNtcHM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYzoyNDcxOlxcdFxcdC8qIHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSwgMCwgdHJ1ZSk7ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2Jhc2UuYy0yNDcyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz04NTc9c3RhdGljIGludCBydGxfb3Bfc3RhX2FkZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtODk2LVxcdFxcdFxcdFxcXCJBZGQgc3RhIGFkZHIgaXMgJXBNXFxcXG5cXFwiLCBzdGEtXFx1MDAzZWFkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmM6ODk3OlxcdFxcdHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSwgMCwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy04OTgtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYz0xMDA4PXN0YXRpYyB2b2lkIHJ0bF9vcF9ic3NfaW5mb19jaGFuZ2VkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL2NvcmUuYy0xMTI1LVxcdFxcdFxcdGlmICh2aWYtXFx1MDAzZXR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvY29yZS5jOjExMjY6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLCAwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9jb3JlLmMtMTEyNy1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICB0cnVlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYz0xMTMxPXN0YXRpYyB2b2lkIHJ0bDg4ZV9kbV9yZWZyZXNoX3JhdGVfYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk0LVxcdFxcdFxcdGlmIChzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxODhlZS9kbS5jOjExOTU6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvZG0uYy0xMTk2LVxcdFxcdFxcdFxcdFxcdFxcdFxcdHBfcmEtXFx1MDAzZXJhdHJfc3RhdGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmM9MTkzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE4OGVlX2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmMtMjExLVxcdC5zZXRfaHdfcmVnID0gcnRsODhlZV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTg4ZWUvc3cuYzoyMTI6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDg4ZWVfdXBkYXRlX2hhbF9yYXRlX3RibCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE4OGVlL3N3LmMtMjEzLVxcdC5maWxsX3R4X2Rlc2MgPSBydGw4OGVlX3R4X2ZpbGxfZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYz0xNzA9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyY2VfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYy0xODgtXFx0LnNldF9od19yZWcgPSBydGw5MmNlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjZS9zdy5jOjE4OTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJjZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY2Uvc3cuYy0xOTAtXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyY2VfdHhfZmlsbF9kZXNjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jPTg0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE5MmN1X2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAwLVxcdC5zZXRfaHdfcmVnID0gcnRsOTJjdV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyY3Uvc3cuYzoxMDE6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMtMTAyLVxcdC5maWxsX3R4X2Rlc2MgPSBydGw5MmN1X3R4X2ZpbGxfZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYz0xODc9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyZGVfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZGUvc3cuYy0yMDUtXFx0LnNldF9od19yZWcgPSBydGw5MmRlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkZS9zdy5jOjIwNjpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJkX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJkZS9zdy5jLTIwNy1cXHQuZmlsbF90eF9kZXNjID0gcnRsOTJkZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmM9MTg1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODE5MmR1X2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MmR1L3N3LmMtMjAxLVxcdC5zZXRfaHdfcmVnID0gcnRsOTJkdV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvc3cuYzoyMDI6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDkyZF91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZHUvc3cuYy0yMDMtXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDkyZHVfdHhfZmlsbF9kZXNjLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jPTg1Nj1zdGF0aWMgdm9pZCBydGw5MmVlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9kbS5jLTg5MC1cXHRcXHRcXHRpZiAoc3RhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvZG0uYzo4OTE6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvZG0uYy04OTItXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgcF9yYS1cXHUwMDNlcmF0cl9zdGF0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYz0xNzk9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4MTkyZWVfaGFsX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYy0xOTctXFx0LnNldF9od19yZWcgPSBydGw5MmVlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJlZS9zdy5jOjE5ODpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsOTJlZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyZWUvc3cuYy0xOTktXFx0LnJ4X2Rlc2NfYnVmZl9yZW1haW5lZF9jbnQgPSBydGw5MmVlX3J4X2Rlc2NfYnVmZl9yZW1haW5lZF9jbnQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmM9MjAxPXN0YXRpYyB2b2lkIF9ydGw5MnNfZG1fcmVmcmVzaF9yYXRlYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4MTkyc2UvZG0uYy0yNzQtXFx0XFx0XFx0aWYgKHN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmM6Mjc1OlxcdFxcdFxcdFxcdHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL2RtLmMtMjc2LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIHJhLVxcdTAwM2VyYXRyX3N0YXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jPTIyND1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDgxOTJzZV9oYWxfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jLTI0Mi1cXHQuc2V0X2h3X3JlZyA9IHJ0bDkyc2Vfc2V0X2h3X3JlZyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODE5MnNlL3N3LmM6MjQzOlxcdC51cGRhdGVfcmF0ZV90YmwgPSBydGw5MnNlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDgxOTJzZS9zdy5jLTI0NC1cXHQuZmlsbF90eF9kZXNjID0gcnRsOTJzZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2FlL2RtLmM9NTU0PXN0YXRpYyB2b2lkIHJ0bDg3MjNlX2RtX3JlZnJlc2hfcmF0ZV9hZGFwdGl2ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9kbS5jLTYyNi1cXHRcXHRcXHRpZiAoc3RhKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYzo2Mjc6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodywgc3RhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvZG0uYy02MjgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgcF9yYS1cXHUwMDNlcmF0cl9zdGF0ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYWUvc3cuYz0xODY9c3RhdGljIGNvbnN0IHN0cnVjdCBydGxfaGFsX29wcyBydGw4NzIzZV9oYWxfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jLTIwNC1cXHQuc2V0X2h3X3JlZyA9IHJ0bDg3MjNlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNhZS9zdy5jOjIwNTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2VfdXBkYXRlX2hhbF9yYXRlX3RibCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2FlL3N3LmMtMjA2LVxcdC5maWxsX3R4X2Rlc2MgPSBydGw4NzIzZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmM9OTAyPXN0YXRpYyB2b2lkIHJ0bDg3MjNiZV9kbV9yZWZyZXNoX3JhdGVfYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4NzIzYmUvZG0uYy05NjAtXFx0XFx0XFx0aWYgKHN0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmM6OTYxOlxcdFxcdFxcdFxcdHJ0bHByaXYtXFx1MDAzZWNmZy1cXHUwMDNlb3BzLVxcdTAwM2V1cGRhdGVfcmF0ZV90YmwoaHcsIHN0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL2RtLmMtOTYyLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIHBfcmEtXFx1MDAzZXJhdHJfc3RhdGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmM9MTkwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRsX2hhbF9vcHMgcnRsODcyM2JlX2hhbF9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODcyM2JlL3N3LmMtMjA4LVxcdC5zZXRfaHdfcmVnID0gcnRsODcyM2JlX3NldF9od19yZWcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNiZS9zdy5jOjIwOTpcXHQudXBkYXRlX3JhdGVfdGJsID0gcnRsODcyM2JlX3VwZGF0ZV9oYWxfcmF0ZV90YmwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg3MjNiZS9zdy5jLTIxMC1cXHQuZmlsbF90eF9kZXNjID0gcnRsODcyM2JlX3R4X2ZpbGxfZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvZG0uYz0yMzQyPXN0YXRpYyB2b2lkIHJ0bDg4MjFhZV9kbV9yZWZyZXNoX3JhdGVfYWRhcHRpdmVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvZG0uYy0yNDAwLVxcdFxcdFxcdGlmIChzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9kbS5jOjI0MDE6XFx0XFx0XFx0XFx0cnRscHJpdi1cXHUwMDNlY2ZnLVxcdTAwM2VvcHMtXFx1MDAzZXVwZGF0ZV9yYXRlX3RibChodyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvcnRsODgyMWFlL2RtLmMtMjQwMi1cXHRcXHRcXHRcXHRcXHRcXHRzdGEsIHBfcmEtXFx1MDAzZXJhdHJfc3RhdGUsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jPTIzMj1zdGF0aWMgY29uc3Qgc3RydWN0IHJ0bF9oYWxfb3BzIHJ0bDg4MjFhZV9oYWxfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3J0bDg4MjFhZS9zdy5jLTI1MC1cXHQuc2V0X2h3X3JlZyA9IHJ0bDg4MjFhZV9zZXRfaHdfcmVnLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYzoyNTE6XFx0LnVwZGF0ZV9yYXRlX3RibCA9IHJ0bDg4MjFhZV91cGRhdGVfaGFsX3JhdGVfdGJsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS9ydGw4ODIxYWUvc3cuYy0yNTItXFx0LmZpbGxfdHhfZGVzYyA9IHJ0bDg4MjFhZV90eF9maWxsX2Rlc2MsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oPTIxNjA9c3RydWN0IHJ0bF9oYWxfb3BzIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnRsd2lmaS93aWZpLmgtMjE4Ni1cXHR2b2lkICgqc2V0X2h3X3JlZykoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHU4IHZhcmlhYmxlLCB1OCAqdmFsKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0bHdpZmkvd2lmaS5oOjIxODc6XFx0dm9pZCAoKnVwZGF0ZV9yYXRlX3RibCkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydGx3aWZpL3dpZmkuaC0yMTg4LVxcdFxcdFxcdFxcdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHU4IHJzc2lfbGV2ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTU6Mzc6MDEuMDIxNDU0MzYzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEwOTgxNTAyNjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYCBGdW5jdGlvbiBhbmQgaXRzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgSSd2ZSBpZGVudGlmaWVkIHRoZSB0YXJnZXQgZnVuY3Rpb24gYXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuIEkndmUgY29uZmlybWVkIGl0J3MgcmVhY2hhYmxlIGZyb20gc2V2ZXJhbCBtYWM4MDIxMSBjYWxsYmFja3Mg4oCTIGBydGxfb3Bfc3RhX2FkZGAsIGBydGxfb3BfYnNzX2luZm9fY2hhbmdlZGAg4oCTIGFuZCBvdGhlciBwYXRocyBsaWtlIGBydGxfc2VuZF9zbXBzX2FjdGlvbmAgYW5kIGBydGw4OGVfZG1fcmVmcmVzaF9yYXRlX2FkYXB0aXZlX21hc2tgLiBUaGlzIGNvbmZpcm1zIGl0cyByZWxldmFuY2UuIFRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgdGhlIGBSVEw4MTkyQ1VgLCB3aGljaCwgZnJvbSBteSBleHBlcmllbmNlLCBpcyBhIFVTQiBkcml2ZXIuXG5cbkkgaW5pdGlhbGx5IGNvbnNpZGVyZWQgdGhlIG5lY2Vzc2FyeSBjb25maWdzIGJlaW5nIGBSVEw4MTkyQ1VgLCBgTUFDODAyMTFgLCBhbmQgYFVTQmAsIGJ1dCByZWFsaXplZCBgUlRMODE5MkNVYCBpbmhlcmVudGx5IGRlcGVuZHMgb24gYm90aCBgVVNCYCBhbmQgYE1BQzgwMjExYC4gU2luY2UgYFJUTDgxOTJDVWAgaXMgdHJpc3RhdGUsIEkgY29uZmlybWVkIHRoYXQgaXQgaXMgdGhlIG9ubHkgbmVjZXNzYXJ5IGNvbmZpZy4gVGhlIG1haW4gZnVuY3Rpb24gdG8gZm9jdXMgb24gaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAsIGJ1dCBJIG5vdGUgdGhhdCBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfbWFza2AgaXMgc3RhdGljOyB0aGVyZWZvcmUsIGl0IGlzIGxpa2VseSBpbmxpbmVkLiBJIHZlcmlmaWVkIHRoYXQgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAgaXMgaW5kZWVkIGV4cG9ydGVkIGFuZCBub24tc3RhdGljOiBgdm9pZCBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90Ymwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsIHU4IHJzc2lfbGV2ZWwsIGJvb2wgdXBkYXRlX2J3KWAuXG5cbkkndmUgYWxzbyBkb3VibGUtY2hlY2tlZCB0aGUgY29uZmlncy4gYFJUTDgxOTJDVWAgYWxvbmUgaXMgc3VmZmljaWVudCwgYXMgYFJUTFdJRklgIGFuZCBgUlRMODE5MkNfQ09NTU9OYCBhcmUgc2VsZWN0ZWQgYnkgYFJUTDgxOTJDVWAuXG5cblJldmlld2luZyB0aGUgcGF0Y2gsIGl0IHNlZW1zIHRoZSBjb3JlIGNoYW5nZSByZW1vdmVzIGBtaW1vX3BzYCBhbmQgc3BlY2lmaWNhbGx5IHRoZSBgaWYgKG1pbW9fcHMgPT0gSUVFRTgwMjExX1NNUFNfU1RBVElDKWAgYnJhbmNoLiBUaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIG1ha2luZyBpdCBwcmltZSBmb3IgZnV6emluZy4gR2l2ZW4gdGhlIFVTQiBuYXR1cmUgb2YgdGhlIGRyaXZlciwgSSBjYW4gZWFzaWx5IHRhcmdldCB0aGlzIHdpdGggZHVtbXlfaGNkIG9yIHJhdyBnYWRnZXQgc2V0dXBzLiBDb25zaWRlcmluZyB0aGUgZnVuY3Rpb25hbCBjaGFuZ2UgYW5kIHRoZSBkcml2ZXIncyBVU0IgYXNwZWN0LCBgV29ydGhGdXp6aW5nYCBpcyBkZWZpbml0ZWx5IHRydWUuXG5cblNvLCB0byBzdW1tYXJpemU6XG5cbiogICBDb25maWdzOiBgUlRMODE5MkNVYFxuKiAgIEZvY3VzIFN5bWJvbHM6IGBydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxgXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExODE1LCJPdXRwdXRUb2tlbnMiOjE0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY1NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxNTozNzoxMi4wMDI5NTkwNThaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjg3NTE1MzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlJUTDgxOTJDVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSByYXRlIG1hc2sgdXBkYXRlIGxvZ2ljIGluIHRoZSBSZWFsdGVrIFJUTDgxOTJDVSBVU0IgV2ktRmkgZHJpdmVyLiBJdCByZW1vdmVzIHRoZSBTTVBTIHN0YXRpYyBjb25kaXRpb24gYW5kIHNpbXBsaWZpZXMgdGhlIHJhdGUgbWFzayBjYWxjdWxhdGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgVVNCIGRyaXZlciwgd2hpY2ggY2FuIGJlIGZ1enplZCB1c2luZyBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QvcmF3IGdhZGdldCkuIFRoZSBlbnRyeSBwb2ludCBmb3IgdGhpcyBsb2dpYyBpcyBgcnRsOTJjdV91cGRhdGVfaGFsX3JhdGVfdGJsYC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJSVEw4MTkyQ1VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJydGw5MmN1X3VwZGF0ZV9oYWxfcmF0ZV90YmxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcmF0ZSBtYXNrIHVwZGF0ZSBsb2dpYyBpbiB0aGUgUmVhbHRlayBSVEw4MTkyQ1UgVVNCIFdpLUZpIGRyaXZlci4gSXQgcmVtb3ZlcyB0aGUgU01QUyBzdGF0aWMgY29uZGl0aW9uIGFuZCBzaW1wbGlmaWVzIHRoZSByYXRlIG1hc2sgY2FsY3VsYXRpb24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIFVTQiBkcml2ZXIsIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdXNpbmcgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkL3JhdyBnYWRnZXQpLiBUaGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgbG9naWMgaXMgYHJ0bDkyY3VfdXBkYXRlX2hhbF9yYXRlX3RibGAuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[1] Phase: Succeeded StartedAt: 2026-08-03 15:37:23 +0000 UTC FinishedAt: 2026-08-03 15:37:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-03 15:37:23 +0000 UTC FinishedAt: 2026-08-03 15:37:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2] Phase: Succeeded StartedAt: 2026-08-03 15:37:23 +0000 UTC FinishedAt: 2026-08-03 16:21:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:37:23 +0000 UTC FinishedAt: 2026-08-03 16:21:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:37:23 +0000 UTC FinishedAt: 2026-08-03 15:37:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:37:23 +0000 UTC FinishedAt: 2026-08-03 15:37:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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-workflowh9g2q/series-workflowh9g2q-convert-artifact-3848075902/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:37:33 +0000 UTC FinishedAt: 2026-08-03 15:54:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:37:33 +0000 UTC FinishedAt: 2026-08-03 15:54:36 +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:*bc4a8a5c-173b-43cd-b2a4-729199b2aa95,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-workflowh9g2q/series-workflowh9g2q-convert-artifact-3848075902/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": "edb9f769-a796-4689-bf33-5c7359347fb4", "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-workflowh9g2q/series-workflowh9g2q-build-action-3117146724/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:37:33 +0000 UTC FinishedAt: 2026-08-03 15:54:26 +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:*bc4a8a5c-173b-43cd-b2a4-729199b2aa95,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-workflowh9g2q/series-workflowh9g2q-convert-artifact-3848075902/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": "edb9f769-a796-4689-bf33-5c7359347fb4", "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-workflowh9g2q/series-workflowh9g2q-build-action-3117146724/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:54:36 +0000 UTC FinishedAt: 2026-08-03 15:54:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:54:36 +0000 UTC FinishedAt: 2026-08-03 15:54:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:54:36 +0000 UTC FinishedAt: 2026-08-03 15:54:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:54:36 +0000 UTC FinishedAt: 2026-08-03 15:54:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-workflowh9g2q/series-workflowh9g2q-convert-artifact-2257792689/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:54:46 +0000 UTC FinishedAt: 2026-08-03 15:56:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:54:46 +0000 UTC FinishedAt: 2026-08-03 15:56:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*edb9f769-a796-4689-bf33-5c7359347fb4,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-workflowh9g2q/series-workflowh9g2q-build-action-3117146724/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-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:56:55 +0000 UTC FinishedAt: 2026-08-03 15:56:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:56:55 +0000 UTC FinishedAt: 2026-08-03 15:56:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:56:55 +0000 UTC FinishedAt: 2026-08-03 16:14:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:56:55 +0000 UTC FinishedAt: 2026-08-03 16:14:05 +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:*bc4a8a5c-173b-43cd-b2a4-729199b2aa95,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-workflowh9g2q/series-workflowh9g2q-convert-artifact-2257792689/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": "37d8bda0-737d-45ac-87c7-bb19f422a16a", "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-workflowh9g2q/series-workflowh9g2q-build-action-97938557/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 15:56:55 +0000 UTC FinishedAt: 2026-08-03 16:13:55 +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:*bc4a8a5c-173b-43cd-b2a4-729199b2aa95,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-workflowh9g2q/series-workflowh9g2q-convert-artifact-2257792689/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": "37d8bda0-737d-45ac-87c7-bb19f422a16a", "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-workflowh9g2q/series-workflowh9g2q-build-action-97938557/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:14:05 +0000 UTC FinishedAt: 2026-08-03 16:14:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:14:05 +0000 UTC FinishedAt: 2026-08-03 16:14:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:14:05 +0000 UTC FinishedAt: 2026-08-03 16:16:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:14:05 +0000 UTC FinishedAt: 2026-08-03 16:16:17 +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:*37d8bda0-737d-45ac-87c7-bb19f422a16a,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-workflowh9g2q/series-workflowh9g2q-build-action-97938557/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-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:27 +0000 UTC FinishedAt: 2026-08-03 16:21:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:27 +0000 UTC FinishedAt: 2026-08-03 16:21:18 +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":["rtl92cu_update_hal_rate_tbl"],"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:*edb9f769-a796-4689-bf33-5c7359347fb4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*37d8bda0-737d-45ac-87c7-bb19f422a16a,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-workflowh9g2q/series-workflowh9g2q-build-action-3117146724/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-workflowh9g2q/series-workflowh9g2q-build-action-97938557/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:27 +0000 UTC FinishedAt: 2026-08-03 16:16:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:27 +0000 UTC FinishedAt: 2026-08-03 16:16:33 +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":["rtl92cu_update_hal_rate_tbl"],"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-workflowh9g2q/series-workflowh9g2q-convert-artifact-709600358/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:27 +0000 UTC FinishedAt: 2026-08-03 16:16:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:27 +0000 UTC FinishedAt: 2026-08-03 16:16:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:27 +0000 UTC FinishedAt: 2026-08-03 16:16:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:38 +0000 UTC FinishedAt: 2026-08-03 16:21:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowh9g2q[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"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":["rtl92cu_update_hal_rate_tbl"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"6c5fc504d0d6934132637aa3db4b9b58148eaa78","config_name":"upstream-apparmor-kasan.config","enable_configs":["RTL8192CU"],"series_id":"4f5729d8-f4ed-49d2-be4b-3e4ba715eb39","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-03 16:16:38 +0000 UTC FinishedAt: 2026-08-03 16:20:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*edb9f769-a796-4689-bf33-5c7359347fb4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*37d8bda0-737d-45ac-87c7-bb19f422a16a,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-workflowh9g2q/series-workflowh9g2q-build-action-3117146724/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-workflowh9g2q/series-workflowh9g2q-build-action-97938557/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-workflowh9g2q/series-workflowh9g2q-convert-artifact-709600358/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,}