Name: series-workflowjj2h2 Phase: Succeeded StartedAt: 2026-07-23 02:16:26 +0000 UTC FinishedAt: 2026-07-23 04:31:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[0] Phase: Succeeded StartedAt: 2026-07-23 02:16:26 +0000 UTC FinishedAt: 2026-07-23 02:52:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[0].run-triage Phase: Succeeded StartedAt: 2026-07-23 02:16:26 +0000 UTC FinishedAt: 2026-07-23 02:52:21 +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": "3826a4d293abb82826dc79ad682d7f885f125dc5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "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": "3826a4d293abb82826dc79ad682d7f885f125dc5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "series_id": "7edae493-e04b-4153-a25a-ae70022cac9a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "brcmf_p2p_abort_action_frame", "brcmf_p2p_send_action_frame" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUmIzM0OywKICAgICYjMzQ7YnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZXMgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSBkdXJpbmcgUDJQIGFjdGlvbiBmcmFtZSBoYW5kbGluZy4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UgYW5kIGNhbiBiZSBmdXp6ZWQgdXNpbmcgdmlydHVhbGl6ZWQgVVNCIGRldmljZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiYzVhYmI2NzQzYjQ1MDllNzNmMDllYmE2Zjg1MjcyOGRjOTUwMTliXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDI6NDg6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG5pbmRleCA5MmMxNmEzMTczMjg4Yi4uNjY1NTdiZTI4ZTdiMTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuQEAgLTEyODMsNiAmIzQzOzEyODMsOSBAQCBzdGF0aWMgczMyIGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcbiBcdGJyY21mX2RiZyhUUkFDRSwgXCYjMzQ7RW50ZXJcXG5cJiMzNDspO1xuIFxuIFx0dmlmID0gcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZjtcbiYjNDM7XHRpZiAoIXZpZilcbiYjNDM7XHRcdHZpZiA9IHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfUFJJTUFSWV0udmlmO1xuJiM0MztcbiBcdGVyciA9IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9zZXQodmlmLVx1MDAzZWlmcCwgXCYjMzQ7YWN0ZnJhbWVfYWJvcnRcJiMzNDssIFx1MDAyNmludF92YWwsXG4gXHRcdFx0XHRcdHNpemVvZihzMzIpKTtcbiBcdGlmIChlcnIpXG5AQCAtMTgxOSw2ICYjNDM7MTgyMiw3IEBAIGJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuIFx0LyogdmFsaWRhdGUgY2hhbm5lbCBhbmQgcDJwIGllcyAqL1xuIFx0aWYgKGNvbmZpZ19hZl9wYXJhbXMuc2VhcmNoX2NoYW5uZWwgXHUwMDI2XHUwMDI2XG4gXHQgICAgSVNfUDJQX1NPQ0lBTF9DSEFOTkVMKGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cdTAwM2VjaGFubmVsKSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYgXHUwMDI2XHUwMDI2XG4gXHQgICAgcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZi1cdTAwM2VzYXZlZF9pZS5wcm9iZV9yZXFfaWVfbGVuKSB7XG4gXHRcdGFmeF9oZGwgPSBcdTAwMjZwMnAtXHUwMDNlYWZ4X2hkbDtcbiBcdFx0YWZ4X2hkbC1cdTAwM2VwZWVyX2xpc3Rlbl9jaGFuID0gbGUzMl90b19jcHUoYWZfcGFyYW1zLVx1MDAzZWNoYW5uZWwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiYzVhYmI2NzQzYjQ1MDllNzNmMDllYmE2Zjg1MjcyOGRjOTUwMTliCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMjMgMDI6NDg6NDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKaW5kZXggOTJjMTZhMzE3MzI4OGIuLjY2NTU3YmUyOGU3YjE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jCkBAIC0xMjgzLDYgJiM0MzsxMjgzLDkgQEAgc3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpCiAJYnJjbWZfZGJnKFRSQUNFLCAmIzM0O0VudGVyXG4mIzM0Oyk7CiAKIAl2aWYgPSBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZjsKJiM0MzsJaWYgKCF2aWYpCiYjNDM7CQl2aWYgPSBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19QUklNQVJZXS52aWY7CiYjNDM7CiAJZXJyID0gYnJjbWZfZmlsX2Jzc2NmZ19kYXRhX3NldCh2aWYtJmd0O2lmcCwgJiMzNDthY3RmcmFtZV9hYm9ydCYjMzQ7LCAmYW1wO2ludF92YWwsCiAJCQkJCXNpemVvZihzMzIpKTsKIAlpZiAoZXJyKQpAQCAtMTgxOSw2ICYjNDM7MTgyMiw3IEBAIGJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLAogCS8qIHZhbGlkYXRlIGNoYW5uZWwgYW5kIHAycCBpZXMgKi8KIAlpZiAoY29uZmlnX2FmX3BhcmFtcy5zZWFyY2hfY2hhbm5lbCAmYW1wOyZhbXA7CiAJICAgIElTX1AyUF9TT0NJQUxfQ0hBTk5FTChsZTMyX3RvX2NwdShhZl9wYXJhbXMtJmd0O2NoYW5uZWwpKSAmYW1wOyZhbXA7CiYjNDM7CSAgICBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZiAmYW1wOyZhbXA7CiAJICAgIHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmLSZndDtzYXZlZF9pZS5wcm9iZV9yZXFfaWVfbGVuKSB7CiAJCWFmeF9oZGwgPSAmYW1wO3AycC0mZ3Q7YWZ4X2hkbDsKIAkJYWZ4X2hkbC0mZ3Q7cGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy0mZ3Q7Y2hhbm5lbCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNDgKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBicmNtZm1hY2AsIHNwZWNpZmljYWxseSBpbiBgcDJwLmNgLiBUaGV5JiMzOTt2ZSBhZGRlZCBudWxsIGNoZWNrcyBmb3IgYHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYCB3aXRoaW4gdHdvIGZ1bmN0aW9uczogYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYC4gQ2xhc3NpYyBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIHdoaWNoIHByb2JhYmx5IG1lYW5zIHNvbWVvbmUgZm91bmQgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eSByZWxhdGVkIHRvIGFjY2Vzc2luZyBhIG51bGwgcG9pbnRlciBpbiB0aGVzZSBmdW5jdGlvbnMuIEludGVyZXN0aW5nLgoKTm93LCBsZXQmIzM5O3MgdGhpbmsgYWJvdXQgZnV6emluZyB0aGlzLiBJdCYjMzk7cyBhIHdpcmVsZXNzIGRyaXZlciwgc28gdGhlIG5hdHVyYWwgaW5jbGluYXRpb24gaXMgdG8gdGhpbmsgYWJvdXQgbWFjODAyMTFfaHdzaW0uIEJ1dCB3YWl0LCBgYnJjbWZtYWNgIGlzIGEgKmZ1bGxtYWMqIGRyaXZlciwgcmlnaHQ/IFRoYXQgbWVhbnMgaXQgb2ZmbG9hZHMgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgdGhlIDgwMi4xMSBwcm9jZXNzaW5nIHRvIGZpcm13YXJlIHRoYXQmIzM5O3MgcnVubmluZyBvbiBhbiBleHRlcm5hbCBkZXZpY2Ug4oCTIHByb2JhYmx5IG92ZXIgU0RJTywgVVNCLCBvciBQQ0llLiBTbywgZGlyZWN0IG1hYzgwMjExLWxldmVsIGZ1enppbmcgcHJvYmFibHkgaXNuJiMzOTt0IHRoZSBiZXN0IGFwcHJvYWNoLgoKU28sIGhvdyBjYW4gd2UgYWN0dWFsbHkgZnV6eiB0aGlzPyBJZiBpdCB0YWxrcyB0byB0aGUgaG9zdCB2aWEgVVNCLCB0aGVuIHdlIGNhbiBsaWtlbHkgZW11bGF0ZSB0aGUgZGV2aWNlIHdpdGggYSBkdW1teSBoY2Qgb3Igc29tZXRoaW5nIHNpbWlsYXIgbGlrZSBzeXprYWxsZXIgZG9lcy4gVGhpcyB3b3VsZCBtZWFuIGNyZWF0aW5nIGNyYWZ0ZWQgVVNCIHRyYWZmaWMgdG8gYXR0YWNrIHRoZSBkcml2ZXIgaW4gdGhpcyBtb2RlLiBMZXQgbWUgY2hlY2sgaWYgYGJyY21mbWFjYCBldmVuIGhhcyBVU0Igc3VwcG9ydC4uLiB0aGF0JiMzOTtzIHRoZSBrZXkgcXVlc3Rpb24gbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUkNNRk1BQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE6Y29uZmlnIEJSQ01GTUFDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEyLVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNDpjb25maWcgQlJDTUZNQUNfUFJPVE9fTVNHQlVGXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNS1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVx0Ym9vbCBcJiMzNDtTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTMwLVx0Ym9vbCBcJiMzNDtVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6NDA6Y29uZmlnIEJSQ01GTUFDX1BDSUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTQxLVx0Ym9vbCBcJiMzNDtQQ0lFIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDQ0CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogNzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUuLi4KCioqVVNCIEZ1enppbmcgQW5hbHlzaXMqKgoKUmlnaHQsIGBCUkNNRk1BQ19VU0JgIGlzIGRlZmluaXRlbHkgc3VwcG9ydGVkLiBUaGF0IGNvbmZpcm1zIHdoYXQgSSBzdXNwZWN0ZWQsIFN5emthbGxlciBpcyBpbmRlZWQgZnV6emluZyBVU0IgZGV2aWNlcywgYW5kIHRoYXQmIzM5O3MgdGhlIHZlY3RvciB3ZSYjMzk7cmUgY29uY2VybmVkIHdpdGggaGVyZS4gU28sIGxvZ2ljYWxseSwgdGhpcyBjb2RlICppcyogcmVhY2hhYmxlIHRocm91Z2ggVVNCIGZ1enppbmcuIE5vdywgSSBuZWVkIHRvIGZvY3VzIG9uIHRob3NlIHR3byBzcGVjaWZpYyBmdW5jdGlvbnMgbWVudGlvbmVkOiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgYW5kIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLiBUaGV5IGFyZSBteSBwcmltYXJ5IHRhcmdldHMgZm9yIGZ1cnRoZXIgYW5hbHlzaXMgd2l0aGluIHRoZSBVU0IgZnV6emluZyBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhleeKAmXJlIGNhbGxlZCwgd2hhdCB0aGVpciBpbnB1dHMgYXJlLCBhbmQgaG93IHRoZXkgaW50ZXJhY3QgdG8gaWRlbnRpZnkgYW55IHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEyMjU9Ym9vbCBicmNtZl9wMnBfc2Nhbl9maW5kaW5nX2NvbW1vbl9jaGFubmVsKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEyNzAtLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI3MTogKiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKCkgLSBhYm9ydCBhY3Rpb24gZnJhbWUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3Mi0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMjc1LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEyNzY6c3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzMDQ9YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzE4LVx0XHRcdC8qIGFib3J0IGFjdGZyYW1lIHVzaW5nIGFjdGZyYW1lX2Fib3J0IG9yIGFib3J0IHNjYW4gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxMzE5Olx0XHRcdGVyciA9IGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzIwLVx0XHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI4NQoJCQkJCQkJb3V0cHV0OiA1OQoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgaW50ZXJhY3Rpb24sIHByZXNlbnRlZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgaXQgbXlzZWxmLCBhbmQgdGFpbG9yZWQgZm9yIHNvbWVvbmUgZmFtaWxpYXIgd2l0aCBlbWJlZGRlZCBzeXN0ZW1zIGFuZCBkcml2ZXIgZGV2ZWxvcG1lbnQ6CgoqKkFuYWx5emluZyB0aGUgYnJjbWZfcDJwIEFjdGlvbiBGcmFtZSBGbG93KioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgLiBJdCBzZWVtcyBwcmV0dHkgY2xlYXIgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGRpcmVjdGx5IHRyaWdnZXJlZCBieSBhIGNhbGwgdG8gYGJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWVgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGEgZmV3IHRoaW5ncy4gRmlyc3QsIHRoaXMgbGlrZWx5IGhhbmRsZXMgc29tZSBraW5kIG9mIGludGVycnVwdGlvbiBvciBjYW5jZWxsYXRpb24gc2NlbmFyaW8gcmVsYXRlZCB0byB0aGUgcHJvY2Vzc2luZyBvZiBQMlAgYWN0aW9uIGZyYW1lcy4gVGhlIGZhY3QgdGhhdCAmIzM5O2Fib3J0JiMzOTsgaXMgaW4gdGhlIG5hbWUgc29saWRpZmllcyB0aGlzLiBTZWNvbmQsIHRoZSAmIzM0O3dhaXQmIzM0OyBjb21wb25lbnQgaW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24mIzM5O3MgbmFtZSBzdWdnZXN0cyBhIHRpbWVkIHByb2Nlc3Mgb3IgYSBzcGVjaWZpYyBzZXF1ZW5jZSB3aGVyZSB0aGUgYWN0aW9uIGZyYW1lIGhhbmRsaW5nIG1pZ2h0IGJlIHB1dCBvbiBob2xkIHRlbXBvcmFyaWx5LiBQZXJoYXBzIHdhaXRpbmcgZm9yIGEgcmVzcG9uc2Ugb3IgYSBwYXJ0aWN1bGFyIHN0YXRlIHRvIGJlIHJlYWNoZWQuCgpNeSBpbml0aWFsIGFzc3VtcHRpb24gd291bGQgYmUgdGhhdCBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgZGVzaWduZWQgdG8gY2xlYW5seSB0ZWFyIGRvd24gb3IgaGFsdCB0aGUgY3VycmVudCBhY3Rpb24gZnJhbWUgcHJvY2Vzc2luZyBsb29wLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBkZWVwZXIgdG8gc2VlIGlmIGl0JiMzOTtzIGludm9sdmVkIGluIHJlbGVhc2luZyByZXNvdXJjZXMsIHJlc2V0dGluZyBzdGF0ZSB2YXJpYWJsZXMsIG9yIHNlbmRpbmcgc29tZSBzb3J0IG9mIG5vdGlmaWNhdGlvbiBiYWNrIHRvIHRoZSBwZWVyLiBLbm93aW5nIHdoYXQgaW5pdGlhdGVzIHRoaXMgYWJvcnQgaXMgY3JpdGljYWwuIElzIGl0IGEgdGltZW91dD8gQSBzcGVjaWZpYyBlcnJvciBjb25kaXRpb24/IEEgdXNlci1pbml0aWF0ZWQgY29tbWFuZD8gVW5kZXJzdGFuZGluZyB0aGF0IGNvbnRleHQgd2lsbCBkZXRlcm1pbmUgdGhlIG92ZXJhbGwgaW1wYWN0IG9uIHRoZSBQMlAgY29ubmVjdGlvbiBhbmQgc3Vic2VxdWVudCBzdGF0ZS4gSSBuZWVkIHRvIHRyYWNlIHRoZSBjYWxsaW5nIGNoYWluIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGZ1bGx5IHVuZGVyc3RhbmQgd2h5IGFuZCB3aGVuIHRoaXMgYWJvcnQgZnVuY3Rpb24gZ2V0cyB0cmlnZ2VyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEyNzY9c3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEyOTctLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI5ODogKiBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKCkgLSBmaW5pc2ggc2NhbiBpZiBhZiB0eCBjb21wbGV0ZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMjk5LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzMDM9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxMzA0OmJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzA1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTM0Mj1icmNtZl9wMnBfZ29uX3JlcV9jb2xsaXNpb24oc3RydWN0IGJyY21mX3AycF9pbmZvICpwMnAsIHU4ICptYWMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEzNzAtXHRcdFx0XHQgICAgICAgXHUwMDI2cDJwLVx1MDAzZXN0YXR1cykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTM3MTpcdFx0XHRicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKGNmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTM3Mi1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xMzkwPWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl9mcmFtZV9yeChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTQ1OS1cdFx0LyogU3RvcCB3YWl0aW5nIGZvciBuZXh0IEFGLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE0NjA6XHRcdGJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWUoY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNDYxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xNDk4PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTUyMy1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNTI0Olx0XHRcdGJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWUoY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNTI1LVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTY2NAoJCQkJCQkJb3V0cHV0OiA1NQoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZToKCioqTXkgUGVyc3BlY3RpdmUgb24gdGhlIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSBDYWxsKioKCkFscmlnaHQsIHNvIEkmIzM5O20gdHJhY2luZyB0aGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uIGNhbGwuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCYjMzk7cyBiZWluZyB0cmlnZ2VyZWQgZGlyZWN0bHkgYnkgdGhlIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCBmdW5jdGlvbi4gVGhpcyBjb25uZWN0aW9uIGlzIGtleS4gV2hhdCB0aGlzIHRlbGxzIG1lIGltbWVkaWF0ZWx5IGlzIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgdHJhbnNtaXNzaW9uIG9mIDgwMi4xMSBtYW5hZ2VtZW50IGZyYW1lcywgc3BlY2lmaWNhbGx5IHdpdGhpbiBhIFAyUCBjb250ZXh0LiBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAgaGFuZGxlcyB0aGUgZ2VuZXJhbCBmcmFtZXdvcmsgZm9yIHNlbmRpbmcgbWFuYWdlbWVudCBmcmFtZXMsIGFuZCB0aGlzIHNwZWNpZmljIGNhbGwsIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLCBpcyBsaWtlbHkgdGhlIGhvb2sgdG8gaGFuZGxlIHRoZSBzcGVjaWZpY3MgbmVlZGVkIGZvciBQMlAgYWN0aW9uIGZyYW1lcy4gVGhpcyBjb3VsZCBiZSB0aGluZ3MgbGlrZSBQMlAgaW52aXRhdGlvbiByZXF1ZXN0cywgR08gbmVnb3RpYXRpb24gZnJhbWVzLCBvciBhbnkgb3RoZXIgUDJQLXNwZWNpZmljIHByb3RvY29sIGV4Y2hhbmdlcyB0aGF0IHJpZGUgb24gdG9wIG9mIHN0YW5kYXJkIDgwMi4xMSBtYW5hZ2VtZW50IGZyYW1lcy4gSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSB3aXRoaW4gdGhlIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIHRvIHNlZSB3aGF0IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBvciBkYXRhIGlzIGJlaW5nIHByZXBhcmVkIG9yIGFkZGVkIHdpdGhpbiB0aGlzIHNwZWNpZmljIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMz1icmNtZl9jZmc4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjU2MzI6XHRcdGFjayA9IGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSh2aWYtXHUwMDNlaWZwLCBhZl9wYXJhbXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTY5OD1zdGF0aWMgYm9vbCBicmNtZl9wMnBfY2hlY2tfZHdlbGxfb3ZlcmZsb3codTMyIHJlcXVlc3RlZF9kd2VsbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwOS0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzEwOiAqIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSgpIC0gc2VuZCBhY3Rpb24gZnJhbWUgLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTEtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxNC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzE1OmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTYtXHRcdFx0XHQgc3RydWN0IGJyY21mX2ZpbF9hZl9wYXJhbXNfbGUgKmFmX3BhcmFtcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg9MTY5PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTcxLVx0XHRcdFx0XHR2b2lkICpkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaDoxNzI6Ym9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTczLVx0XHRcdFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2ODAyCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIEF0dGFjayBTdXJmYWNlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBhIGRpcmVjdCBwYXRoIGZyb20gYGJyY21mX2NmZzgwMjExX21nbXRfdHhgLCB3aGljaCBpcyBhIGBjZmc4MDIxMWAgb3BlcmF0aW9uLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgc2hvd2luZyBhIGNsZWFyIGVudHJ5IHBvaW50IGludG8gdGhlIHdpcmVsZXNzIHN0YWNrLiBBbmQgdGhlbiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgcmVhY2hhYmxlIHRocm91Z2ggZXZlbnQgaGFuZGxlcnMgbGlrZSBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fZnJhbWVfcnhgIGFuZCBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fdHhfY29tcGxldGVgLiBUaGlzIHJvdXRlIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBgbWFjODAyMTFgL2BjZmc4MDIxMWAgbmV0bGluayBpbnRlcmZhY2U7IGEgZGVmaW5pdGUgdGFyZ2V0LgoKTm93IEkgbmVlZCB0byBzZWUgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgbmVjZXNzYXJ5IGZvciBpdCB0byBiZSBlbmFibGVkLiBJIGtub3cgSSBuZWVkIGBCUkNNRk1BQ2AgYW5kLCBvZiBjb3Vyc2UsIGVpdGhlciBgQlJDTUZNQUNfVVNCYCBvciBvbmUgb2YgdGhlIG90aGVyIGhhcmR3YXJlLXNwZWNpZmljIG9wdGlvbnMuIEFoLCBnb29kLCBgQlJDTUZNQUNfVVNCYCBpcyBwZXJmZWN0LiBUaGlzIHNpbXBsaWZpZXMgdGhlIGludmVzdGlnYXRpb24uIEJ1dCB3aGF0IGFib3V0IFAyUC1zcGVjaWZpYyBjb25maWd1cmF0aW9uPyBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0byBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJDTUZNQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxOmNvbmZpZyBCUkNNRk1BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTUtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE3OmNvbmZpZyBCUkNNRk1BQ19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7U0RJTyBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7VVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy00MS1cdGJvb2wgXCYjMzQ7UENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc4OTcKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgZm9yIENvbmZpZyBPdmVybGFwKioKCkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzIHNwZWNpZmljIGRyaXZlciwgSSBuZWVkIHRvIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCByZWludmVudGluZyB0aGUgd2hlZWwgb3IgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cy4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIEkgc2hvdWxkIHF1aWNrbHkgZ2xhbmNlIGF0IHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWdgIGZpbGUuIEkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgY29uZmlybSB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zIG9yIHByZS1leGlzdGluZyBmZWF0dXJlIHNldHMgZGVmaW5lZCBpbiB0aGF0IGxvY2F0aW9uLiBJdCYjMzk7cyBhIGtleSBhcmVhIHRvIGNoZWNrIGZvciBhbnkgZXhpc3Rpbmcgc2V0dGluZ3MgdGhhdCBtaWdodCBpbXBhY3QgbXkgY3VycmVudCBmb2N1cywgdG8gYXZvaWQgYW55IHVuaW50ZW5kZWQgY29uZmxpY3RzIG9yIGR1cGxpY2F0ZWQgZWZmb3J0LiBCYXNpY2FsbHksIEkgd2FudCB0byBlbnN1cmUgbXkgY3VycmVudCB3b3JrIGlzIGF3YXJlIG9mIGFuZCBjb21wYXRpYmxlIHdpdGggdGhlIGJyb2FkZXIgQnJvYWRjb20gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIE5vIHBvaW50IGluIGdvaW5nIG9mZiBvbiBhIHRhbmdlbnQgaWYgdGhlIGdyb3VuZHdvcmsmIzM5O3MgYWxyZWFkeSBsYWlkIG91dCB0aGVyZS4gVGhhdCBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUgZmlyc3QgcG9ydCBvZiBjYWxsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjI6Y29uZmlnIEJSQ01VVElMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZzo1OmNvbmZpZyBCUkNNU01BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIElFRUU4MDIuMTFuIFBDSWUgU29mdE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWc6MTg6Y29uZmlnIEJSQ01TTUFDX0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTE5LVx0ZGVmX2Jvb2wgQlJDTVNNQUMgXHUwMDI2XHUwMDI2IEJDTUFfRFJJVkVSX0dQSU8gXHUwMDI2XHUwMDI2IE1BQzgwMjExX0xFRFNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZz0yNT1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWc6Mjc6Y29uZmlnIEJSQ01fVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMjgtXHRib29sIFwmIzM0O0Jyb2FkY29tIGRldmljZSB0cmFjaW5nXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZzozOTpjb25maWcgQlJDTURCR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNDAtXHRib29sIFwmIzM0O0Jyb2FkY29tIGRyaXZlciBkZWJ1ZyBmdW5jdGlvbnNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODcwNgoJCQkJCQkJb3V0cHV0OiA2MAoJCQkJCQkJdGhvdWdodHM6IDE3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBBY3Rpb24gRnJhbWUgSGFuZGxpbmcgaW4gYnJjbWZtYWMqKgoKT2theSwgc28gSSYjMzk7bSB6ZXJvaW5nIGluIG9uIHRoZSBhY3Rpb24gZnJhbWUgaGFuZGxpbmcgd2l0aGluIHRoZSBgYnJjbWZtYWNgIGRyaXZlci4gRnJvbSB3aGF0IEkgcmVjYWxsLCBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYCBhcmUgdGhlIGtleSBhcmVhcyB0byBpbnZlc3RpZ2F0ZS4gTGV0JiMzOTtzIHNlZS4uLiBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIGNydWNpYWwgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gc2VuZGluZyBhbmQgcmVjZWl2aW5nIHRoZXNlIGFjdGlvbiBmcmFtZXMuCgpSaWdodCwgdGhlIGZ1bmN0aW9ucyBJJiMzOTttIG1vc3QgaW50ZXJlc3RlZCBpbiBzZWVtIHRvIGJlOiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAsIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLCBgYnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZWAsIGFuZCBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAuIEEgcXVpY2sgY2hlY2suLi4gb2gsIGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggbGltaXRzIGl0cyBzY29wZSwgc28gaXQgbWF5IG5vdCBiZSBhcyBjcml0aWNhbCBhdCBmaXJzdCBnbGFuY2UuIEhvd2V2ZXIsIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGlzIGV4cG9ydGVkLCBtZWFuaW5nIGl0JiMzOTtzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBmcm9tIG90aGVyIHBhcnRzIG9mIHRoZSBgYnJjbWZtYWNgIGNvZGUsIHdoaWNoIGxpa2VseSBtYWtlcyBpdCBtb3JlIGltcG9ydGFudCB0byB1bmRlcnN0YW5kLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgc291cmNlIGZvciBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCBpbiBgcDJwLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTE2OTg9c3RhdGljIGJvb2wgYnJjbWZfcDJwX2NoZWNrX2R3ZWxsX292ZXJmbG93KHUzMiByZXF1ZXN0ZWRfZHdlbGwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MDktLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcxMDogKiBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoKSAtIHNlbmQgYWN0aW9uIGZyYW1lIC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzExLSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTQtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcxNTpib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzE2LVx0XHRcdFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk1NzYKCQkJCQkJCW91dHB1dDogMTMzCgkJCQkJCQl0aG91Z2h0czogMjIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaGVyZSBpcyB0byBpbnRlZ3JhdGUgdGhpcyBwYXRjaCBlZmZlY3RpdmVseS4gRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhZGQgYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCB0byBteSBgRm9jdXNTeW1ib2xzYCBsaXN0LiBUaGF0JiMzOTtzIHRoZSBjb3JlIG9mIHdoYXQmIzM5O3MgYmVpbmcgbW9kaWZpZWQsIHNvIEkmIzM5O2xsIHByaW9yaXRpemUgdGhvc2UuCgpOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcnVuIHRocm91Z2ggdGhlIGRlcGVuZGVuY2llcy4gUmlnaHQsIGBCUkNNRk1BQ2AgcmVsaWVzIG9uIGBDRkc4MDIxMWAsIGFuZCBgQlJDTUZNQUNfVVNCYCByZXF1aXJlcyBgVVNCYC4gR290IGl0LiBOb3RoaW5nIHVuZXhwZWN0ZWQgdGhlcmUuIEkmIzM5O2xsIHRha2Ugbm90ZSBvZiB0aGF0IGZvciBhbnkgYnJvYWRlciBjb250ZXh0LgoKU28sIEkgd2lsbCBzZXQgYEVuYWJsZUNvbmZpZ3NgIHRvIGluY2x1ZGUgYFsmIzM0O0JSQ01GTUFDJiMzNDssICYjMzQ7QlJDTUZNQUNfVVNCJiMzNDtdYC4gVGhhdCBzaG91bGQgY292ZXIgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGZvciB0ZXN0aW5nLgoKVGhlIHJlYXNvbmluZyBwcm92aWRlZCBjbGFyaWZpZXMgdGhhdCB0aGlzIGlzIGFkZHJlc3NpbmcgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlcyB3aXRoaW4gdGhlIGBicmNtZm1hY2AgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjcml0aWNhbCBhc3BlY3QgaXMgdGhhdCB0aGlzIHZ1bG5lcmFiaWxpdHkgaXMgZXhwb3NlZCB2aWEgdGhlIGBjZmc4MDIxMWAgbmV0bGluayBpbnRlcmZhY2UgYW5kIGNhbiBiZSB0cmlnZ2VyZWQgdXNpbmcgdmlydHVhbGl6ZWQgVVNCIGRldmljZXMuIFRoYXQgZXhwbGFpbnMgdGhlIGNvbmZpZ3VyYXRpb25zIEkgc2VsZWN0ZWQuCgpGaW5hbGx5LCBJIG5lZWQgdG8gZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gYmUgY2VydGFpbiB0aGF0IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYXJlIGluZGVlZCB0aGUgY29ycmVjdCBzeW1ib2xzIHdpdGhpbiB0aGUgcGF0Y2guIEkmIzM5O2xsIHZlcmlmeSB0aGF0IHRoZSBjaGFuZ2VzIGRlc2NyaWJlZCBkbywgaW4gZmFjdCwgYWxpZ24gd2l0aCB0aG9zZSBmdW5jdGlvbnMuIEFscmlnaHQsIHNlZW1zIHRvIGJlIGV4YWN0bHkgd2hhdCBJIG5lZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDg6NDcuMDI2ODc3MjkxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU2OTEzODc4NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVcIixcbiAgICBcImJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZXMgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSBkdXJpbmcgUDJQIGFjdGlvbiBmcmFtZSBoYW5kbGluZy4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UgYW5kIGNhbiBiZSBmdXp6ZWQgdXNpbmcgdmlydHVhbGl6ZWQgVVNCIGRldmljZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjQ3LjAyNjg4NjU1MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzU4NTI5NTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYmM1YWJiNjc0M2I0NTA5ZTczZjA5ZWJhNmY4NTI3MjhkYzk1MDE5YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyMyAwMjo0ODo0NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcXG5pbmRleCA5MmMxNmEzMTczMjg4Yi4uNjY1NTdiZTI4ZTdiMTYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXFxuQEAgLTEyODMsNiArMTI4Myw5IEBAIHN0YXRpYyBzMzIgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnKVxcbiBcXHRicmNtZl9kYmcoVFJBQ0UsIFxcXCJFbnRlclxcXFxuXFxcIik7XFxuIFxcbiBcXHR2aWYgPSBwMnAtXFx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZjtcXG4rXFx0aWYgKCF2aWYpXFxuK1xcdFxcdHZpZiA9IHAycC1cXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX1BSSU1BUlldLnZpZjtcXG4rXFxuIFxcdGVyciA9IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9zZXQodmlmLVxcdTAwM2VpZnAsIFxcXCJhY3RmcmFtZV9hYm9ydFxcXCIsIFxcdTAwMjZpbnRfdmFsLFxcbiBcXHRcXHRcXHRcXHRcXHRzaXplb2YoczMyKSk7XFxuIFxcdGlmIChlcnIpXFxuQEAgLTE4MTksNiArMTgyMiw3IEBAIGJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbiBcXHQvKiB2YWxpZGF0ZSBjaGFubmVsIGFuZCBwMnAgaWVzICovXFxuIFxcdGlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICBJU19QMlBfU09DSUFMX0NIQU5ORUwobGUzMl90b19jcHUoYWZfcGFyYW1zLVxcdTAwM2VjaGFubmVsKSkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIHAycC1cXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICBwMnAtXFx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZi1cXHUwMDNlc2F2ZWRfaWUucHJvYmVfcmVxX2llX2xlbikge1xcbiBcXHRcXHRhZnhfaGRsID0gXFx1MDAyNnAycC1cXHUwMDNlYWZ4X2hkbDtcXG4gXFx0XFx0YWZ4X2hkbC1cXHUwMDNlcGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cXHUwMDNlY2hhbm5lbCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjQ3Ljc4NjI0OTA1N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM0OTMxOTk5NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJSQ01GTUFDXCIsXG4gICAgXCJCUkNNRk1BQ19VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lXCIsXG4gICAgXCJicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJjNWFiYjY3NDNiNDUwOWU3M2YwOWViYTZmODUyNzI4ZGM5NTAxOWJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAwMjo0ODo0NCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuaW5kZXggOTJjMTZhMzE3MzI4OGIuLjY2NTU3YmUyOGU3YjE2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbkBAIC0xMjgzLDYgKzEyODMsOSBAQCBzdGF0aWMgczMyIGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcbiBcdGJyY21mX2RiZyhUUkFDRSwgXCJFbnRlclxcblwiKTtcbiBcbiBcdHZpZiA9IHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWY7XG4rXHRpZiAoIXZpZilcbitcdFx0dmlmID0gcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19QUklNQVJZXS52aWY7XG4rXG4gXHRlcnIgPSBicmNtZl9maWxfYnNzY2ZnX2RhdGFfc2V0KHZpZi1cdTAwM2VpZnAsIFwiYWN0ZnJhbWVfYWJvcnRcIiwgXHUwMDI2aW50X3ZhbCxcbiBcdFx0XHRcdFx0c2l6ZW9mKHMzMikpO1xuIFx0aWYgKGVycilcbkBAIC0xODE5LDYgKzE4MjIsNyBAQCBib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdC8qIHZhbGlkYXRlIGNoYW5uZWwgYW5kIHAycCBpZXMgKi9cbiBcdGlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsIFx1MDAyNlx1MDAyNlxuIFx0ICAgIElTX1AyUF9TT0NJQUxfQ0hBTk5FTChsZTMyX3RvX2NwdShhZl9wYXJhbXMtXHUwMDNlY2hhbm5lbCkpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYgXHUwMDI2XHUwMDI2XG4gXHQgICAgcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZi1cdTAwM2VzYXZlZF9pZS5wcm9iZV9yZXFfaWVfbGVuKSB7XG4gXHRcdGFmeF9oZGwgPSBcdTAwMjZwMnAtXHUwMDNlYWZ4X2hkbDtcbiBcdFx0YWZ4X2hkbC1cdTAwM2VwZWVyX2xpc3Rlbl9jaGFuID0gbGUzMl90b19jcHUoYWZfcGFyYW1zLVx1MDAzZWNoYW5uZWwpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDg6NDcuNzg2MjUxMDM3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTAwMjE3MDUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBicmNtZm1hY2AsIHNwZWNpZmljYWxseSBpbiBgcDJwLmNgLiBUaGV5J3ZlIGFkZGVkIG51bGwgY2hlY2tzIGZvciBgcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZmAgd2l0aGluIHR3byBmdW5jdGlvbnM6IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAuIENsYXNzaWMgZGVmZW5zaXZlIHByb2dyYW1taW5nLCB3aGljaCBwcm9iYWJseSBtZWFucyBzb21lb25lIGZvdW5kIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byBhY2Nlc3NpbmcgYSBudWxsIHBvaW50ZXIgaW4gdGhlc2UgZnVuY3Rpb25zLiBJbnRlcmVzdGluZy5cblxuTm93LCBsZXQncyB0aGluayBhYm91dCBmdXp6aW5nIHRoaXMuIEl0J3MgYSB3aXJlbGVzcyBkcml2ZXIsIHNvIHRoZSBuYXR1cmFsIGluY2xpbmF0aW9uIGlzIHRvIHRoaW5rIGFib3V0IG1hYzgwMjExX2h3c2ltLiBCdXQgd2FpdCwgYGJyY21mbWFjYCBpcyBhICpmdWxsbWFjKiBkcml2ZXIsIHJpZ2h0PyBUaGF0IG1lYW5zIGl0IG9mZmxvYWRzIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIHRoZSA4MDIuMTEgcHJvY2Vzc2luZyB0byBmaXJtd2FyZSB0aGF0J3MgcnVubmluZyBvbiBhbiBleHRlcm5hbCBkZXZpY2Ug4oCTIHByb2JhYmx5IG92ZXIgU0RJTywgVVNCLCBvciBQQ0llLiBTbywgZGlyZWN0IG1hYzgwMjExLWxldmVsIGZ1enppbmcgcHJvYmFibHkgaXNuJ3QgdGhlIGJlc3QgYXBwcm9hY2guXG5cblNvLCBob3cgY2FuIHdlIGFjdHVhbGx5IGZ1enogdGhpcz8gSWYgaXQgdGFsa3MgdG8gdGhlIGhvc3QgdmlhIFVTQiwgdGhlbiB3ZSBjYW4gbGlrZWx5IGVtdWxhdGUgdGhlIGRldmljZSB3aXRoIGEgZHVtbXkgaGNkIG9yIHNvbWV0aGluZyBzaW1pbGFyIGxpa2Ugc3l6a2FsbGVyIGRvZXMuIFRoaXMgd291bGQgbWVhbiBjcmVhdGluZyBjcmFmdGVkIFVTQiB0cmFmZmljIHRvIGF0dGFjayB0aGUgZHJpdmVyIGluIHRoaXMgbW9kZS4gTGV0IG1lIGNoZWNrIGlmIGBicmNtZm1hY2AgZXZlbiBoYXMgVVNCIHN1cHBvcnQuLi4gdGhhdCdzIHRoZSBrZXkgcXVlc3Rpb24gbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQ4LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDg6NTIuNzg4NDI1MDcxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMjc5Mzg2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJDTUZNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0ODo1My40MTEyMjcyMTJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjg3MjcwODI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuLi5cblxuKipVU0IgRnV6emluZyBBbmFseXNpcyoqXG5cblJpZ2h0LCBgQlJDTUZNQUNfVVNCYCBpcyBkZWZpbml0ZWx5IHN1cHBvcnRlZC4gVGhhdCBjb25maXJtcyB3aGF0IEkgc3VzcGVjdGVkLCBTeXprYWxsZXIgaXMgaW5kZWVkIGZ1enppbmcgVVNCIGRldmljZXMsIGFuZCB0aGF0J3MgdGhlIHZlY3RvciB3ZSdyZSBjb25jZXJuZWQgd2l0aCBoZXJlLiBTbywgbG9naWNhbGx5LCB0aGlzIGNvZGUgKmlzKiByZWFjaGFibGUgdGhyb3VnaCBVU0IgZnV6emluZy4gTm93LCBJIG5lZWQgdG8gZm9jdXMgb24gdGhvc2UgdHdvIHNwZWNpZmljIGZ1bmN0aW9ucyBtZW50aW9uZWQ6IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAuIFRoZXkgYXJlIG15IHByaW1hcnkgdGFyZ2V0cyBmb3IgZnVydGhlciBhbmFseXNpcyB3aXRoaW4gdGhlIFVTQiBmdXp6aW5nIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGV54oCZcmUgY2FsbGVkLCB3aGF0IHRoZWlyIGlucHV0cyBhcmUsIGFuZCBob3cgdGhleSBpbnRlcmFjdCB0byBpZGVudGlmeSBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ0NCwiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjU2LjY5ODUwMDI2OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjc3OTEyMDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xMjI1PWJvb2wgYnJjbWZfcDJwX3NjYW5fZmluZGluZ19jb21tb25fY2hhbm5lbChzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEyNzAtLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEyNzE6ICogYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZSgpIC0gYWJvcnQgYWN0aW9uIGZyYW1lLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMjcyLSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3NS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI3NjpzdGF0aWMgczMyIGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTMwND1icmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTMxOC1cXHRcXHRcXHQvKiBhYm9ydCBhY3RmcmFtZSB1c2luZyBhY3RmcmFtZV9hYm9ydCBvciBhYm9ydCBzY2FuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEzMTk6XFx0XFx0XFx0ZXJyID0gYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZShjZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzIwLVxcdFxcdFxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjU2LjgyNjI5OTcwNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MTg0ODIzODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IGludGVyYWN0aW9uLCBwcmVzZW50ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIGl0IG15c2VsZiwgYW5kIHRhaWxvcmVkIGZvciBzb21lb25lIGZhbWlsaWFyIHdpdGggZW1iZWRkZWQgc3lzdGVtcyBhbmQgZHJpdmVyIGRldmVsb3BtZW50OlxuXG4qKkFuYWx5emluZyB0aGUgYnJjbWZfcDJwIEFjdGlvbiBGcmFtZSBGbG93KipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYC4gSXQgc2VlbXMgcHJldHR5IGNsZWFyIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBkaXJlY3RseSB0cmlnZ2VyZWQgYnkgYSBjYWxsIHRvIGBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lYC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSBhIGZldyB0aGluZ3MuIEZpcnN0LCB0aGlzIGxpa2VseSBoYW5kbGVzIHNvbWUga2luZCBvZiBpbnRlcnJ1cHRpb24gb3IgY2FuY2VsbGF0aW9uIHNjZW5hcmlvIHJlbGF0ZWQgdG8gdGhlIHByb2Nlc3Npbmcgb2YgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBmYWN0IHRoYXQgJ2Fib3J0JyBpcyBpbiB0aGUgbmFtZSBzb2xpZGlmaWVzIHRoaXMuIFNlY29uZCwgdGhlIFwid2FpdFwiIGNvbXBvbmVudCBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbidzIG5hbWUgc3VnZ2VzdHMgYSB0aW1lZCBwcm9jZXNzIG9yIGEgc3BlY2lmaWMgc2VxdWVuY2Ugd2hlcmUgdGhlIGFjdGlvbiBmcmFtZSBoYW5kbGluZyBtaWdodCBiZSBwdXQgb24gaG9sZCB0ZW1wb3JhcmlseS4gUGVyaGFwcyB3YWl0aW5nIGZvciBhIHJlc3BvbnNlIG9yIGEgcGFydGljdWxhciBzdGF0ZSB0byBiZSByZWFjaGVkLlxuXG5NeSBpbml0aWFsIGFzc3VtcHRpb24gd291bGQgYmUgdGhhdCBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgZGVzaWduZWQgdG8gY2xlYW5seSB0ZWFyIGRvd24gb3IgaGFsdCB0aGUgY3VycmVudCBhY3Rpb24gZnJhbWUgcHJvY2Vzc2luZyBsb29wLiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciB0byBzZWUgaWYgaXQncyBpbnZvbHZlZCBpbiByZWxlYXNpbmcgcmVzb3VyY2VzLCByZXNldHRpbmcgc3RhdGUgdmFyaWFibGVzLCBvciBzZW5kaW5nIHNvbWUgc29ydCBvZiBub3RpZmljYXRpb24gYmFjayB0byB0aGUgcGVlci4gS25vd2luZyB3aGF0IGluaXRpYXRlcyB0aGlzIGFib3J0IGlzIGNyaXRpY2FsLiBJcyBpdCBhIHRpbWVvdXQ/IEEgc3BlY2lmaWMgZXJyb3IgY29uZGl0aW9uPyBBIHVzZXItaW5pdGlhdGVkIGNvbW1hbmQ/IFVuZGVyc3RhbmRpbmcgdGhhdCBjb250ZXh0IHdpbGwgZGV0ZXJtaW5lIHRoZSBvdmVyYWxsIGltcGFjdCBvbiB0aGUgUDJQIGNvbm5lY3Rpb24gYW5kIHN1YnNlcXVlbnQgc3RhdGUuIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbGluZyBjaGFpbiB3aXRoaW4gdGhlIGRyaXZlciB0byBmdWxseSB1bmRlcnN0YW5kIHdoeSBhbmQgd2hlbiB0aGlzIGFib3J0IGZ1bmN0aW9uIGdldHMgdHJpZ2dlcmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjg1LCJPdXRwdXRUb2tlbnMiOjU5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MDAuNjQ0Nzg0NjE2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MjE1MDgzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEyNzY9c3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI5Ny0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI5ODogKiBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKCkgLSBmaW5pc2ggc2NhbiBpZiBhZiB0eCBjb21wbGV0ZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI5OS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzMDM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTMwNDpicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEzMDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzNDI9YnJjbWZfcDJwX2dvbl9yZXFfY29sbGlzaW9uKHN0cnVjdCBicmNtZl9wMnBfaW5mbyAqcDJwLCB1OCAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEzNzAtXFx0XFx0XFx0XFx0ICAgICAgIFxcdTAwMjZwMnAtXFx1MDAzZXN0YXR1cykpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEzNzE6XFx0XFx0XFx0YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZShjZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzcyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xMzkwPWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl9mcmFtZV9yeChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNDU5LVxcdFxcdC8qIFN0b3Agd2FpdGluZyBmb3IgbmV4dCBBRi4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTQ2MDpcXHRcXHRicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKGNmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE0NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTE0OTg9aW50IGJyY21mX3AycF9ub3RpZnlfYWN0aW9uX3R4X2NvbXBsZXRlKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE1MjMtXFx0XFx0XFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE1MjQ6XFx0XFx0XFx0YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZShjZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNTI1LVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MDAuNzk2OTM5NzUxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzczMTY3MDMwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZTpcblxuKipNeSBQZXJzcGVjdGl2ZSBvbiB0aGUgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lIENhbGwqKlxuXG5BbHJpZ2h0LCBzbyBJJ20gdHJhY2luZyB0aGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uIGNhbGwuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCdzIGJlaW5nIHRyaWdnZXJlZCBkaXJlY3RseSBieSB0aGUgYGJyY21mX2NmZzgwMjExX21nbXRfdHhgIGZ1bmN0aW9uLiBUaGlzIGNvbm5lY3Rpb24gaXMga2V5LiBXaGF0IHRoaXMgdGVsbHMgbWUgaW1tZWRpYXRlbHkgaXMgdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIHRyYW5zbWlzc2lvbiBvZiA4MDIuMTEgbWFuYWdlbWVudCBmcmFtZXMsIHNwZWNpZmljYWxseSB3aXRoaW4gYSBQMlAgY29udGV4dC4gYGJyY21mX2NmZzgwMjExX21nbXRfdHhgIGhhbmRsZXMgdGhlIGdlbmVyYWwgZnJhbWV3b3JrIGZvciBzZW5kaW5nIG1hbmFnZW1lbnQgZnJhbWVzLCBhbmQgdGhpcyBzcGVjaWZpYyBjYWxsLCBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCwgaXMgbGlrZWx5IHRoZSBob29rIHRvIGhhbmRsZSB0aGUgc3BlY2lmaWNzIG5lZWRlZCBmb3IgUDJQIGFjdGlvbiBmcmFtZXMuIFRoaXMgY291bGQgYmUgdGhpbmdzIGxpa2UgUDJQIGludml0YXRpb24gcmVxdWVzdHMsIEdPIG5lZ290aWF0aW9uIGZyYW1lcywgb3IgYW55IG90aGVyIFAyUC1zcGVjaWZpYyBwcm90b2NvbCBleGNoYW5nZXMgdGhhdCByaWRlIG9uIHRvcCBvZiBzdGFuZGFyZCA4MDIuMTEgbWFuYWdlbWVudCBmcmFtZXMuIEkgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvZGUgd2l0aGluIHRoZSBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCB0byBzZWUgd2hhdCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgb3IgZGF0YSBpcyBiZWluZyBwcmVwYXJlZCBvciBhZGRlZCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjY0LCJPdXRwdXRUb2tlbnMiOjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MDQuNTI4NjE0NDI1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTc5MDgyODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMz1icmNtZl9jZmc4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NjMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjU2MzI6XFx0XFx0YWNrID0gYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHZpZi1cXHUwMDNlaWZwLCBhZl9wYXJhbXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU2MzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTY5OD1zdGF0aWMgYm9vbCBicmNtZl9wMnBfY2hlY2tfZHdlbGxfb3ZlcmZsb3codTMyIHJlcXVlc3RlZF9kd2VsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzA5LS8qKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzEwOiAqIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSgpIC0gc2VuZCBhY3Rpb24gZnJhbWUgLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzExLSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxNC0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcxNTpib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxNi1cXHRcXHRcXHRcXHQgc3RydWN0IGJyY21mX2ZpbF9hZl9wYXJhbXNfbGUgKmFmX3BhcmFtcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaD0xNjk9aW50IGJyY21mX3AycF9ub3RpZnlfYWN0aW9uX3R4X2NvbXBsZXRlKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5oLTE3MS1cXHRcXHRcXHRcXHRcXHR2b2lkICpkYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg6MTcyOmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaC0xNzMtXFx0XFx0XFx0XFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OTowNC42ODY1MzE1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzQyNDM0NzM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIEF0dGFjayBTdXJmYWNlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBzZWUgYSBkaXJlY3QgcGF0aCBmcm9tIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCwgd2hpY2ggaXMgYSBgY2ZnODAyMTFgIG9wZXJhdGlvbi4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgc2hvd2luZyBhIGNsZWFyIGVudHJ5IHBvaW50IGludG8gdGhlIHdpcmVsZXNzIHN0YWNrLiBBbmQgdGhlbiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgcmVhY2hhYmxlIHRocm91Z2ggZXZlbnQgaGFuZGxlcnMgbGlrZSBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fZnJhbWVfcnhgIGFuZCBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fdHhfY29tcGxldGVgLiBUaGlzIHJvdXRlIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBgbWFjODAyMTFgL2BjZmc4MDIxMWAgbmV0bGluayBpbnRlcmZhY2U7IGEgZGVmaW5pdGUgdGFyZ2V0LlxuXG5Ob3cgSSBuZWVkIHRvIHNlZSB3aGF0IGNvbmZpZ3VyYXRpb25zIGFyZSBuZWNlc3NhcnkgZm9yIGl0IHRvIGJlIGVuYWJsZWQuIEkga25vdyBJIG5lZWQgYEJSQ01GTUFDYCBhbmQsIG9mIGNvdXJzZSwgZWl0aGVyIGBCUkNNRk1BQ19VU0JgIG9yIG9uZSBvZiB0aGUgb3RoZXIgaGFyZHdhcmUtc3BlY2lmaWMgb3B0aW9ucy4gQWgsIGdvb2QsIGBCUkNNRk1BQ19VU0JgIGlzIHBlcmZlY3QuIFRoaXMgc2ltcGxpZmllcyB0aGUgaW52ZXN0aWdhdGlvbi4gQnV0IHdoYXQgYWJvdXQgUDJQLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24/IEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgdG8gcHJvY2VlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjgwMiwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OTowOS4wMjg5NzA1ODRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0ODU2NDYwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJDTUZNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OTowOS41Nzc1NTg3NDdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4OTE3NzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqQ2hlY2tpbmcgZm9yIENvbmZpZyBPdmVybGFwKipcblxuQWxyaWdodCwgYmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoaXMgc3BlY2lmaWMgZHJpdmVyLCBJIG5lZWQgdG8gdGFrZSBhIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEknbSBub3QgcmVpbnZlbnRpbmcgdGhlIHdoZWVsIG9yIG1pc3Npbmcgc29tZXRoaW5nIG9idmlvdXMuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIEkgc2hvdWxkIHF1aWNrbHkgZ2xhbmNlIGF0IHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWdgIGZpbGUuIEknbSBob3BpbmcgdG8gcXVpY2tseSBjb25maXJtIHRoYXQgdGhlcmUgYXJlbid0IGFueSBleGlzdGluZyBjb25maWd1cmF0aW9ucyBvciBwcmUtZXhpc3RpbmcgZmVhdHVyZSBzZXRzIGRlZmluZWQgaW4gdGhhdCBsb2NhdGlvbi4gSXQncyBhIGtleSBhcmVhIHRvIGNoZWNrIGZvciBhbnkgZXhpc3Rpbmcgc2V0dGluZ3MgdGhhdCBtaWdodCBpbXBhY3QgbXkgY3VycmVudCBmb2N1cywgdG8gYXZvaWQgYW55IHVuaW50ZW5kZWQgY29uZmxpY3RzIG9yIGR1cGxpY2F0ZWQgZWZmb3J0LiBCYXNpY2FsbHksIEkgd2FudCB0byBlbnN1cmUgbXkgY3VycmVudCB3b3JrIGlzIGF3YXJlIG9mIGFuZCBjb21wYXRpYmxlIHdpdGggdGhlIGJyb2FkZXIgQnJvYWRjb20gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIE5vIHBvaW50IGluIGdvaW5nIG9mZiBvbiBhIHRhbmdlbnQgaWYgdGhlIGdyb3VuZHdvcmsncyBhbHJlYWR5IGxhaWQgb3V0IHRoZXJlLiBUaGF0IEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBmaXJzdCBwb3J0IG9mIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4OTcsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OToxMi42NjY3Mzk3MDFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMzQ2MTQ5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWc6Mjpjb25maWcgQlJDTVVUSUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZzo1OmNvbmZpZyBCUkNNU01BQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIElFRUU4MDIuMTFuIFBDSWUgU29mdE1BQyBXTEFOIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjE4OmNvbmZpZyBCUkNNU01BQ19MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMTktXFx0ZGVmX2Jvb2wgQlJDTVNNQUMgXFx1MDAyNlxcdTAwMjYgQkNNQV9EUklWRVJfR1BJTyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMV9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZz0yNT1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjI3OmNvbmZpZyBCUkNNX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZy0yOC1cXHRib29sIFxcXCJCcm9hZGNvbSBkZXZpY2UgdHJhY2luZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjM5OmNvbmZpZyBCUkNNREJHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNDAtXFx0Ym9vbCBcXFwiQnJvYWRjb20gZHJpdmVyIGRlYnVnIGZ1bmN0aW9uc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MTIuNzkwMjA2ODk3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMzc2MTgwMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gQWN0aW9uIEZyYW1lIEhhbmRsaW5nIGluIGJyY21mbWFjKipcblxuT2theSwgc28gSSdtIHplcm9pbmcgaW4gb24gdGhlIGFjdGlvbiBmcmFtZSBoYW5kbGluZyB3aXRoaW4gdGhlIGBicmNtZm1hY2AgZHJpdmVyLiBGcm9tIHdoYXQgSSByZWNhbGwsIGBCUkNNRk1BQ2AgYW5kIGBCUkNNRk1BQ19VU0JgIGFyZSB0aGUga2V5IGFyZWFzIHRvIGludmVzdGlnYXRlLiBMZXQncyBzZWUuLi4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBjcnVjaWFsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0aGVzZSBhY3Rpb24gZnJhbWVzLlxuXG5SaWdodCwgdGhlIGZ1bmN0aW9ucyBJJ20gbW9zdCBpbnRlcmVzdGVkIGluIHNlZW0gdG8gYmU6IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCwgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAsIGBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lYCwgYW5kIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YC4gQSBxdWljayBjaGVjay4uLiBvaCwgYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgIGlzIGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBsaW1pdHMgaXRzIHNjb3BlLCBzbyBpdCBtYXkgbm90IGJlIGFzIGNyaXRpY2FsIGF0IGZpcnN0IGdsYW5jZS4gSG93ZXZlciwgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgaXMgZXhwb3J0ZWQsIG1lYW5pbmcgaXQncyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgYGJyY21mbWFjYCBjb2RlLCB3aGljaCBsaWtlbHkgbWFrZXMgaXQgbW9yZSBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZC4gVGltZSB0byBkaXZlIGludG8gdGhlIHNvdXJjZSBmb3IgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgaW4gYHAycC5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODcwNiwiT3V0cHV0VG9rZW5zIjo2MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OToxNi44Mjc4Mjg3NjFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDU5ODA3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xNjk4PXN0YXRpYyBib29sIGJyY21mX3AycF9jaGVja19kd2VsbF9vdmVyZmxvdyh1MzIgcmVxdWVzdGVkX2R3ZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MDktLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE3MTA6ICogYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKCkgLSBzZW5kIGFjdGlvbiBmcmFtZSAuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTEtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzE0LSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzE1OmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzE2LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgYnJjbWZfZmlsX2FmX3BhcmFtc19sZSAqYWZfcGFyYW1zKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OToxNi45OTg0MzMwMTZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU0NDc1MzIwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgZ29hbCBoZXJlIGlzIHRvIGludGVncmF0ZSB0aGlzIHBhdGNoIGVmZmVjdGl2ZWx5LiBGaXJzdCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFkZCBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgYW5kIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIFRoYXQncyB0aGUgY29yZSBvZiB3aGF0J3MgYmVpbmcgbW9kaWZpZWQsIHNvIEknbGwgcHJpb3JpdGl6ZSB0aG9zZS5cblxuTm93LCBsZXQgbWUganVzdCBxdWlja2x5IHJ1biB0aHJvdWdoIHRoZSBkZXBlbmRlbmNpZXMuIFJpZ2h0LCBgQlJDTUZNQUNgIHJlbGllcyBvbiBgQ0ZHODAyMTFgLCBhbmQgYEJSQ01GTUFDX1VTQmAgcmVxdWlyZXMgYFVTQmAuIEdvdCBpdC4gTm90aGluZyB1bmV4cGVjdGVkIHRoZXJlLiBJJ2xsIHRha2Ugbm90ZSBvZiB0aGF0IGZvciBhbnkgYnJvYWRlciBjb250ZXh0LlxuXG5TbywgSSB3aWxsIHNldCBgRW5hYmxlQ29uZmlnc2AgdG8gaW5jbHVkZSBgW1wiQlJDTUZNQUNcIiwgXCJCUkNNRk1BQ19VU0JcIl1gLiBUaGF0IHNob3VsZCBjb3ZlciB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgZm9yIHRlc3RpbmcuXG5cblRoZSByZWFzb25pbmcgcHJvdmlkZWQgY2xhcmlmaWVzIHRoYXQgdGhpcyBpcyBhZGRyZXNzaW5nIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZXMgd2l0aGluIHRoZSBgYnJjbWZtYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGR1cmluZyBQMlAgYWN0aW9uIGZyYW1lIGhhbmRsaW5nLiBUaGUgY3JpdGljYWwgYXNwZWN0IGlzIHRoYXQgdGhpcyB2dWxuZXJhYmlsaXR5IGlzIGV4cG9zZWQgdmlhIHRoZSBgY2ZnODAyMTFgIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgdHJpZ2dlcmVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiBUaGF0IGV4cGxhaW5zIHRoZSBjb25maWd1cmF0aW9ucyBJIHNlbGVjdGVkLlxuXG5GaW5hbGx5LCBJIG5lZWQgdG8gZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gYmUgY2VydGFpbiB0aGF0IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYXJlIGluZGVlZCB0aGUgY29ycmVjdCBzeW1ib2xzIHdpdGhpbiB0aGUgcGF0Y2guIEknbGwgdmVyaWZ5IHRoYXQgdGhlIGNoYW5nZXMgZGVzY3JpYmVkIGRvLCBpbiBmYWN0LCBhbGlnbiB3aXRoIHRob3NlIGZ1bmN0aW9ucy4gQWxyaWdodCwgc2VlbXMgdG8gYmUgZXhhY3RseSB3aGF0IEkgbmVlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTU3NiwiT3V0cHV0VG9rZW5zIjoxMzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MjIuNTQzMTkyNDYyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1MDQ5MDY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZVwiLFxuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlcyBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIGR1cmluZyBQMlAgYWN0aW9uIGZyYW1lIGhhbmRsaW5nLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBjZmc4MDIxMSBuZXRsaW5rIGludGVyZmFjZSBhbmQgY2FuIGJlIGZ1enplZCB1c2luZyB2aXJ0dWFsaXplZCBVU0IgZGV2aWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZVwiLFxuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlcyBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIGR1cmluZyBQMlAgYWN0aW9uIGZyYW1lIGhhbmRsaW5nLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBjZmc4MDIxMSBuZXRsaW5rIGludGVyZmFjZSBhbmQgY2FuIGJlIGZ1enplZCB1c2luZyB2aXJ0dWFsaXplZCBVU0IgZGV2aWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowjj2h2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-23 02:16:26 +0000 UTC FinishedAt: 2026-07-23 02:49: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": "3826a4d293abb82826dc79ad682d7f885f125dc5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "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": "3826a4d293abb82826dc79ad682d7f885f125dc5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRCMFMAC", "BRCMFMAC_USB" ], "series_id": "7edae493-e04b-4153-a25a-ae70022cac9a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "brcmf_p2p_abort_action_frame", "brcmf_p2p_send_action_frame" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSQ01GTUFDJiMzNDssCiAgICAmIzM0O0JSQ01GTUFDX1VTQiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2JyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUmIzM0OywKICAgICYjMzQ7YnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZXMgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSBkdXJpbmcgUDJQIGFjdGlvbiBmcmFtZSBoYW5kbGluZy4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UgYW5kIGNhbiBiZSBmdXp6ZWQgdXNpbmcgdmlydHVhbGl6ZWQgVVNCIGRldmljZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiYzVhYmI2NzQzYjQ1MDllNzNmMDllYmE2Zjg1MjcyOGRjOTUwMTliXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMDI6NDg6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG5pbmRleCA5MmMxNmEzMTczMjg4Yi4uNjY1NTdiZTI4ZTdiMTYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuQEAgLTEyODMsNiAmIzQzOzEyODMsOSBAQCBzdGF0aWMgczMyIGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcbiBcdGJyY21mX2RiZyhUUkFDRSwgXCYjMzQ7RW50ZXJcXG5cJiMzNDspO1xuIFxuIFx0dmlmID0gcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZjtcbiYjNDM7XHRpZiAoIXZpZilcbiYjNDM7XHRcdHZpZiA9IHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfUFJJTUFSWV0udmlmO1xuJiM0MztcbiBcdGVyciA9IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9zZXQodmlmLVx1MDAzZWlmcCwgXCYjMzQ7YWN0ZnJhbWVfYWJvcnRcJiMzNDssIFx1MDAyNmludF92YWwsXG4gXHRcdFx0XHRcdHNpemVvZihzMzIpKTtcbiBcdGlmIChlcnIpXG5AQCAtMTgxOSw2ICYjNDM7MTgyMiw3IEBAIGJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuIFx0LyogdmFsaWRhdGUgY2hhbm5lbCBhbmQgcDJwIGllcyAqL1xuIFx0aWYgKGNvbmZpZ19hZl9wYXJhbXMuc2VhcmNoX2NoYW5uZWwgXHUwMDI2XHUwMDI2XG4gXHQgICAgSVNfUDJQX1NPQ0lBTF9DSEFOTkVMKGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cdTAwM2VjaGFubmVsKSkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYgXHUwMDI2XHUwMDI2XG4gXHQgICAgcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZi1cdTAwM2VzYXZlZF9pZS5wcm9iZV9yZXFfaWVfbGVuKSB7XG4gXHRcdGFmeF9oZGwgPSBcdTAwMjZwMnAtXHUwMDNlYWZ4X2hkbDtcbiBcdFx0YWZ4X2hkbC1cdTAwM2VwZWVyX2xpc3Rlbl9jaGFuID0gbGUzMl90b19jcHUoYWZfcGFyYW1zLVx1MDAzZWNoYW5uZWwpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiYzVhYmI2NzQzYjQ1MDllNzNmMDllYmE2Zjg1MjcyOGRjOTUwMTliCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgMjMgMDI6NDg6NDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKaW5kZXggOTJjMTZhMzE3MzI4OGIuLjY2NTU3YmUyOGU3YjE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jCkBAIC0xMjgzLDYgJiM0MzsxMjgzLDkgQEAgc3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpCiAJYnJjbWZfZGJnKFRSQUNFLCAmIzM0O0VudGVyXG4mIzM0Oyk7CiAKIAl2aWYgPSBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZjsKJiM0MzsJaWYgKCF2aWYpCiYjNDM7CQl2aWYgPSBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19QUklNQVJZXS52aWY7CiYjNDM7CiAJZXJyID0gYnJjbWZfZmlsX2Jzc2NmZ19kYXRhX3NldCh2aWYtJmd0O2lmcCwgJiMzNDthY3RmcmFtZV9hYm9ydCYjMzQ7LCAmYW1wO2ludF92YWwsCiAJCQkJCXNpemVvZihzMzIpKTsKIAlpZiAoZXJyKQpAQCAtMTgxOSw2ICYjNDM7MTgyMiw3IEBAIGJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLAogCS8qIHZhbGlkYXRlIGNoYW5uZWwgYW5kIHAycCBpZXMgKi8KIAlpZiAoY29uZmlnX2FmX3BhcmFtcy5zZWFyY2hfY2hhbm5lbCAmYW1wOyZhbXA7CiAJICAgIElTX1AyUF9TT0NJQUxfQ0hBTk5FTChsZTMyX3RvX2NwdShhZl9wYXJhbXMtJmd0O2NoYW5uZWwpKSAmYW1wOyZhbXA7CiYjNDM7CSAgICBwMnAtJmd0O2Jzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZiAmYW1wOyZhbXA7CiAJICAgIHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmLSZndDtzYXZlZF9pZS5wcm9iZV9yZXFfaWVfbGVuKSB7CiAJCWFmeF9oZGwgPSAmYW1wO3AycC0mZ3Q7YWZ4X2hkbDsKIAkJYWZ4X2hkbC0mZ3Q7cGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy0mZ3Q7Y2hhbm5lbCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNDgKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgV2lGaSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBicmNtZm1hY2AsIHNwZWNpZmljYWxseSBpbiBgcDJwLmNgLiBUaGV5JiMzOTt2ZSBhZGRlZCBudWxsIGNoZWNrcyBmb3IgYHAycC0mZ3Q7YnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmYCB3aXRoaW4gdHdvIGZ1bmN0aW9uczogYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYC4gQ2xhc3NpYyBkZWZlbnNpdmUgcHJvZ3JhbW1pbmcsIHdoaWNoIHByb2JhYmx5IG1lYW5zIHNvbWVvbmUgZm91bmQgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eSByZWxhdGVkIHRvIGFjY2Vzc2luZyBhIG51bGwgcG9pbnRlciBpbiB0aGVzZSBmdW5jdGlvbnMuIEludGVyZXN0aW5nLgoKTm93LCBsZXQmIzM5O3MgdGhpbmsgYWJvdXQgZnV6emluZyB0aGlzLiBJdCYjMzk7cyBhIHdpcmVsZXNzIGRyaXZlciwgc28gdGhlIG5hdHVyYWwgaW5jbGluYXRpb24gaXMgdG8gdGhpbmsgYWJvdXQgbWFjODAyMTFfaHdzaW0uIEJ1dCB3YWl0LCBgYnJjbWZtYWNgIGlzIGEgKmZ1bGxtYWMqIGRyaXZlciwgcmlnaHQ/IFRoYXQgbWVhbnMgaXQgb2ZmbG9hZHMgYSBzaWduaWZpY2FudCBhbW91bnQgb2YgdGhlIDgwMi4xMSBwcm9jZXNzaW5nIHRvIGZpcm13YXJlIHRoYXQmIzM5O3MgcnVubmluZyBvbiBhbiBleHRlcm5hbCBkZXZpY2Ug4oCTIHByb2JhYmx5IG92ZXIgU0RJTywgVVNCLCBvciBQQ0llLiBTbywgZGlyZWN0IG1hYzgwMjExLWxldmVsIGZ1enppbmcgcHJvYmFibHkgaXNuJiMzOTt0IHRoZSBiZXN0IGFwcHJvYWNoLgoKU28sIGhvdyBjYW4gd2UgYWN0dWFsbHkgZnV6eiB0aGlzPyBJZiBpdCB0YWxrcyB0byB0aGUgaG9zdCB2aWEgVVNCLCB0aGVuIHdlIGNhbiBsaWtlbHkgZW11bGF0ZSB0aGUgZGV2aWNlIHdpdGggYSBkdW1teSBoY2Qgb3Igc29tZXRoaW5nIHNpbWlsYXIgbGlrZSBzeXprYWxsZXIgZG9lcy4gVGhpcyB3b3VsZCBtZWFuIGNyZWF0aW5nIGNyYWZ0ZWQgVVNCIHRyYWZmaWMgdG8gYXR0YWNrIHRoZSBkcml2ZXIgaW4gdGhpcyBtb2RlLiBMZXQgbWUgY2hlY2sgaWYgYGJyY21mbWFjYCBldmVuIGhhcyBVU0Igc3VwcG9ydC4uLiB0aGF0JiMzOTtzIHRoZSBrZXkgcXVlc3Rpb24gbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBCUkNNRk1BQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE6Y29uZmlnIEJSQ01GTUFDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7QnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEyLVx0Ym9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNDpjb25maWcgQlJDTUZNQUNfUFJPVE9fTVNHQlVGXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNS1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTc6Y29uZmlnIEJSQ01GTUFDX1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVx0Ym9vbCBcJiMzNDtTRElPIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTMwLVx0Ym9vbCBcJiMzNDtVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6NDA6Y29uZmlnIEJSQ01GTUFDX1BDSUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTQxLVx0Ym9vbCBcJiMzNDtQQ0lFIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDQ0CgkJCQkJCQlvdXRwdXQ6IDU1CgkJCQkJCQl0aG91Z2h0czogNzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUuLi4KCioqVVNCIEZ1enppbmcgQW5hbHlzaXMqKgoKUmlnaHQsIGBCUkNNRk1BQ19VU0JgIGlzIGRlZmluaXRlbHkgc3VwcG9ydGVkLiBUaGF0IGNvbmZpcm1zIHdoYXQgSSBzdXNwZWN0ZWQsIFN5emthbGxlciBpcyBpbmRlZWQgZnV6emluZyBVU0IgZGV2aWNlcywgYW5kIHRoYXQmIzM5O3MgdGhlIHZlY3RvciB3ZSYjMzk7cmUgY29uY2VybmVkIHdpdGggaGVyZS4gU28sIGxvZ2ljYWxseSwgdGhpcyBjb2RlICppcyogcmVhY2hhYmxlIHRocm91Z2ggVVNCIGZ1enppbmcuIE5vdywgSSBuZWVkIHRvIGZvY3VzIG9uIHRob3NlIHR3byBzcGVjaWZpYyBmdW5jdGlvbnMgbWVudGlvbmVkOiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgYW5kIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLiBUaGV5IGFyZSBteSBwcmltYXJ5IHRhcmdldHMgZm9yIGZ1cnRoZXIgYW5hbHlzaXMgd2l0aGluIHRoZSBVU0IgZnV6emluZyBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhleeKAmXJlIGNhbGxlZCwgd2hhdCB0aGVpciBpbnB1dHMgYXJlLCBhbmQgaG93IHRoZXkgaW50ZXJhY3QgdG8gaWRlbnRpZnkgYW55IHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEyMjU9Ym9vbCBicmNtZl9wMnBfc2Nhbl9maW5kaW5nX2NvbW1vbl9jaGFubmVsKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEyNzAtLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI3MTogKiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKCkgLSBhYm9ydCBhY3Rpb24gZnJhbWUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3Mi0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMjc1LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEyNzY6c3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzMDQ9YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzE4LVx0XHRcdC8qIGFib3J0IGFjdGZyYW1lIHVzaW5nIGFjdGZyYW1lX2Fib3J0IG9yIGFib3J0IHNjYW4gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxMzE5Olx0XHRcdGVyciA9IGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzIwLVx0XHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI4NQoJCQkJCQkJb3V0cHV0OiA1OQoJCQkJCQkJdGhvdWdodHM6IDM3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgaW50ZXJhY3Rpb24sIHByZXNlbnRlZCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgaXQgbXlzZWxmLCBhbmQgdGFpbG9yZWQgZm9yIHNvbWVvbmUgZmFtaWxpYXIgd2l0aCBlbWJlZGRlZCBzeXN0ZW1zIGFuZCBkcml2ZXIgZGV2ZWxvcG1lbnQ6CgoqKkFuYWx5emluZyB0aGUgYnJjbWZfcDJwIEFjdGlvbiBGcmFtZSBGbG93KioKClJpZ2h0LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgLiBJdCBzZWVtcyBwcmV0dHkgY2xlYXIgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGRpcmVjdGx5IHRyaWdnZXJlZCBieSBhIGNhbGwgdG8gYGJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWVgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGEgZmV3IHRoaW5ncy4gRmlyc3QsIHRoaXMgbGlrZWx5IGhhbmRsZXMgc29tZSBraW5kIG9mIGludGVycnVwdGlvbiBvciBjYW5jZWxsYXRpb24gc2NlbmFyaW8gcmVsYXRlZCB0byB0aGUgcHJvY2Vzc2luZyBvZiBQMlAgYWN0aW9uIGZyYW1lcy4gVGhlIGZhY3QgdGhhdCAmIzM5O2Fib3J0JiMzOTsgaXMgaW4gdGhlIG5hbWUgc29saWRpZmllcyB0aGlzLiBTZWNvbmQsIHRoZSAmIzM0O3dhaXQmIzM0OyBjb21wb25lbnQgaW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24mIzM5O3MgbmFtZSBzdWdnZXN0cyBhIHRpbWVkIHByb2Nlc3Mgb3IgYSBzcGVjaWZpYyBzZXF1ZW5jZSB3aGVyZSB0aGUgYWN0aW9uIGZyYW1lIGhhbmRsaW5nIG1pZ2h0IGJlIHB1dCBvbiBob2xkIHRlbXBvcmFyaWx5LiBQZXJoYXBzIHdhaXRpbmcgZm9yIGEgcmVzcG9uc2Ugb3IgYSBwYXJ0aWN1bGFyIHN0YXRlIHRvIGJlIHJlYWNoZWQuCgpNeSBpbml0aWFsIGFzc3VtcHRpb24gd291bGQgYmUgdGhhdCBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgZGVzaWduZWQgdG8gY2xlYW5seSB0ZWFyIGRvd24gb3IgaGFsdCB0aGUgY3VycmVudCBhY3Rpb24gZnJhbWUgcHJvY2Vzc2luZyBsb29wLiBJJiMzOTtsbCBuZWVkIHRvIGRpZyBkZWVwZXIgdG8gc2VlIGlmIGl0JiMzOTtzIGludm9sdmVkIGluIHJlbGVhc2luZyByZXNvdXJjZXMsIHJlc2V0dGluZyBzdGF0ZSB2YXJpYWJsZXMsIG9yIHNlbmRpbmcgc29tZSBzb3J0IG9mIG5vdGlmaWNhdGlvbiBiYWNrIHRvIHRoZSBwZWVyLiBLbm93aW5nIHdoYXQgaW5pdGlhdGVzIHRoaXMgYWJvcnQgaXMgY3JpdGljYWwuIElzIGl0IGEgdGltZW91dD8gQSBzcGVjaWZpYyBlcnJvciBjb25kaXRpb24/IEEgdXNlci1pbml0aWF0ZWQgY29tbWFuZD8gVW5kZXJzdGFuZGluZyB0aGF0IGNvbnRleHQgd2lsbCBkZXRlcm1pbmUgdGhlIG92ZXJhbGwgaW1wYWN0IG9uIHRoZSBQMlAgY29ubmVjdGlvbiBhbmQgc3Vic2VxdWVudCBzdGF0ZS4gSSBuZWVkIHRvIHRyYWNlIHRoZSBjYWxsaW5nIGNoYWluIHdpdGhpbiB0aGUgZHJpdmVyIHRvIGZ1bGx5IHVuZGVyc3RhbmQgd2h5IGFuZCB3aGVuIHRoaXMgYWJvcnQgZnVuY3Rpb24gZ2V0cyB0cmlnZ2VyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEyNzY9c3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEyOTctLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI5ODogKiBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKCkgLSBmaW5pc2ggc2NhbiBpZiBhZiB0eCBjb21wbGV0ZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMjk5LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzMDM9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxMzA0OmJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzA1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTM0Mj1icmNtZl9wMnBfZ29uX3JlcV9jb2xsaXNpb24oc3RydWN0IGJyY21mX3AycF9pbmZvICpwMnAsIHU4ICptYWMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEzNzAtXHRcdFx0XHQgICAgICAgXHUwMDI2cDJwLVx1MDAzZXN0YXR1cykpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTM3MTpcdFx0XHRicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKGNmZyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTM3Mi1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xMzkwPWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl9mcmFtZV9yeChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTQ1OS1cdFx0LyogU3RvcCB3YWl0aW5nIGZvciBuZXh0IEFGLiAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE0NjA6XHRcdGJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWUoY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNDYxLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xNDk4PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTUyMy1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNTI0Olx0XHRcdGJyY21mX3AycF9zdG9wX3dhaXRfbmV4dF9hY3Rpb25fZnJhbWUoY2ZnKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNTI1LVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTY2NAoJCQkJCQkJb3V0cHV0OiA1NQoJCQkJCQkJdGhvdWdodHM6IDM0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZToKCioqTXkgUGVyc3BlY3RpdmUgb24gdGhlIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSBDYWxsKioKCkFscmlnaHQsIHNvIEkmIzM5O20gdHJhY2luZyB0aGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uIGNhbGwuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCYjMzk7cyBiZWluZyB0cmlnZ2VyZWQgZGlyZWN0bHkgYnkgdGhlIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCBmdW5jdGlvbi4gVGhpcyBjb25uZWN0aW9uIGlzIGtleS4gV2hhdCB0aGlzIHRlbGxzIG1lIGltbWVkaWF0ZWx5IGlzIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCB0aGUgdHJhbnNtaXNzaW9uIG9mIDgwMi4xMSBtYW5hZ2VtZW50IGZyYW1lcywgc3BlY2lmaWNhbGx5IHdpdGhpbiBhIFAyUCBjb250ZXh0LiBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAgaGFuZGxlcyB0aGUgZ2VuZXJhbCBmcmFtZXdvcmsgZm9yIHNlbmRpbmcgbWFuYWdlbWVudCBmcmFtZXMsIGFuZCB0aGlzIHNwZWNpZmljIGNhbGwsIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLCBpcyBsaWtlbHkgdGhlIGhvb2sgdG8gaGFuZGxlIHRoZSBzcGVjaWZpY3MgbmVlZGVkIGZvciBQMlAgYWN0aW9uIGZyYW1lcy4gVGhpcyBjb3VsZCBiZSB0aGluZ3MgbGlrZSBQMlAgaW52aXRhdGlvbiByZXF1ZXN0cywgR08gbmVnb3RpYXRpb24gZnJhbWVzLCBvciBhbnkgb3RoZXIgUDJQLXNwZWNpZmljIHByb3RvY29sIGV4Y2hhbmdlcyB0aGF0IHJpZGUgb24gdG9wIG9mIHN0YW5kYXJkIDgwMi4xMSBtYW5hZ2VtZW50IGZyYW1lcy4gSSBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB0aGUgY29kZSB3aXRoaW4gdGhlIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIHRvIHNlZSB3aGF0IGFkZGl0aW9uYWwgcGFyYW1ldGVycyBvciBkYXRhIGlzIGJlaW5nIHByZXBhcmVkIG9yIGFkZGVkIHdpdGhpbiB0aGlzIHNwZWNpZmljIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMz1icmNtZl9jZmc4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjU2MzI6XHRcdGFjayA9IGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSh2aWYtXHUwMDNlaWZwLCBhZl9wYXJhbXMpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMtNTYzMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTY5OD1zdGF0aWMgYm9vbCBicmNtZl9wMnBfY2hlY2tfZHdlbGxfb3ZlcmZsb3codTMyIHJlcXVlc3RlZF9kd2VsbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcwOS0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzEwOiAqIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSgpIC0gc2VuZCBhY3Rpb24gZnJhbWUgLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTEtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxNC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzE1OmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTYtXHRcdFx0XHQgc3RydWN0IGJyY21mX2ZpbF9hZl9wYXJhbXNfbGUgKmFmX3BhcmFtcylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg9MTY5PWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl90eF9jb21wbGV0ZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTcxLVx0XHRcdFx0XHR2b2lkICpkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaDoxNzI6Ym9vbCBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2lmICppZnAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmgtMTczLVx0XHRcdFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2ODAyCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIEF0dGFjayBTdXJmYWNlKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IHNlZSBhIGRpcmVjdCBwYXRoIGZyb20gYGJyY21mX2NmZzgwMjExX21nbXRfdHhgLCB3aGljaCBpcyBhIGBjZmc4MDIxMWAgb3BlcmF0aW9uLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgc2hvd2luZyBhIGNsZWFyIGVudHJ5IHBvaW50IGludG8gdGhlIHdpcmVsZXNzIHN0YWNrLiBBbmQgdGhlbiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgcmVhY2hhYmxlIHRocm91Z2ggZXZlbnQgaGFuZGxlcnMgbGlrZSBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fZnJhbWVfcnhgIGFuZCBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fdHhfY29tcGxldGVgLiBUaGlzIHJvdXRlIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBgbWFjODAyMTFgL2BjZmc4MDIxMWAgbmV0bGluayBpbnRlcmZhY2U7IGEgZGVmaW5pdGUgdGFyZ2V0LgoKTm93IEkgbmVlZCB0byBzZWUgd2hhdCBjb25maWd1cmF0aW9ucyBhcmUgbmVjZXNzYXJ5IGZvciBpdCB0byBiZSBlbmFibGVkLiBJIGtub3cgSSBuZWVkIGBCUkNNRk1BQ2AgYW5kLCBvZiBjb3Vyc2UsIGVpdGhlciBgQlJDTUZNQUNfVVNCYCBvciBvbmUgb2YgdGhlIG90aGVyIGhhcmR3YXJlLXNwZWNpZmljIG9wdGlvbnMuIEFoLCBnb29kLCBgQlJDTUZNQUNfVVNCYCBpcyBwZXJmZWN0LiBUaGlzIHNpbXBsaWZpZXMgdGhlIGludmVzdGlnYXRpb24uIEJ1dCB3aGF0IGFib3V0IFAyUC1zcGVjaWZpYyBjb25maWd1cmF0aW9uPyBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0byBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJDTUZNQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxOmNvbmZpZyBCUkNNRk1BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjExOmNvbmZpZyBCUkNNRk1BQ19QUk9UT19CQ0RDXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cdGJvb2xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTUtXHRib29sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjE3OmNvbmZpZyBCUkNNRk1BQ19TRElPXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xOC1cdGJvb2wgXCYjMzQ7U0RJTyBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoyOTpjb25maWcgQlJDTUZNQUNfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7VVNCIGJ1cyBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgRnVsbE1BQyBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy00MS1cdGJvb2wgXCYjMzQ7UENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc4OTcKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAzMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgZm9yIENvbmZpZyBPdmVybGFwKioKCkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzIHNwZWNpZmljIGRyaXZlciwgSSBuZWVkIHRvIHRha2UgYSBzdGVwIGJhY2sgYW5kIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCByZWludmVudGluZyB0aGUgd2hlZWwgb3IgbWlzc2luZyBzb21ldGhpbmcgb2J2aW91cy4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIEkgc2hvdWxkIHF1aWNrbHkgZ2xhbmNlIGF0IHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWdgIGZpbGUuIEkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgY29uZmlybSB0aGF0IHRoZXJlIGFyZW4mIzM5O3QgYW55IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zIG9yIHByZS1leGlzdGluZyBmZWF0dXJlIHNldHMgZGVmaW5lZCBpbiB0aGF0IGxvY2F0aW9uLiBJdCYjMzk7cyBhIGtleSBhcmVhIHRvIGNoZWNrIGZvciBhbnkgZXhpc3Rpbmcgc2V0dGluZ3MgdGhhdCBtaWdodCBpbXBhY3QgbXkgY3VycmVudCBmb2N1cywgdG8gYXZvaWQgYW55IHVuaW50ZW5kZWQgY29uZmxpY3RzIG9yIGR1cGxpY2F0ZWQgZWZmb3J0LiBCYXNpY2FsbHksIEkgd2FudCB0byBlbnN1cmUgbXkgY3VycmVudCB3b3JrIGlzIGF3YXJlIG9mIGFuZCBjb21wYXRpYmxlIHdpdGggdGhlIGJyb2FkZXIgQnJvYWRjb20gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIE5vIHBvaW50IGluIGdvaW5nIG9mZiBvbiBhIHRhbmdlbnQgaWYgdGhlIGdyb3VuZHdvcmsmIzM5O3MgYWxyZWFkeSBsYWlkIG91dCB0aGVyZS4gVGhhdCBLY29uZmlnIGZpbGUgd2lsbCBiZSB0aGUgZmlyc3QgcG9ydCBvZiBjYWxsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjI6Y29uZmlnIEJSQ01VVElMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZzo1OmNvbmZpZyBCUkNNU01BQ1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNi1cdHRyaXN0YXRlIFwmIzM0O0Jyb2FkY29tIElFRUU4MDIuMTFuIFBDSWUgU29mdE1BQyBXTEFOIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWc6MTg6Y29uZmlnIEJSQ01TTUFDX0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTE5LVx0ZGVmX2Jvb2wgQlJDTVNNQUMgXHUwMDI2XHUwMDI2IEJDTUFfRFJJVkVSX0dQSU8gXHUwMDI2XHUwMDI2IE1BQzgwMjExX0xFRFNcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZz0yNT1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWc6Mjc6Y29uZmlnIEJSQ01fVFJBQ0lOR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMjgtXHRib29sIFwmIzM0O0Jyb2FkY29tIGRldmljZSB0cmFjaW5nXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZzozOTpjb25maWcgQlJDTURCR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNDAtXHRib29sIFwmIzM0O0Jyb2FkY29tIGRyaXZlciBkZWJ1ZyBmdW5jdGlvbnNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMDI6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODcwNgoJCQkJCQkJb3V0cHV0OiA2MAoJCQkJCQkJdGhvdWdodHM6IDE3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBBY3Rpb24gRnJhbWUgSGFuZGxpbmcgaW4gYnJjbWZtYWMqKgoKT2theSwgc28gSSYjMzk7bSB6ZXJvaW5nIGluIG9uIHRoZSBhY3Rpb24gZnJhbWUgaGFuZGxpbmcgd2l0aGluIHRoZSBgYnJjbWZtYWNgIGRyaXZlci4gRnJvbSB3aGF0IEkgcmVjYWxsLCBgQlJDTUZNQUNgIGFuZCBgQlJDTUZNQUNfVVNCYCBhcmUgdGhlIGtleSBhcmVhcyB0byBpbnZlc3RpZ2F0ZS4gTGV0JiMzOTtzIHNlZS4uLiBJIG5lZWQgdG8gaWRlbnRpZnkgdGhlIGNydWNpYWwgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gc2VuZGluZyBhbmQgcmVjZWl2aW5nIHRoZXNlIGFjdGlvbiBmcmFtZXMuCgpSaWdodCwgdGhlIGZ1bmN0aW9ucyBJJiMzOTttIG1vc3QgaW50ZXJlc3RlZCBpbiBzZWVtIHRvIGJlOiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAsIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgLCBgYnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZWAsIGFuZCBgYnJjbWZfY2ZnODAyMTFfbWdtdF90eGAuIEEgcXVpY2sgY2hlY2suLi4gb2gsIGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgd2hpY2ggbGltaXRzIGl0cyBzY29wZSwgc28gaXQgbWF5IG5vdCBiZSBhcyBjcml0aWNhbCBhdCBmaXJzdCBnbGFuY2UuIEhvd2V2ZXIsIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGlzIGV4cG9ydGVkLCBtZWFuaW5nIGl0JiMzOTtzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBmcm9tIG90aGVyIHBhcnRzIG9mIHRoZSBgYnJjbWZtYWNgIGNvZGUsIHdoaWNoIGxpa2VseSBtYWtlcyBpdCBtb3JlIGltcG9ydGFudCB0byB1bmRlcnN0YW5kLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgc291cmNlIGZvciBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCBpbiBgcDJwLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAwMjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDticmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTE2OTg9c3RhdGljIGJvb2wgYnJjbWZfcDJwX2NoZWNrX2R3ZWxsX292ZXJmbG93KHUzMiByZXF1ZXN0ZWRfZHdlbGwsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MDktLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcxMDogKiBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWUoKSAtIHNlbmQgYWN0aW9uIGZyYW1lIC5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzExLSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTQtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcxNTpib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzE2LVx0XHRcdFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk1NzYKCQkJCQkJCW91dHB1dDogMTMzCgkJCQkJCQl0aG91Z2h0czogMjIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaGVyZSBpcyB0byBpbnRlZ3JhdGUgdGhpcyBwYXRjaCBlZmZlY3RpdmVseS4gRmlyc3QsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhZGQgYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgIGFuZCBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCB0byBteSBgRm9jdXNTeW1ib2xzYCBsaXN0LiBUaGF0JiMzOTtzIHRoZSBjb3JlIG9mIHdoYXQmIzM5O3MgYmVpbmcgbW9kaWZpZWQsIHNvIEkmIzM5O2xsIHByaW9yaXRpemUgdGhvc2UuCgpOb3csIGxldCBtZSBqdXN0IHF1aWNrbHkgcnVuIHRocm91Z2ggdGhlIGRlcGVuZGVuY2llcy4gUmlnaHQsIGBCUkNNRk1BQ2AgcmVsaWVzIG9uIGBDRkc4MDIxMWAsIGFuZCBgQlJDTUZNQUNfVVNCYCByZXF1aXJlcyBgVVNCYC4gR290IGl0LiBOb3RoaW5nIHVuZXhwZWN0ZWQgdGhlcmUuIEkmIzM5O2xsIHRha2Ugbm90ZSBvZiB0aGF0IGZvciBhbnkgYnJvYWRlciBjb250ZXh0LgoKU28sIEkgd2lsbCBzZXQgYEVuYWJsZUNvbmZpZ3NgIHRvIGluY2x1ZGUgYFsmIzM0O0JSQ01GTUFDJiMzNDssICYjMzQ7QlJDTUZNQUNfVVNCJiMzNDtdYC4gVGhhdCBzaG91bGQgY292ZXIgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zIGZvciB0ZXN0aW5nLgoKVGhlIHJlYXNvbmluZyBwcm92aWRlZCBjbGFyaWZpZXMgdGhhdCB0aGlzIGlzIGFkZHJlc3NpbmcgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlcyB3aXRoaW4gdGhlIGBicmNtZm1hY2AgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjcml0aWNhbCBhc3BlY3QgaXMgdGhhdCB0aGlzIHZ1bG5lcmFiaWxpdHkgaXMgZXhwb3NlZCB2aWEgdGhlIGBjZmc4MDIxMWAgbmV0bGluayBpbnRlcmZhY2UgYW5kIGNhbiBiZSB0cmlnZ2VyZWQgdXNpbmcgdmlydHVhbGl6ZWQgVVNCIGRldmljZXMuIFRoYXQgZXhwbGFpbnMgdGhlIGNvbmZpZ3VyYXRpb25zIEkgc2VsZWN0ZWQuCgpGaW5hbGx5LCBJIG5lZWQgdG8gZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gYmUgY2VydGFpbiB0aGF0IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYXJlIGluZGVlZCB0aGUgY29ycmVjdCBzeW1ib2xzIHdpdGhpbiB0aGUgcGF0Y2guIEkmIzM5O2xsIHZlcmlmeSB0aGF0IHRoZSBjaGFuZ2VzIGRlc2NyaWJlZCBkbywgaW4gZmFjdCwgYWxpZ24gd2l0aCB0aG9zZSBmdW5jdGlvbnMuIEFscmlnaHQsIHNlZW1zIHRvIGJlIGV4YWN0bHkgd2hhdCBJIG5lZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDAyOjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUkNNRk1BQyYjMzQ7LAogICAgJiMzNDtCUkNNRk1BQ19VU0ImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDticmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lJiMzNDssCiAgICAmIzM0O2JyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDg6NDcuMDI2ODc3MjkxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU2OTEzODc4NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJDTUZNQUNcIixcbiAgICBcIkJSQ01GTUFDX1VTQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVcIixcbiAgICBcImJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZXMgaW4gdGhlIEJyb2FkY29tIEZ1bGxNQUMgV0xBTiBkcml2ZXIgKGJyY21mbWFjKSBkdXJpbmcgUDJQIGFjdGlvbiBmcmFtZSBoYW5kbGluZy4gVGhlIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSB0aGUgY2ZnODAyMTEgbmV0bGluayBpbnRlcmZhY2UgYW5kIGNhbiBiZSBmdXp6ZWQgdXNpbmcgdmlydHVhbGl6ZWQgVVNCIGRldmljZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjQ3LjAyNjg4NjU1MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzU4NTI5NTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYmM1YWJiNjc0M2I0NTA5ZTczZjA5ZWJhNmY4NTI3MjhkYzk1MDE5YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyMyAwMjo0ODo0NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcXG5pbmRleCA5MmMxNmEzMTczMjg4Yi4uNjY1NTdiZTI4ZTdiMTYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXFxuQEAgLTEyODMsNiArMTI4Myw5IEBAIHN0YXRpYyBzMzIgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnKVxcbiBcXHRicmNtZl9kYmcoVFJBQ0UsIFxcXCJFbnRlclxcXFxuXFxcIik7XFxuIFxcbiBcXHR2aWYgPSBwMnAtXFx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZjtcXG4rXFx0aWYgKCF2aWYpXFxuK1xcdFxcdHZpZiA9IHAycC1cXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX1BSSU1BUlldLnZpZjtcXG4rXFxuIFxcdGVyciA9IGJyY21mX2ZpbF9ic3NjZmdfZGF0YV9zZXQodmlmLVxcdTAwM2VpZnAsIFxcXCJhY3RmcmFtZV9hYm9ydFxcXCIsIFxcdTAwMjZpbnRfdmFsLFxcbiBcXHRcXHRcXHRcXHRcXHRzaXplb2YoczMyKSk7XFxuIFxcdGlmIChlcnIpXFxuQEAgLTE4MTksNiArMTgyMiw3IEBAIGJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbiBcXHQvKiB2YWxpZGF0ZSBjaGFubmVsIGFuZCBwMnAgaWVzICovXFxuIFxcdGlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICBJU19QMlBfU09DSUFMX0NIQU5ORUwobGUzMl90b19jcHUoYWZfcGFyYW1zLVxcdTAwM2VjaGFubmVsKSkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIHAycC1cXHUwMDNlYnNzX2lkeFtQMlBBUElfQlNTQ0ZHX0RFVklDRV0udmlmIFxcdTAwMjZcXHUwMDI2XFxuIFxcdCAgICBwMnAtXFx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZi1cXHUwMDNlc2F2ZWRfaWUucHJvYmVfcmVxX2llX2xlbikge1xcbiBcXHRcXHRhZnhfaGRsID0gXFx1MDAyNnAycC1cXHUwMDNlYWZ4X2hkbDtcXG4gXFx0XFx0YWZ4X2hkbC1cXHUwMDNlcGVlcl9saXN0ZW5fY2hhbiA9IGxlMzJfdG9fY3B1KGFmX3BhcmFtcy1cXHUwMDNlY2hhbm5lbCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjQ3Ljc4NjI0OTA1N1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM0OTMxOTk5NDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJSQ01GTUFDXCIsXG4gICAgXCJCUkNNRk1BQ19VU0JcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lXCIsXG4gICAgXCJicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzIGluIHRoZSBCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyIChicmNtZm1hYykgZHVyaW5nIFAyUCBhY3Rpb24gZnJhbWUgaGFuZGxpbmcuIFRoZSBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgdGhlIGNmZzgwMjExIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgZnV6emVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJjNWFiYjY3NDNiNDUwOWU3M2YwOWViYTZmODUyNzI4ZGM5NTAxOWJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAwMjo0ODo0NCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuY1xuaW5kZXggOTJjMTZhMzE3MzI4OGIuLjY2NTU3YmUyOGU3YjE2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmNcbkBAIC0xMjgzLDYgKzEyODMsOSBAQCBzdGF0aWMgczMyIGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcbiBcdGJyY21mX2RiZyhUUkFDRSwgXCJFbnRlclxcblwiKTtcbiBcbiBcdHZpZiA9IHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWY7XG4rXHRpZiAoIXZpZilcbitcdFx0dmlmID0gcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19QUklNQVJZXS52aWY7XG4rXG4gXHRlcnIgPSBicmNtZl9maWxfYnNzY2ZnX2RhdGFfc2V0KHZpZi1cdTAwM2VpZnAsIFwiYWN0ZnJhbWVfYWJvcnRcIiwgXHUwMDI2aW50X3ZhbCxcbiBcdFx0XHRcdFx0c2l6ZW9mKHMzMikpO1xuIFx0aWYgKGVycilcbkBAIC0xODE5LDYgKzE4MjIsNyBAQCBib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcbiBcdC8qIHZhbGlkYXRlIGNoYW5uZWwgYW5kIHAycCBpZXMgKi9cbiBcdGlmIChjb25maWdfYWZfcGFyYW1zLnNlYXJjaF9jaGFubmVsIFx1MDAyNlx1MDAyNlxuIFx0ICAgIElTX1AyUF9TT0NJQUxfQ0hBTk5FTChsZTMyX3RvX2NwdShhZl9wYXJhbXMtXHUwMDNlY2hhbm5lbCkpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIHAycC1cdTAwM2Vic3NfaWR4W1AyUEFQSV9CU1NDRkdfREVWSUNFXS52aWYgXHUwMDI2XHUwMDI2XG4gXHQgICAgcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZi1cdTAwM2VzYXZlZF9pZS5wcm9iZV9yZXFfaWVfbGVuKSB7XG4gXHRcdGFmeF9oZGwgPSBcdTAwMjZwMnAtXHUwMDNlYWZ4X2hkbDtcbiBcdFx0YWZ4X2hkbC1cdTAwM2VwZWVyX2xpc3Rlbl9jaGFuID0gbGUzMl90b19jcHUoYWZfcGFyYW1zLVx1MDAzZWNoYW5uZWwpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDg6NDcuNzg2MjUxMDM3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTAwMjE3MDUyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBXaUZpIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBicmNtZm1hY2AsIHNwZWNpZmljYWxseSBpbiBgcDJwLmNgLiBUaGV5J3ZlIGFkZGVkIG51bGwgY2hlY2tzIGZvciBgcDJwLVx1MDAzZWJzc19pZHhbUDJQQVBJX0JTU0NGR19ERVZJQ0VdLnZpZmAgd2l0aGluIHR3byBmdW5jdGlvbnM6IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAuIENsYXNzaWMgZGVmZW5zaXZlIHByb2dyYW1taW5nLCB3aGljaCBwcm9iYWJseSBtZWFucyBzb21lb25lIGZvdW5kIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byBhY2Nlc3NpbmcgYSBudWxsIHBvaW50ZXIgaW4gdGhlc2UgZnVuY3Rpb25zLiBJbnRlcmVzdGluZy5cblxuTm93LCBsZXQncyB0aGluayBhYm91dCBmdXp6aW5nIHRoaXMuIEl0J3MgYSB3aXJlbGVzcyBkcml2ZXIsIHNvIHRoZSBuYXR1cmFsIGluY2xpbmF0aW9uIGlzIHRvIHRoaW5rIGFib3V0IG1hYzgwMjExX2h3c2ltLiBCdXQgd2FpdCwgYGJyY21mbWFjYCBpcyBhICpmdWxsbWFjKiBkcml2ZXIsIHJpZ2h0PyBUaGF0IG1lYW5zIGl0IG9mZmxvYWRzIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIHRoZSA4MDIuMTEgcHJvY2Vzc2luZyB0byBmaXJtd2FyZSB0aGF0J3MgcnVubmluZyBvbiBhbiBleHRlcm5hbCBkZXZpY2Ug4oCTIHByb2JhYmx5IG92ZXIgU0RJTywgVVNCLCBvciBQQ0llLiBTbywgZGlyZWN0IG1hYzgwMjExLWxldmVsIGZ1enppbmcgcHJvYmFibHkgaXNuJ3QgdGhlIGJlc3QgYXBwcm9hY2guXG5cblNvLCBob3cgY2FuIHdlIGFjdHVhbGx5IGZ1enogdGhpcz8gSWYgaXQgdGFsa3MgdG8gdGhlIGhvc3QgdmlhIFVTQiwgdGhlbiB3ZSBjYW4gbGlrZWx5IGVtdWxhdGUgdGhlIGRldmljZSB3aXRoIGEgZHVtbXkgaGNkIG9yIHNvbWV0aGluZyBzaW1pbGFyIGxpa2Ugc3l6a2FsbGVyIGRvZXMuIFRoaXMgd291bGQgbWVhbiBjcmVhdGluZyBjcmFmdGVkIFVTQiB0cmFmZmljIHRvIGF0dGFjayB0aGUgZHJpdmVyIGluIHRoaXMgbW9kZS4gTGV0IG1lIGNoZWNrIGlmIGBicmNtZm1hY2AgZXZlbiBoYXMgVVNCIHN1cHBvcnQuLi4gdGhhdCdzIHRoZSBrZXkgcXVlc3Rpb24gbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQ4LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjE2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDg6NTIuNzg4NDI1MDcxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYyMjc5Mzg2MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJDTUZNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0ODo1My40MTEyMjcyMTJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjg3MjcwODI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuLi5cblxuKipVU0IgRnV6emluZyBBbmFseXNpcyoqXG5cblJpZ2h0LCBgQlJDTUZNQUNfVVNCYCBpcyBkZWZpbml0ZWx5IHN1cHBvcnRlZC4gVGhhdCBjb25maXJtcyB3aGF0IEkgc3VzcGVjdGVkLCBTeXprYWxsZXIgaXMgaW5kZWVkIGZ1enppbmcgVVNCIGRldmljZXMsIGFuZCB0aGF0J3MgdGhlIHZlY3RvciB3ZSdyZSBjb25jZXJuZWQgd2l0aCBoZXJlLiBTbywgbG9naWNhbGx5LCB0aGlzIGNvZGUgKmlzKiByZWFjaGFibGUgdGhyb3VnaCBVU0IgZnV6emluZy4gTm93LCBJIG5lZWQgdG8gZm9jdXMgb24gdGhvc2UgdHdvIHNwZWNpZmljIGZ1bmN0aW9ucyBtZW50aW9uZWQ6IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAuIFRoZXkgYXJlIG15IHByaW1hcnkgdGFyZ2V0cyBmb3IgZnVydGhlciBhbmFseXNpcyB3aXRoaW4gdGhlIFVTQiBmdXp6aW5nIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGV54oCZcmUgY2FsbGVkLCB3aGF0IHRoZWlyIGlucHV0cyBhcmUsIGFuZCBob3cgdGhleSBpbnRlcmFjdCB0byBpZGVudGlmeSBhbnkgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ0NCwiT3V0cHV0VG9rZW5zIjo1NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjU2LjY5ODUwMDI2OVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjc3OTEyMDYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xMjI1PWJvb2wgYnJjbWZfcDJwX3NjYW5fZmluZGluZ19jb21tb25fY2hhbm5lbChzdHJ1Y3QgYnJjbWZfY2ZnODAyMTFfaW5mbyAqY2ZnLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEyNzAtLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEyNzE6ICogYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZSgpIC0gYWJvcnQgYWN0aW9uIGZyYW1lLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMjcyLSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3NS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI3NjpzdGF0aWMgczMyIGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWUoc3RydWN0IGJyY21mX2NmZzgwMjExX2luZm8gKmNmZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTMwND1icmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTMxOC1cXHRcXHRcXHQvKiBhYm9ydCBhY3RmcmFtZSB1c2luZyBhY3RmcmFtZV9hYm9ydCBvciBhYm9ydCBzY2FuICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEzMTk6XFx0XFx0XFx0ZXJyID0gYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZShjZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzIwLVxcdFxcdFxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDAyOjQ4OjU2LjgyNjI5OTcwNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MTg0ODIzODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IGludGVyYWN0aW9uLCBwcmVzZW50ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIGl0IG15c2VsZiwgYW5kIHRhaWxvcmVkIGZvciBzb21lb25lIGZhbWlsaWFyIHdpdGggZW1iZWRkZWQgc3lzdGVtcyBhbmQgZHJpdmVyIGRldmVsb3BtZW50OlxuXG4qKkFuYWx5emluZyB0aGUgYnJjbWZfcDJwIEFjdGlvbiBGcmFtZSBGbG93KipcblxuUmlnaHQsIHNvIEknbSBsb29raW5nIGF0IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYC4gSXQgc2VlbXMgcHJldHR5IGNsZWFyIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBkaXJlY3RseSB0cmlnZ2VyZWQgYnkgYSBjYWxsIHRvIGBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lYC4gVGhhdCBpbW1lZGlhdGVseSB0ZWxscyBtZSBhIGZldyB0aGluZ3MuIEZpcnN0LCB0aGlzIGxpa2VseSBoYW5kbGVzIHNvbWUga2luZCBvZiBpbnRlcnJ1cHRpb24gb3IgY2FuY2VsbGF0aW9uIHNjZW5hcmlvIHJlbGF0ZWQgdG8gdGhlIHByb2Nlc3Npbmcgb2YgUDJQIGFjdGlvbiBmcmFtZXMuIFRoZSBmYWN0IHRoYXQgJ2Fib3J0JyBpcyBpbiB0aGUgbmFtZSBzb2xpZGlmaWVzIHRoaXMuIFNlY29uZCwgdGhlIFwid2FpdFwiIGNvbXBvbmVudCBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbidzIG5hbWUgc3VnZ2VzdHMgYSB0aW1lZCBwcm9jZXNzIG9yIGEgc3BlY2lmaWMgc2VxdWVuY2Ugd2hlcmUgdGhlIGFjdGlvbiBmcmFtZSBoYW5kbGluZyBtaWdodCBiZSBwdXQgb24gaG9sZCB0ZW1wb3JhcmlseS4gUGVyaGFwcyB3YWl0aW5nIGZvciBhIHJlc3BvbnNlIG9yIGEgcGFydGljdWxhciBzdGF0ZSB0byBiZSByZWFjaGVkLlxuXG5NeSBpbml0aWFsIGFzc3VtcHRpb24gd291bGQgYmUgdGhhdCBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgZGVzaWduZWQgdG8gY2xlYW5seSB0ZWFyIGRvd24gb3IgaGFsdCB0aGUgY3VycmVudCBhY3Rpb24gZnJhbWUgcHJvY2Vzc2luZyBsb29wLiBJJ2xsIG5lZWQgdG8gZGlnIGRlZXBlciB0byBzZWUgaWYgaXQncyBpbnZvbHZlZCBpbiByZWxlYXNpbmcgcmVzb3VyY2VzLCByZXNldHRpbmcgc3RhdGUgdmFyaWFibGVzLCBvciBzZW5kaW5nIHNvbWUgc29ydCBvZiBub3RpZmljYXRpb24gYmFjayB0byB0aGUgcGVlci4gS25vd2luZyB3aGF0IGluaXRpYXRlcyB0aGlzIGFib3J0IGlzIGNyaXRpY2FsLiBJcyBpdCBhIHRpbWVvdXQ/IEEgc3BlY2lmaWMgZXJyb3IgY29uZGl0aW9uPyBBIHVzZXItaW5pdGlhdGVkIGNvbW1hbmQ/IFVuZGVyc3RhbmRpbmcgdGhhdCBjb250ZXh0IHdpbGwgZGV0ZXJtaW5lIHRoZSBvdmVyYWxsIGltcGFjdCBvbiB0aGUgUDJQIGNvbm5lY3Rpb24gYW5kIHN1YnNlcXVlbnQgc3RhdGUuIEkgbmVlZCB0byB0cmFjZSB0aGUgY2FsbGluZyBjaGFpbiB3aXRoaW4gdGhlIGRyaXZlciB0byBmdWxseSB1bmRlcnN0YW5kIHdoeSBhbmQgd2hlbiB0aGlzIGFib3J0IGZ1bmN0aW9uIGdldHMgdHJpZ2dlcmVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjg1LCJPdXRwdXRUb2tlbnMiOjU5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MDAuNjQ0Nzg0NjE2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MjE1MDgzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEyNzY9c3RhdGljIHMzMiBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI5Ny0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTI5ODogKiBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKCkgLSBmaW5pc2ggc2NhbiBpZiBhZiB0eCBjb21wbGV0ZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTI5OS0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzMDM9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTMwNDpicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9jZmc4MDIxMV9pbmZvICpjZmcpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEzMDUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTEzNDI9YnJjbWZfcDJwX2dvbl9yZXFfY29sbGlzaW9uKHN0cnVjdCBicmNtZl9wMnBfaW5mbyAqcDJwLCB1OCAqbWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTEzNzAtXFx0XFx0XFx0XFx0ICAgICAgIFxcdTAwMjZwMnAtXFx1MDAzZXN0YXR1cykpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjEzNzE6XFx0XFx0XFx0YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZShjZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xMzcyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xMzkwPWludCBicmNtZl9wMnBfbm90aWZ5X2FjdGlvbl9mcmFtZV9yeChzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNDU5LVxcdFxcdC8qIFN0b3Agd2FpdGluZyBmb3IgbmV4dCBBRi4gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTQ2MDpcXHRcXHRicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lKGNmZyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE0NjEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jPTE0OTg9aW50IGJyY21mX3AycF9ub3RpZnlfYWN0aW9uX3R4X2NvbXBsZXRlKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE1MjMtXFx0XFx0XFx0ICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE1MjQ6XFx0XFx0XFx0YnJjbWZfcDJwX3N0b3Bfd2FpdF9uZXh0X2FjdGlvbl9mcmFtZShjZmcpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNTI1LVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MDAuNzk2OTM5NzUxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzczMTY3MDMwNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwga2VlcGluZyBpbiBtaW5kIG15IGV4cGVydGlzZTpcblxuKipNeSBQZXJzcGVjdGl2ZSBvbiB0aGUgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lIENhbGwqKlxuXG5BbHJpZ2h0LCBzbyBJJ20gdHJhY2luZyB0aGlzIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIGZ1bmN0aW9uIGNhbGwuIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCdzIGJlaW5nIHRyaWdnZXJlZCBkaXJlY3RseSBieSB0aGUgYGJyY21mX2NmZzgwMjExX21nbXRfdHhgIGZ1bmN0aW9uLiBUaGlzIGNvbm5lY3Rpb24gaXMga2V5LiBXaGF0IHRoaXMgdGVsbHMgbWUgaW1tZWRpYXRlbHkgaXMgdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIHRyYW5zbWlzc2lvbiBvZiA4MDIuMTEgbWFuYWdlbWVudCBmcmFtZXMsIHNwZWNpZmljYWxseSB3aXRoaW4gYSBQMlAgY29udGV4dC4gYGJyY21mX2NmZzgwMjExX21nbXRfdHhgIGhhbmRsZXMgdGhlIGdlbmVyYWwgZnJhbWV3b3JrIGZvciBzZW5kaW5nIG1hbmFnZW1lbnQgZnJhbWVzLCBhbmQgdGhpcyBzcGVjaWZpYyBjYWxsLCBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCwgaXMgbGlrZWx5IHRoZSBob29rIHRvIGhhbmRsZSB0aGUgc3BlY2lmaWNzIG5lZWRlZCBmb3IgUDJQIGFjdGlvbiBmcmFtZXMuIFRoaXMgY291bGQgYmUgdGhpbmdzIGxpa2UgUDJQIGludml0YXRpb24gcmVxdWVzdHMsIEdPIG5lZ290aWF0aW9uIGZyYW1lcywgb3IgYW55IG90aGVyIFAyUC1zcGVjaWZpYyBwcm90b2NvbCBleGNoYW5nZXMgdGhhdCByaWRlIG9uIHRvcCBvZiBzdGFuZGFyZCA4MDIuMTEgbWFuYWdlbWVudCBmcmFtZXMuIEkgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gdGhlIGNvZGUgd2l0aGluIHRoZSBgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lYCB0byBzZWUgd2hhdCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgb3IgZGF0YSBpcyBiZWluZyBwcmVwYXJlZCBvciBhZGRlZCB3aXRoaW4gdGhpcyBzcGVjaWZpYyBjb250ZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NjY0LCJPdXRwdXRUb2tlbnMiOjU1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MDQuNTI4NjE0NDI1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTc5MDgyODUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmM9NTUzMz1icmNtZl9jZmc4MDIxMV9tZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY2ZnODAyMTEuYy01NjMxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jOjU2MzI6XFx0XFx0YWNrID0gYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHZpZi1cXHUwMDNlaWZwLCBhZl9wYXJhbXMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jLTU2MzMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM9MTY5OD1zdGF0aWMgYm9vbCBicmNtZl9wMnBfY2hlY2tfZHdlbGxfb3ZlcmZsb3codTMyIHJlcXVlc3RlZF9kd2VsbCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzA5LS8qKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzEwOiAqIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZSgpIC0gc2VuZCBhY3Rpb24gZnJhbWUgLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzExLSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxNC0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmM6MTcxNTpib29sIGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmMtMTcxNi1cXHRcXHRcXHRcXHQgc3RydWN0IGJyY21mX2ZpbF9hZl9wYXJhbXNfbGUgKmFmX3BhcmFtcylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaD0xNjk9aW50IGJyY21mX3AycF9ub3RpZnlfYWN0aW9uX3R4X2NvbXBsZXRlKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5oLTE3MS1cXHRcXHRcXHRcXHRcXHR2b2lkICpkYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvcDJwLmg6MTcyOmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuaC0xNzMtXFx0XFx0XFx0XFx0IHN0cnVjdCBicmNtZl9maWxfYWZfcGFyYW1zX2xlICphZl9wYXJhbXMpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OTowNC42ODY1MzE1OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzQyNDM0NzM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIEF0dGFjayBTdXJmYWNlKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCBpbW1lZGlhdGVseSBzZWUgYSBkaXJlY3QgcGF0aCBmcm9tIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YCwgd2hpY2ggaXMgYSBgY2ZnODAyMTFgIG9wZXJhdGlvbi4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgc2hvd2luZyBhIGNsZWFyIGVudHJ5IHBvaW50IGludG8gdGhlIHdpcmVsZXNzIHN0YWNrLiBBbmQgdGhlbiBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgaXMgcmVhY2hhYmxlIHRocm91Z2ggZXZlbnQgaGFuZGxlcnMgbGlrZSBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fZnJhbWVfcnhgIGFuZCBgYnJjbWZfcDJwX25vdGlmeV9hY3Rpb25fdHhfY29tcGxldGVgLiBUaGlzIHJvdXRlIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbCBhbmQgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBgbWFjODAyMTFgL2BjZmc4MDIxMWAgbmV0bGluayBpbnRlcmZhY2U7IGEgZGVmaW5pdGUgdGFyZ2V0LlxuXG5Ob3cgSSBuZWVkIHRvIHNlZSB3aGF0IGNvbmZpZ3VyYXRpb25zIGFyZSBuZWNlc3NhcnkgZm9yIGl0IHRvIGJlIGVuYWJsZWQuIEkga25vdyBJIG5lZWQgYEJSQ01GTUFDYCBhbmQsIG9mIGNvdXJzZSwgZWl0aGVyIGBCUkNNRk1BQ19VU0JgIG9yIG9uZSBvZiB0aGUgb3RoZXIgaGFyZHdhcmUtc3BlY2lmaWMgb3B0aW9ucy4gQWgsIGdvb2QsIGBCUkNNRk1BQ19VU0JgIGlzIHBlcmZlY3QuIFRoaXMgc2ltcGxpZmllcyB0aGUgaW52ZXN0aWdhdGlvbi4gQnV0IHdoYXQgYWJvdXQgUDJQLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24/IEknbGwgbmVlZCB0byBjb25maXJtIHRoYXQgdG8gcHJvY2VlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjgwMiwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OTowOS4wMjg5NzA1ODRaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0ODU2NDYwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQlJDTUZNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTpjb25maWcgQlJDTUZNQUNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJCcm9hZGNvbSBGdWxsTUFDIFdMQU4gZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTE6Y29uZmlnIEJSQ01GTUFDX1BST1RPX0JDRENcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xMi1cXHRib29sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWc6MTQ6Y29uZmlnIEJSQ01GTUFDX1BST1RPX01TR0JVRlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE1LVxcdGJvb2xcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZzoxNzpjb25maWcgQlJDTUZNQUNfU0RJT1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTE4LVxcdGJvb2wgXFxcIlNESU8gYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTI4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjI5OmNvbmZpZyBCUkNNRk1BQ19VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvS2NvbmZpZy0zMC1cXHRib29sIFxcXCJVU0IgYnVzIGludGVyZmFjZSBzdXBwb3J0IGZvciBGdWxsTUFDIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnLTM5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnOjQwOmNvbmZpZyBCUkNNRk1BQ19QQ0lFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL0tjb25maWctNDEtXFx0Ym9vbCBcXFwiUENJRSBidXMgaW50ZXJmYWNlIHN1cHBvcnQgZm9yIEZ1bGxNQUMgZHJpdmVyXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OTowOS41Nzc1NTg3NDdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA4OTE3NzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqQ2hlY2tpbmcgZm9yIENvbmZpZyBPdmVybGFwKipcblxuQWxyaWdodCwgYmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoaXMgc3BlY2lmaWMgZHJpdmVyLCBJIG5lZWQgdG8gdGFrZSBhIHN0ZXAgYmFjayBhbmQgbWFrZSBzdXJlIEknbSBub3QgcmVpbnZlbnRpbmcgdGhlIHdoZWVsIG9yIG1pc3Npbmcgc29tZXRoaW5nIG9idmlvdXMuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIEkgc2hvdWxkIHF1aWNrbHkgZ2xhbmNlIGF0IHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWdgIGZpbGUuIEknbSBob3BpbmcgdG8gcXVpY2tseSBjb25maXJtIHRoYXQgdGhlcmUgYXJlbid0IGFueSBleGlzdGluZyBjb25maWd1cmF0aW9ucyBvciBwcmUtZXhpc3RpbmcgZmVhdHVyZSBzZXRzIGRlZmluZWQgaW4gdGhhdCBsb2NhdGlvbi4gSXQncyBhIGtleSBhcmVhIHRvIGNoZWNrIGZvciBhbnkgZXhpc3Rpbmcgc2V0dGluZ3MgdGhhdCBtaWdodCBpbXBhY3QgbXkgY3VycmVudCBmb2N1cywgdG8gYXZvaWQgYW55IHVuaW50ZW5kZWQgY29uZmxpY3RzIG9yIGR1cGxpY2F0ZWQgZWZmb3J0LiBCYXNpY2FsbHksIEkgd2FudCB0byBlbnN1cmUgbXkgY3VycmVudCB3b3JrIGlzIGF3YXJlIG9mIGFuZCBjb21wYXRpYmxlIHdpdGggdGhlIGJyb2FkZXIgQnJvYWRjb20gd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIE5vIHBvaW50IGluIGdvaW5nIG9mZiBvbiBhIHRhbmdlbnQgaWYgdGhlIGdyb3VuZHdvcmsncyBhbHJlYWR5IGxhaWQgb3V0IHRoZXJlLiBUaGF0IEtjb25maWcgZmlsZSB3aWxsIGJlIHRoZSBmaXJzdCBwb3J0IG9mIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4OTcsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OToxMi42NjY3Mzk3MDFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMzQ2MTQ5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWc6Mjpjb25maWcgQlJDTVVUSUxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZzo1OmNvbmZpZyBCUkNNU01BQ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIkJyb2FkY29tIElFRUU4MDIuMTFuIFBDSWUgU29mdE1BQyBXTEFOIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTE3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjE4OmNvbmZpZyBCUkNNU01BQ19MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctMTktXFx0ZGVmX2Jvb2wgQlJDTVNNQUMgXFx1MDAyNlxcdTAwMjYgQkNNQV9EUklWRVJfR1BJTyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxMV9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZz0yNT1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjI3OmNvbmZpZyBCUkNNX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvS2NvbmZpZy0yOC1cXHRib29sIFxcXCJCcm9hZGNvbSBkZXZpY2UgdHJhY2luZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnLTM4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9LY29uZmlnOjM5OmNvbmZpZyBCUkNNREJHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL0tjb25maWctNDAtXFx0Ym9vbCBcXFwiQnJvYWRjb20gZHJpdmVyIGRlYnVnIGZ1bmN0aW9uc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MTIuNzkwMjA2ODk3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQwMzc2MTgwMzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRm9jdXNpbmcgb24gQWN0aW9uIEZyYW1lIEhhbmRsaW5nIGluIGJyY21mbWFjKipcblxuT2theSwgc28gSSdtIHplcm9pbmcgaW4gb24gdGhlIGFjdGlvbiBmcmFtZSBoYW5kbGluZyB3aXRoaW4gdGhlIGBicmNtZm1hY2AgZHJpdmVyLiBGcm9tIHdoYXQgSSByZWNhbGwsIGBCUkNNRk1BQ2AgYW5kIGBCUkNNRk1BQ19VU0JgIGFyZSB0aGUga2V5IGFyZWFzIHRvIGludmVzdGlnYXRlLiBMZXQncyBzZWUuLi4gSSBuZWVkIHRvIGlkZW50aWZ5IHRoZSBjcnVjaWFsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0aGVzZSBhY3Rpb24gZnJhbWVzLlxuXG5SaWdodCwgdGhlIGZ1bmN0aW9ucyBJJ20gbW9zdCBpbnRlcmVzdGVkIGluIHNlZW0gdG8gYmU6IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCwgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAsIGBicmNtZl9wMnBfc3RvcF93YWl0X25leHRfYWN0aW9uX2ZyYW1lYCwgYW5kIGBicmNtZl9jZmc4MDIxMV9tZ210X3R4YC4gQSBxdWljayBjaGVjay4uLiBvaCwgYGJyY21mX3AycF9hYm9ydF9hY3Rpb25fZnJhbWVgIGlzIGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBsaW1pdHMgaXRzIHNjb3BlLCBzbyBpdCBtYXkgbm90IGJlIGFzIGNyaXRpY2FsIGF0IGZpcnN0IGdsYW5jZS4gSG93ZXZlciwgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgaXMgZXhwb3J0ZWQsIG1lYW5pbmcgaXQncyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgYGJyY21mbWFjYCBjb2RlLCB3aGljaCBsaWtlbHkgbWFrZXMgaXQgbW9yZSBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZC4gVGltZSB0byBkaXZlIGludG8gdGhlIHNvdXJjZSBmb3IgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgaW4gYHAycC5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODcwNiwiT3V0cHV0VG9rZW5zIjo2MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OToxNi44Mjc4Mjg3NjFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDU5ODA3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYz0xNjk4PXN0YXRpYyBib29sIGJyY21mX3AycF9jaGVja19kd2VsbF9vdmVyZmxvdyh1MzIgcmVxdWVzdGVkX2R3ZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MDktLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jOjE3MTA6ICogYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKCkgLSBzZW5kIGFjdGlvbiBmcmFtZSAuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3AycC5jLTE3MTEtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzE0LSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYzoxNzE1OmJvb2wgYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lKHN0cnVjdCBicmNtZl9pZiAqaWZwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYy0xNzE2LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgYnJjbWZfZmlsX2FmX3BhcmFtc19sZSAqYWZfcGFyYW1zKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QwMjo0OToxNi45OTg0MzMwMTZaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTU0NDc1MzIwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgZ29hbCBoZXJlIGlzIHRvIGludGVncmF0ZSB0aGlzIHBhdGNoIGVmZmVjdGl2ZWx5LiBGaXJzdCwgSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGFkZCBgYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZWAgYW5kIGBicmNtZl9wMnBfc2VuZF9hY3Rpb25fZnJhbWVgIHRvIG15IGBGb2N1c1N5bWJvbHNgIGxpc3QuIFRoYXQncyB0aGUgY29yZSBvZiB3aGF0J3MgYmVpbmcgbW9kaWZpZWQsIHNvIEknbGwgcHJpb3JpdGl6ZSB0aG9zZS5cblxuTm93LCBsZXQgbWUganVzdCBxdWlja2x5IHJ1biB0aHJvdWdoIHRoZSBkZXBlbmRlbmNpZXMuIFJpZ2h0LCBgQlJDTUZNQUNgIHJlbGllcyBvbiBgQ0ZHODAyMTFgLCBhbmQgYEJSQ01GTUFDX1VTQmAgcmVxdWlyZXMgYFVTQmAuIEdvdCBpdC4gTm90aGluZyB1bmV4cGVjdGVkIHRoZXJlLiBJJ2xsIHRha2Ugbm90ZSBvZiB0aGF0IGZvciBhbnkgYnJvYWRlciBjb250ZXh0LlxuXG5TbywgSSB3aWxsIHNldCBgRW5hYmxlQ29uZmlnc2AgdG8gaW5jbHVkZSBgW1wiQlJDTUZNQUNcIiwgXCJCUkNNRk1BQ19VU0JcIl1gLiBUaGF0IHNob3VsZCBjb3ZlciB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgZm9yIHRlc3RpbmcuXG5cblRoZSByZWFzb25pbmcgcHJvdmlkZWQgY2xhcmlmaWVzIHRoYXQgdGhpcyBpcyBhZGRyZXNzaW5nIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZXMgd2l0aGluIHRoZSBgYnJjbWZtYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGR1cmluZyBQMlAgYWN0aW9uIGZyYW1lIGhhbmRsaW5nLiBUaGUgY3JpdGljYWwgYXNwZWN0IGlzIHRoYXQgdGhpcyB2dWxuZXJhYmlsaXR5IGlzIGV4cG9zZWQgdmlhIHRoZSBgY2ZnODAyMTFgIG5ldGxpbmsgaW50ZXJmYWNlIGFuZCBjYW4gYmUgdHJpZ2dlcmVkIHVzaW5nIHZpcnR1YWxpemVkIFVTQiBkZXZpY2VzLiBUaGF0IGV4cGxhaW5zIHRoZSBjb25maWd1cmF0aW9ucyBJIHNlbGVjdGVkLlxuXG5GaW5hbGx5LCBJIG5lZWQgdG8gZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgdG8gYmUgY2VydGFpbiB0aGF0IGBicmNtZl9wMnBfYWJvcnRfYWN0aW9uX2ZyYW1lYCBhbmQgYGJyY21mX3AycF9zZW5kX2FjdGlvbl9mcmFtZWAgYXJlIGluZGVlZCB0aGUgY29ycmVjdCBzeW1ib2xzIHdpdGhpbiB0aGUgcGF0Y2guIEknbGwgdmVyaWZ5IHRoYXQgdGhlIGNoYW5nZXMgZGVzY3JpYmVkIGRvLCBpbiBmYWN0LCBhbGlnbiB3aXRoIHRob3NlIGZ1bmN0aW9ucy4gQWxyaWdodCwgc2VlbXMgdG8gYmUgZXhhY3RseSB3aGF0IEkgbmVlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTU3NiwiT3V0cHV0VG9rZW5zIjoxMzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMDI6NDk6MjIuNTQzMTkyNDYyWiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc1MDQ5MDY1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZVwiLFxuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlcyBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIGR1cmluZyBQMlAgYWN0aW9uIGZyYW1lIGhhbmRsaW5nLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBjZmc4MDIxMSBuZXRsaW5rIGludGVyZmFjZSBhbmQgY2FuIGJlIGZ1enplZCB1c2luZyB2aXJ0dWFsaXplZCBVU0IgZGV2aWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUkNNRk1BQ1wiLFxuICAgIFwiQlJDTUZNQUNfVVNCXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYnJjbWZfcDJwX2Fib3J0X2FjdGlvbl9mcmFtZVwiLFxuICAgIFwiYnJjbWZfcDJwX3NlbmRfYWN0aW9uX2ZyYW1lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlcyBpbiB0aGUgQnJvYWRjb20gRnVsbE1BQyBXTEFOIGRyaXZlciAoYnJjbWZtYWMpIGR1cmluZyBQMlAgYWN0aW9uIGZyYW1lIGhhbmRsaW5nLiBUaGUgY29kZSBpcyByZWFjaGFibGUgdmlhIHRoZSBjZmc4MDIxMSBuZXRsaW5rIGludGVyZmFjZSBhbmQgY2FuIGJlIGZ1enplZCB1c2luZyB2aXJ0dWFsaXplZCBVU0IgZGV2aWNlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowjj2h2[1] Phase: Succeeded StartedAt: 2026-07-23 02:52:21 +0000 UTC FinishedAt: 2026-07-23 02:52:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-23 02:52:21 +0000 UTC FinishedAt: 2026-07-23 02:52:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2] Phase: Succeeded StartedAt: 2026-07-23 02:52:21 +0000 UTC FinishedAt: 2026-07-23 04:31:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 02:52:21 +0000 UTC FinishedAt: 2026-07-23 04:31:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 02:52:21 +0000 UTC FinishedAt: 2026-07-23 02:52:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 02:52:21 +0000 UTC FinishedAt: 2026-07-23 02:52:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2896090730/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 02:52:45 +0000 UTC FinishedAt: 2026-07-23 03:40:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 02:52:46 +0000 UTC FinishedAt: 2026-07-23 03:40:15 +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:*93878285-81b2-48ff-9491-d2816ae86e8f,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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2896090730/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": "2338eb53-75c7-4b22-bfcb-8c1ea8c2e140", "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-workflowjj2h2/series-workflowjj2h2-build-action-1606257880/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 02:52:46 +0000 UTC FinishedAt: 2026-07-23 03:40:03 +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:*93878285-81b2-48ff-9491-d2816ae86e8f,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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2896090730/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": "2338eb53-75c7-4b22-bfcb-8c1ea8c2e140", "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-workflowjj2h2/series-workflowjj2h2-build-action-1606257880/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:40:15 +0000 UTC FinishedAt: 2026-07-23 03:40:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:40:15 +0000 UTC FinishedAt: 2026-07-23 03:40:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:40:16 +0000 UTC FinishedAt: 2026-07-23 03:40:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:40:16 +0000 UTC FinishedAt: 2026-07-23 03:40:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2739086725/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:40:27 +0000 UTC FinishedAt: 2026-07-23 03:42:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:40:28 +0000 UTC FinishedAt: 2026-07-23 03:42:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2338eb53-75c7-4b22-bfcb-8c1ea8c2e140,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-workflowjj2h2/series-workflowjj2h2-build-action-1606257880/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-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:42:35 +0000 UTC FinishedAt: 2026-07-23 03:42:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:42:36 +0000 UTC FinishedAt: 2026-07-23 03:42:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:42:36 +0000 UTC FinishedAt: 2026-07-23 04:26:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:42:36 +0000 UTC FinishedAt: 2026-07-23 04:26:48 +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:*93878285-81b2-48ff-9491-d2816ae86e8f,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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2739086725/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": "b681e2e5-0115-46a0-b615-6cb807df849e", "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-workflowjj2h2/series-workflowjj2h2-build-action-4100966609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 03:42:36 +0000 UTC FinishedAt: 2026-07-23 04:26:38 +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:*93878285-81b2-48ff-9491-d2816ae86e8f,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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2739086725/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": "b681e2e5-0115-46a0-b615-6cb807df849e", "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-workflowjj2h2/series-workflowjj2h2-build-action-4100966609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:26:48 +0000 UTC FinishedAt: 2026-07-23 04:26:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:26:48 +0000 UTC FinishedAt: 2026-07-23 04:26:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:26:48 +0000 UTC FinishedAt: 2026-07-23 04:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:26:48 +0000 UTC FinishedAt: 2026-07-23 04:28:42 +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:*b681e2e5-0115-46a0-b615-6cb807df849e,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-workflowjj2h2/series-workflowjj2h2-build-action-4100966609/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-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:28:52 +0000 UTC FinishedAt: 2026-07-23 04:31:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:28:52 +0000 UTC FinishedAt: 2026-07-23 04:31:56 +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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"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:*2338eb53-75c7-4b22-bfcb-8c1ea8c2e140,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b681e2e5-0115-46a0-b615-6cb807df849e,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-workflowjj2h2/series-workflowjj2h2-build-action-1606257880/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-workflowjj2h2/series-workflowjj2h2-build-action-4100966609/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:28:52 +0000 UTC FinishedAt: 2026-07-23 04:29:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:28:52 +0000 UTC FinishedAt: 2026-07-23 04:28:57 +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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2472386826/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:28:52 +0000 UTC FinishedAt: 2026-07-23 04:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:28:52 +0000 UTC FinishedAt: 2026-07-23 04:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:28:52 +0000 UTC FinishedAt: 2026-07-23 04:28:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:29:02 +0000 UTC FinishedAt: 2026-07-23 04:31:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowjj2h2[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"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":["brcmf_p2p_abort_action_frame","brcmf_p2p_send_action_frame"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3826a4d293abb82826dc79ad682d7f885f125dc5","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRCMFMAC","BRCMFMAC_USB"],"series_id":"7edae493-e04b-4153-a25a-ae70022cac9a","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-07-23 04:29:02 +0000 UTC FinishedAt: 2026-07-23 04:31:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2338eb53-75c7-4b22-bfcb-8c1ea8c2e140,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b681e2e5-0115-46a0-b615-6cb807df849e,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-workflowjj2h2/series-workflowjj2h2-build-action-1606257880/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-workflowjj2h2/series-workflowjj2h2-build-action-4100966609/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-workflowjj2h2/series-workflowjj2h2-convert-artifact-2472386826/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,}