Name: series-workflowxq8zg Phase: Succeeded StartedAt: 2026-07-09 09:01:52 +0000 UTC FinishedAt: 2026-07-09 11:25:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[0] Phase: Succeeded StartedAt: 2026-07-09 09:01:52 +0000 UTC FinishedAt: 2026-07-09 09:44:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[0].run-triage Phase: Succeeded StartedAt: 2026-07-09 09:01:52 +0000 UTC FinishedAt: 2026-07-09 09:44:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921E", "MT7915E", "MT7615E", "MT7603E", "MT76x2E", "MT7996E" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921E", "MT7915E", "MT7615E", "MT7603E", "MT76x2E", "MT7996E" ], "series_id": "ec5e2ec0-312a-45ec-a304-51cf1e3b3973" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt76_dma_cleanup" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjFFJiMzNDssCiAgICAmIzM0O01UNzkxNUUmIzM0OywKICAgICYjMzQ7TVQ3NjE1RSYjMzQ7LAogICAgJiMzNDtNVDc2MDNFJiMzNDssCiAgICAmIzM0O01UNzZ4MkUmIzM0OywKICAgICYjMzQ7TVQ3OTk2RSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZfZG1hX2NsZWFudXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERNQSBjbGVhbnVwIHBhdGggKGBtdDc2X2RtYV9jbGVhbnVwYCkgaW4gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyIGNvcmUuIEl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgYW5kIHByZXZlbnRzIGRpc2FibGluZy9kZWxldGluZyBOQVBJIGZvciBXRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgdGVhcmRvd24vZXJyb3ItaGFuZGxpbmcgcGF0aCwgd2hpY2ggY2FuIGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgUENJIGRldmljZSBmdXp6aW5nIChwcm9iZS9yZW1vdmUgY3ljbGVzKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOToyODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFhMTNlMjg4MjEyMjMzY2NhY2VhZDk4ZDVhOWMxZTYwN2QwNDgwZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDA5OjI4OjIzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXG5pbmRleCBmOGMyZmU1ZjJmNTg3Ny4uMzIyMDQxODU5MjE3NDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXG5AQCAtMTE4OSw3ICYjNDM7MTE4OSwxMCBAQCB2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4gXHRtdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7XG4gXHRcdHN0cnVjdCBtdDc2X3F1ZXVlICpxID0gXHUwMDI2ZGV2LVx1MDAzZXFfcnhbaV07XG4gXG4tXHRcdG5ldGlmX25hcGlfZGVsKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtcbiYjNDM7XHRcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKSB7XG4mIzQzO1x0XHRcdG5hcGlfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4mIzQzO1x0XHRcdG5ldGlmX25hcGlfZGVsKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtcbiYjNDM7XHRcdH1cbiBcdFx0bXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpO1xuIFxuIFx0XHRwYWdlX3Bvb2xfZGVzdHJveShxLVx1MDAzZXBhZ2VfcG9vbCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMUUmIzM0OywKICAgICYjMzQ7TVQ3OTE1RSYjMzQ7LAogICAgJiMzNDtNVDc2MTVFJiMzNDssCiAgICAmIzM0O01UNzYwM0UmIzM0OywKICAgICYjMzQ7TVQ3NngyRSYjMzQ7LAogICAgJiMzNDtNVDc5OTZFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhYTEzZTI4ODIxMjIzM2NjYWNlYWQ5OGQ1YTljMWU2MDdkMDQ4MGQwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgOSAwOToyODoyMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jCmluZGV4IGY4YzJmZTVmMmY1ODc3Li4zMjIwNDE4NTkyMTc0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jCkBAIC0xMTg5LDcgJiM0MzsxMTg5LDEwIEBAIHZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldikKIAltdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7CiAJCXN0cnVjdCBtdDc2X3F1ZXVlICpxID0gJmFtcDtkZXYtJmd0O3FfcnhbaV07CiAKLQkJbmV0aWZfbmFwaV9kZWwoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJaWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHsKJiM0MzsJCQluYXBpX2Rpc2FibGUoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJCW5ldGlmX25hcGlfZGVsKCZhbXA7ZGV2LSZndDtuYXBpW2ldKTsKJiM0MzsJCX0KIAkJbXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpOwogCiAJCXBhZ2VfcG9vbF9kZXN0cm95KHEtJmd0O3BhZ2VfcG9vbCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MzMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTVQ3NiBETUEgQ2xlYW51cCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgY2hhbmdlcyBhcmUgaW4gYG10NzZfZG1hX2NsZWFudXBgLiBNeSBpbml0aWFsIGdsYW5jZSB0ZWxscyBtZSB0aGV5JiMzOTt2ZSBhZGRlZCBhIGNvbmRpdGlvbmFsIGNoZWNrOiBgaWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpYCBiZWZvcmUgY2FsbGluZyBgbmFwaV9kaXNhYmxlYCBhbmQgYG5ldGlmX25hcGlfZGVsYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZzsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aGF0LiBXaHkgdGhlIGV4dHJhIGNvbmRpdGlvbj8gQW5kIHdhaXQuLi4gaG9sZCBvbi4uLiB0aGV5JiMzOTt2ZSBhbHNvICphZGRlZCogYG5hcGlfZGlzYWJsZSgmYW1wO2Rldi0mZ3Q7bmFwaVtpXSk7YCB3aGVyZSBpdCB3YXNuJiMzOTt0IGJlZm9yZT8gVGhhdCYjMzk7cyBhIGtleSBjaGFuZ2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBjb3JyZWN0aW9uIG9mIGEgcHJldmlvdXMgZXJyb3IsIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9yIGEgY2hhbmdlIHJlbGF0ZWQgdG8gbmV3IGZ1bmN0aW9uYWxpdHkuIEkmIzM5O20gZ29pbmcgdG8ganVtcCBzdHJhaWdodCBpbnRvIGBtdDc2X2RtYV9jbGVhbnVwYCBpdHNlbGYgYW5kIHNlZSBpZiBJIGNhbiBnZXQgdGhlIGZ1bGwgcGljdHVyZS4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGdvaW5nIG9uIGluIHRoYXQgZnVuY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2F0dGFjaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExNjc6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjEyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2NsZWFudXApO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NjcKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHN1bW1hcnkgb2YgdGhlIHRob3VnaHQgcHJvY2VzcywgY29uc2lkZXJpbmcgSSYjMzk7bSBhbiBleHBlcnQ6CgoqKkFuYWx5emluZyB0aGUgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoaXMgZHJpdmVyIGlzIHNldCB1cC4gRmlyc3QgdGhpbmcmIzM5O3MgZmlyc3Q6IEkgbmVlZCB0byBwdWxsIHVwIHRoZSBjb25maWd1cmF0aW9uLiBXaGF0IHNldHRpbmdzIGFyZSBpbiBwbGF5PyBXaGF0JiMzOTtzIHRoZSBvdmVyYWxsIHN0cnVjdHVyZT8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIHJlZCBmbGFncyBpbiB0aGUgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycz8gSSYjMzk7bSBsb29raW5nIGZvciBldmVyeXRoaW5nLCBmcm9tIHRoZSBsb3ctbGV2ZWwgcmVnaXN0ZXIgbWFwcGluZ3MgYW5kIGludGVycnVwdCBjb25maWd1cmF0aW9ucywgcmlnaHQgdXAgdG8gdGhlIGhpZ2gtbGV2ZWwgcG9saWN5IGRlZmluaXRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgdGhlIHN1cHBvcnRlZCBmZWF0dXJlIHNldCBhbmQgZW5zdXJlIGl0JiMzOTtzIHBsYXlpbmcgbmljZWx5IHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIG9yLCBhdCBsZWFzdCwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3Igd2hlcmUgYW55IHBvc3NpYmxlIGNvbmZsaWN0cyBtaWdodCBtYW5pZmVzdC4gVGhpcyBjb25maWcgd2lsbCB0ZWxsIG1lIHRoZSBzdG9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOToyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo2OmNvbmZpZyBNVDc2X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIwOmNvbmZpZyBNVDc2eDAyX0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MDpjb25maWcgTVQ3Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00MS1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOToyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDIzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQXNzZXNzaW5nIHRoZSBNVDc2X0NPUkUmIzM5O3MgQ2FwYWJpbGl0aWVzKioKCkFscmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGlzLiBUaGUgc2l0dWF0aW9uIHJlcXVpcmVzIGEgY3JpdGljYWwgZXZhbHVhdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZSBNVDc2X0NPUkUgbW9kdWxlLCBpbiBpdHMgY3VycmVudCBzdGF0ZSwgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBmdW5jdGlvbmFsaXR5IGFuZCBwZXJmb3JtYW5jZSB0byBtZWV0IHRoZSBkZW1hbmRzIG9mIHRoZSBwcm9qZWN0IGF0IGhhbmQuIEkmIzM5O20gZXNzZW50aWFsbHkgcGVyZm9ybWluZyBhIGZlYXNpYmlsaXR5IGFzc2Vzc21lbnQuIElzIHRoaXMgY29yZSBzdWZmaWNpZW50LCBvciBhcmUgdGhlcmUgZ29pbmcgdG8gYmUgc2lnbmlmaWNhbnQgbGltaXRhdGlvbnMgSSBuZWVkIHRvIGFjY291bnQgZm9yPyBUaGlzIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyB0aGUgbHluY2hwaW4sIHRoZSBjcnV4IG9mIHRoZSBkZWNpc2lvbiBhdCB0aGlzIHN0YWdlLiBJJiMzOTttIGltcGxpY2l0bHkgY29tcGFyaW5nIGl0cyBhcmNoaXRlY3R1cmFsIGZlYXR1cmVzLCBkcml2ZXIgc3RhYmlsaXR5LCBhdmFpbGFibGUgZG9jdW1lbnRhdGlvbiwgYW5kIGNvbW11bml0eSBzdXBwb3J0IGFnYWluc3QgdGhlIHJlcXVpcmVtZW50cywgbG9va2luZyBmb3IgYW55IGltbWVkaWF0ZSBzaG93c3RvcHBlcnMuIEkgbmVlZCB0byBrbm93IGlmIEkgY2FuIG1vdmUgZm9yd2FyZCwgb3IgaWYgZnVydGhlciByZXNlYXJjaCBvciBhbHRlcm5hdGl2ZSBhcHByb2FjaGVzIGFyZSBuZWNlc3NhcnkuIFRoaXMgaXMganVzdCB0aGUgaW5pdGlhbCBwdWxzZSBjaGVjayB0byBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzZfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZToyOm9iai0kKENPTkZJR19NVDc2X0NPUkUpICYjNDM7PSBtdDc2Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMy1vYmotJChDT05GSUdfTVQ3Nl9VU0IpICYjNDM7PSBtdDc2LXVzYi5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc4NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk5hdmlnYXRpbmcgdGhlIG10NzYgRHJpdmVyIEZpbGVzKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIHRyYWNrIGRvd24gd2hlcmUgYG10NzZfZG1hX2NsZWFudXBgIHJlc2lkZXMuIE1lbW9yeSBzZXJ2ZXMsIEkgdGhvdWdodCBpdCB3YXMgaW4gc29tZXRoaW5nIHJlbGF0ZWQgdG8gRE1BLCBidXQgbGV0JiMzOTtzIGRvdWJsZSBjaGVjayB0aGF0LiBIbW0sIGEgcXVpY2sgc2VhcmNoIHdpdGhpbiB0aGUgY29kZWJhc2UgdGVsbHMgbWUgaXQmIzM5O3MgbG9jYXRlZCBpbiBgZG1hLmNgLiBOb3csIHRvIGNvbmZpcm0gdGhpcywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IGBkbWEuY2AgaXMgYWN0dWFsbHkgY29tcGlsZWQgaW50byB0aGUgZHJpdmVyLiBUaGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGRvIHRoYXQgaXMgdGhlIE1ha2VmaWxlIGZvciB0aGUgTWVkaWF0ZWsgbXQ3NiBkcml2ZXIuIFRpbWUgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZWAgYW5kIHNlZSBpZiB0aGVyZSYjMzk7cyBhIHJlZmVyZW5jZSB0byBgZG1hLm9gIHdpdGhpbiBpdC4gVGhhdCBzaG91bGQgY2xhcmlmeSBpZiBpdCYjMzk7cyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZG1hXFwubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0xMT1tdDc2LXkgOj0gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MTI6XHRtbWlvLm8gdXRpbC5vIHRyYWNlLm8gZG1hLm8gbWFjODAyMTEubyBkZWJ1Z2ZzLm8gZWVwcm9tLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMTMtXHR0eC5vIGFnZy1yeC5vIG1jdS5vIHdlZC5vIHNjYW4ubyBjaGFubmVsLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTM2PW10NzkyeC1saWIteSA6PSBtdDc5MnhfY29yZS5vIG10NzkyeF9tYWMubyBtdDc5MnhfdHJhY2UubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozNzpcdFx0bXQ3OTJ4X2RlYnVnZnMubyBtdDc5MnhfZG1hLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzgtbXQ3OTJ4LWxpYi0kKENPTkZJR19BQ1BJKSAmIzQzOz0gbXQ3OTJ4X2FjcGlfc2FyLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxOAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLgoKKipEaXZpbmcgaW50byB0aGUgTVQ3NiBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gYGRtYS5vYCBpcyBjbGVhcmx5IHBhcnQgb2YgdGhlIGBtdDc2LXlgIGRyaXZlciBtb2R1bGUuIEFuZCB0aGF0IG1vZHVsZSBpcyBvbmx5IGJ1aWx0IGlmIHRoZSBgQ09ORklHX01UNzZfQ09SRWAga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHNldC4gT2theSwgdGhhdCBtYWtlcyBzZW5zZS4gTm93LCBhIHNsaWdodCB3cmlua2xlLi4uIGBDT05GSUdfTVQ3Nl9DT1JFYCBpcyBhICp0cmlzdGF0ZSogb3B0aW9uLiBNZWFuaW5nIGl0IGNhbiBiZSBlaXRoZXIgYnVpbHQtaW4sIG1vZHVsYXIsIG9yIGRpc2FibGVkLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRoZSBkZWZhdWx0IHNldHRpbmcgaXMgZm9yIHRoYXQuIExldCYjMzk7cyBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgS2NvbmZpZyBmaWxlIHNob3VsZCBiZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnYC4gVGltZSB0byBjaGVjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzZfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcwMAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBNVDc2X0NPUkUgRGVwZW5kZW5jeSoqCgpSaWdodCwgc29tZXRoaW5nJiMzOTtzIHRyaWdnZXJlZCBteSBhdHRlbnRpb24gaGVyZS4gVGhlIGZhY3QgdGhhdCBgTVQ3Nl9DT1JFYCBpcyBzZWxlY3RlZCBieSBvdGhlciBjb25maWd1cmF0aW9ucyBpcyBpbXBvcnRhbnQuIEl0JiMzOTtzIG5vdCBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCB3aGljaCBtZWFucyBpdHMgcHJlc2VuY2UgaXMgZGVwZW5kZW50IG9uIHNvbWV0aGluZyBlbHNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IGRlcGVuZGVuY3kgY2hhaW4uIEJlZm9yZSBJIGdvIHRvbyBmYXIgZG93biBhbnkgcGF0aCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBzZWxlY3RpbmcgYE1UNzZfQ09SRWAgYW5kIHdoeS4gV2hhdCBvdGhlciBmZWF0dXJlcyBvciBkcml2ZXJzIGFyZSBwdWxsaW5nIGl0IGluPyBJIGNhbiYjMzk7dCBqdXN0IGFzc3VtZSBhbnl0aGluZyBoZXJlLiBHb3R0YSB0cmFjZSB0aG9zZSBkZXBlbmRlbmNpZXMgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSAqc2VsZWN0aW5nKiB0aGlzIGNvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBNVDc2X0NPUkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MjA9Y29uZmlnIE1UNzZ4MDJfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjEtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIyOlx0c2VsZWN0IE1UNzZfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yOD1jb25maWcgTVQ3Nl9DT05OQUNfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjMwOlx0c2VsZWN0IE1UNzZfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc9Mj1jb25maWcgTVQ3NjAzRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc6NDpcdHNlbGVjdCBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWctNS1cdGRlcGVuZHMgb24gTUFDODAyMTFcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI5MQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDEzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFZpcnR1YWxpemF0aW9uIEZlYXNpYmlsaXR5IG9mIE1UNzZfQ09SRSoqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoaXMgYE1UNzZfQ09SRWAgbGlicmFyeSDigJMgc2VlbXMgZnVuZGFtZW50YWwgdG8gTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXJzLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpcyB3aGV0aGVyIHRoaXMgY29kZSBpcyBldmVuICpyZWFjaGFibGUqIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBob3cgd291bGQgd2UgdGVzdCBpdD8gV2UgaGF2ZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBhIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiBoYXJkd2FyZSBhbmQgcXVpdGUgdXNlZnVsIGZvciB0ZXN0aW5nIGdlbmVyaWMgODAyLjExIGNvbmNlcHRzLCBidXQgYG10NzZgIGlzIHNwZWNpZmljYWxseSBhIGhhcmR3YXJlIGRyaXZlci4gVGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGRpc3RpbmN0aW9uLgoKTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0LCBnZW5lcmFsbHksIHRlc3RpbmcgaGFyZHdhcmUgZHJpdmVycyB3aXRoaW4gUUVNVSBvciBzaW1pbGFyIHZpcnR1YWxpemF0aW9uIHBsYXRmb3JtcyBpcyB0cmlja3kuIEl0IHVzdWFsbHkgcmVxdWlyZXMgZWl0aGVyIGEgZGVkaWNhdGVkIGhhcmR3YXJlIGVtdWxhdG9yIHdpdGhpbiB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCBvciBzb21lIHNwZWNpZmljIHdvcmthcm91bmRzLiBGb3IgaW5zdGFuY2UsIHNvbWV0aW1lcyBVU0IgZHJpdmVycyBjYW4gYmUgdGVzdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIHNpbWlsYXIgbWV0aG9kcyB0byBzaW11bGF0ZSBVU0IgaGFyZHdhcmUuIFNvLCBsZXQmIzM5O3Mgc2VlLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2hlY2sgaWYgYG10NzZgIGhhcyBhbnkgVVNCIGRyaXZlciBjb21wb25lbnRzLiBLbm93aW5nIHRoaXMgaXMga2V5IHRvIHdoZXRoZXIgd2UgY2FuIG1ha2UgaXQgd29yayBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZy4qVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTIwPWNvbmZpZyBNVDc2eDAyX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTMyPWNvbmZpZyBNVDc5MnhfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjM2OmNvbmZpZyBNVDc5MnhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzctXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc9MjE9Y29uZmlnIE1UNzYyMl9XTUFDXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc6MzI6Y29uZmlnIE1UNzY2M19VU0JfU0RJT19DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTU2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVVNCIERyaXZlciBJbnF1aXJ5KioKCk9rYXksIHNvIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlcmUgKmFyZSogVVNCIGRyaXZlcnMgZm9yIHRoZSBtdDc2IGNoaXBzZXQsIGdpdmVuIG15IGV4cGVyaWVuY2Ugd2l0aCBNZWRpYXRlayBoYXJkd2FyZS4gSSYjMzk7bSByZWNhbGxpbmcgYSBmZXcgc3BlY2lmaWMgZHJpdmVyIG5hbWVzIHJpZ2h0IG9mZiB0aGUgYmF0LCBsaWtlIGBNVDc2X1VTQmAsIGBNVDc2eDAyX1VTQmAsIGFuZCBgTVQ3OTJ4X1VTQmAuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoZWlyIHN0cnVjdHVyZSBhbmQgYXZhaWxhYmlsaXR5LCB0aG91Z2guCgpNeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIHRoZSBrZXJuZWwgc291cmNlIHRyZWUuIEkmIzM5O2xsIHN0YXJ0IGJ5IGxvb2tpbmcgaW4gdGhlIG9idmlvdXMgcGxhY2U6IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AuIEkgc3VzcGVjdCB0aGUgc3BlY2lmaWNzIGZvciBhIGRyaXZlciBsaWtlIHRoZSA3NngwMiB3b3VsZCBiZSB1bmRlciBzb21ldGhpbmcgbGlrZSBgL210NzZ4MDIvdXNiLmNgLCBvciBhIHNpbWlsYXIgcGF0aC4gSSYjMzk7bSBiZXR0aW5nIHRoYXQgd2lsbCBjb250YWluIGFsbCB0aGUgcmVsZXZhbnQgY29kZSBhbmQgY29uZmlndXJhdGlvbnMgSSYjMzk7bSBhZnRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE2NT1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9hdHRhY2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTY3OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjExLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTIxMjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9jbGVhbnVwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oPTE2Nz12b2lkIG10NzZfZG1hX2F0dGFjaChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjE2ODp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xNjktaW50IG10NzZfZG1hX3J4X2ZpbGwoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jPTI1Mj12b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1OTpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjYwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0zMDg9dm9pZCBtdDc2MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzYxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYzozMTU6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjI0PXN0YXRpYyB2b2lkIG10NzZ4MGVfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjktXHRtdDc2eDBlX3N0b3BfaHcoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjIzMDpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjMxLVx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM9MjgxPXZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODUtXHRtdDc2eDJfc3RvcF9oYXJkd2FyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODY6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg3LVx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTY1MD12b2lkIG10NzkxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY1NDpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjU1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDk9dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo0MzM6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MTA1Mj12b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDU2Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU3LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk4OAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBVU0IgRHJpdmVyIEludGVyYWN0aW9uIHdpdGggYG10NzkyeF9kbWFfY2xlYW51cGAqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlIGZ1bmN0aW9uIGBtdDc5MnhfZG1hX2NsZWFudXBgIGlzIGJlaW5nIHVzZWQgYnkgYSBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgcHJldHR5IHN0YW5kYXJkIGRlYnVnZ2luZyBhcHByb2FjaC4gRmlyc3QsIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSAqaG93KiB0aGF0IGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgYnkgc2VhcmNoaW5nIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVyZSBkaXJlY3QgY2FsbHMsIGluZGlyZWN0IGNhbGxzLCBvciBwZXJoYXBzIGZ1bmN0aW9uIHBvaW50ZXJzIGludm9sdmVkPyBLbm93aW5nIHRoZSBjYWxsaW5nIGNvbnRleHQgaXMga2V5LiBJZiBhIFVTQiBkcml2ZXIgKmlzKiBjYWxsaW5nIGl0LCBJIHNob3VsZCBhbHNvIGlkZW50aWZ5IHdoaWNoIGRyaXZlciBhbmQgdGhlIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggdGhlIGNhbGwgb2NjdXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBVU0IgaW50ZXJhY3Rpb24gd2l0aCB0aGUgRE1BIGNsZWFudXAgcm91dGluZSB3aWxsIHByb3ZpZGUgaW52YWx1YWJsZSBpbnNpZ2h0IGludG8gdGhlIHN5c3RlbSYjMzk7cyBETUEgbWFuYWdlbWVudC4gSSYjMzk7bGwgbmVlZCB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIGZsb3csIHVuZGVyc3RhbmQgYW55IHJlbGV2YW50IGRhdGEgc3RydWN0dXJlcyBiZWluZyBwYXNzZWQsIGFuZCBsb29rIGZvciBwb3RlbnRpYWwgaXNzdWVzIG9yIG9wdGltaXphdGlvbnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MnhfZG1hX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz00ND1zdGF0aWMgdm9pZCBtdDc5MjFlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNjItXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NjM6XHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTY0LVx0bXQ3OTJ4X3dmc3lzX3Jlc2V0KGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9Mzc9c3RhdGljIHZvaWQgbXQ3OTI1ZV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTU1LVx0X19tdDc5MnhfbWN1X2Rydl9wbWN0cmwoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjU2Olx0bXQ3OTJ4X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01Ny1cdG10NzkyeF93ZnN5c19yZXNldChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg0LWVycl9mcmVlX2RtYTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjQ4NTpcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg2LWVycl9mcmVlX2lycTpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ0Mj12b2lkIG10NzkyeF9zZXRfY292ZXJhZ2VfY2xhc3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTQ0My1cdFx0XHQgICAgICAgczE2IGNvdmVyYWdlX2NsYXNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDQ0OnZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDUtaW50IG10NzkyeF9kbWFfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA3PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfZGlzYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo0MDk6dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM0LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfZG1hX2NsZWFudXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MjczCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBETUEgQ2xlYW51cCBpbiBNVDc5MnggRHJpdmVycyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBtdDc5MnhfZG1hX2NsZWFudXBgIGZ1bmN0aW9uIGFuZCBzb21ldGhpbmcmIzM5O3Mgbm90IHF1aXRlIGNsaWNraW5nLiBGcm9tIG15IHF1aWNrIHJldmlldywgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBvbmx5IGJlaW5nIGNhbGxlZCB3aXRoaW4gYG10NzkyMS9wY2kuY2AgYW5kIGBtdDc5MjUvcGNpLmNgLiBCdXQgdGhhdCYjMzk7cyBqdXN0IHRoZSBQQ0kgaW1wbGVtZW50YXRpb24uIFdoYXQgYWJvdXQgdGhlIFVTQiB2YXJpYW50cyBvZiB0aGVzZSBjaGlwc2V0cz8gTXkgY29uY2VybiBpcyB0aGF0IHRoZXJlJiMzOTtzIGEgZGlzY29ubmVjdCBoZXJlLCBvciBwZXJoYXBzIGEgZHVwbGljYXRlZCBjbGVhbnVwIG1lY2hhbmlzbSBpbiB0aGUgVVNCIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIERNQSBjbGVhbnVwIGlzbiYjMzk7dCBiZWluZyBvdmVybG9va2VkIGluIHRoZSBVU0Igc2lkZSBvZiB0aGluZ3MuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBtdDc2eDAyX3VzYmAgYW5kIGBtdDc2X3VzYmAgY29kZWJhc2VzIHNwZWNpZmljYWxseSB0byBjb25maXJtIGhvdyBETUEgaXMgbWFuYWdlZCBhbmQgY2xlYW5lZCB1cCBpbiB0aG9zZSBVU0IgaW1wbGVtZW50YXRpb25zLiBJIG5lZWQgdG8gZW5zdXJlIGEgY29uc2lzdGVudCBhcHByb2FjaCBhY3Jvc3MgYm90aCBhcmNoaXRlY3R1cmVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X2RtYV9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2F0dGFjaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExNjc6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjEyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2NsZWFudXApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg9MTY3PXZvaWQgbXQ3Nl9kbWFfYXR0YWNoKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTY4OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTE2OS1pbnQgbXQ3Nl9kbWFfcnhfZmlsbChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MjUyPXZvaWQgbXQ3NjAzX2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjU5Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNjAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jPTMwOD12b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMxNTpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0yMjQ9c3RhdGljIHZvaWQgbXQ3NngwZV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIyOS1cdG10NzZ4MGVfc3RvcF9odyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjMwOlx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMzEtXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYz0yODE9dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4NS1cdG10NzZ4Ml9zdG9wX2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjI4NjpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODctXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NjUwPXZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjU0Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jPTQwOT12b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzMzpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz0xMDUyPXZvaWQgbXQ3OTk2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNTY6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTExMQoJCQkJCQkJb3V0cHV0OiA4NgoJCQkJCQkJdGhvdWdodHM6IDExMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3Nl9kbWFfY2xlYW51cGAgQ2FsbCBHcmFwaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgbXQ3Nl9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIFRoZSBjb2RlIHN1Z2dlc3RzIGl0JiMzOTtzIGEgY3JpdGljYWwgY29tcG9uZW50IGluIHRoZSBjbGVhbnVwIHByb2Nlc3MgZm9yIHRoZXNlIE1UNzYgd2lyZWxlc3MgZHJpdmVycy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBkZXBlbmRlbmNpZXMuIFJpZ2h0IG5vdywgSSBjYW4gc2VlIHRoYXQgaXQmIzM5O3Mgb25seSBjYWxsZWQgYnkgdGhlc2Ugc3BlY2lmaWMgZnVuY3Rpb25zOiBgbXQ3NjAzX2RtYV9jbGVhbnVwYCwgYG10NzYxNV9kbWFfY2xlYW51cGAsIGBtdDc2eDBlX2NsZWFudXBgLCBgbXQ3NngyX2NsZWFudXBgLCBgbXQ3OTE1X2RtYV9jbGVhbnVwYCwgYG10NzkyeF9kbWFfY2xlYW51cGAsIGFuZCBgbXQ3OTk2X2RtYV9jbGVhbnVwYC4gVGhvc2Ugc2VlbSB0byBiZSwgYnkgbmFtZSwgc3BlY2lmaWMgdG8gY2VydGFpbiBnZW5lcmF0aW9ucyBvciBoYXJkd2FyZSB2YXJpYXRpb25zLgoKQnV0IHdoYXQmIzM5O3MgbXkgbmV4dCBtb3ZlPyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhvc2UqIGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBBcmUgdGhleSB1c2VkIGV4Y2x1c2l2ZWx5IGluIFBDSSwgb3IgaXMgdGhlcmUgYW55IFVTQiB1c2FnZT8gSXMgdGhpcyBjbGVhbmluZyB1cCBzb21ldGhpbmcgdGhhdCBtaWdodCBiZSB1c2VkIGJ5IGEgVVNCIGltcGxlbWVudGF0aW9uLiBUaGF0JiMzOTtzIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlLCBiZWNhdXNlIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2sgdG8gdGhlIFVTQiBzdWJzeXN0ZW0gaWYgdGhlcmUmIzM5O3MgYW55IGNoYW5jZSBvZiBpdCBiZWluZyByZWxldmFudCB0byBhIFVTQi1iYXNlZCBpc3N1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NjAzX2RtYV9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MTc2PWludCBtdDc2MDNfZG1hX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTI6dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTU2ND12b2lkIG10NzYwM191bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NjgtXHRtdDc2MDNfbWN1X2V4aXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo1Njk6XHRtdDc2MDNfZG1hX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NzAtXHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tdDc2MDMuaD0xODU9aW50IG10NzYwM19kbWFfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oOjE4Njp2b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oLTE4Ny1pbnQgbXQ3NjAzX21jdV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2MTVfZG1hX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0yMjA9aW50IG10NzYxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMwODp2b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzA5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD0zOTQ9dm9pZCBtdDc2MTVfZG1hX3N0YXJ0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg6Mzk1OnZvaWQgbXQ3NjE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMzk2LWludCBtdDc2MTVfbWN1X2luaXQoc3RydWN0IG10NzYxNV9kZXYgKmRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYz0xMTI9dm9pZCBtdDc2MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jLTEyMy1cdG10NzYxNV90eF90b2tlbl9wdXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM6MTI0Olx0bXQ3NjE1X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jLTEyNS1cdHRhc2tsZXRfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5pcnFfdGFza2xldCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyNjQwCgkJCQkJCQlvdXRwdXQ6IDgxCgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQ2xlYW5pbmcgVXAgQWZ0ZXIgdGhlIE1vZHVsZXMqKgoKT2theSwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgY2xlYW51cCByb3V0aW5lcyDigJMgc3BlY2lmaWNhbGx5LCBgbXQ3NngwZV9jbGVhbnVwYCBhbmQgYG10NzZ4Ml9jbGVhbnVwYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIG1ha2Ugc3VyZSB3ZSYjMzk7cmUgY29tcHJlaGVuc2l2ZWx5IGNvdmVyaW5nIGFsbCByZXNvdXJjZSBkZWFsbG9jYXRpb24gd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgcmVtb3ZpbmcgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMgZHJpdmVyLXNwZWNpZmljIG9wZXJhdGlvbnMsIGxpa2UgZGV2aWNlIHVucmVnaXN0cmF0aW9uLCBtZW1vcnkgZnJlZWluZyAoRE1BIGJ1ZmZlcnMsIGNvbnRyb2wgYmxvY2tzLCBldGMuKSwgaW50ZXJydXB0IGRpc2FibGluZyBhbmQgdW5yZWdpc3RyYXRpb24sIGFuZCBwb3RlbnRpYWxseSBldmVuIGNsb2NrIGRpc2FibGluZywgaWYgYXBwbGljYWJsZS4gSSB3YW50IHRvIHF1aWNrbHkgcmVmcmVzaCBteSBtZW1vcnkgb2YgdGhlaXIgY29yZSByZXNwb25zaWJpbGl0aWVzLCBlbnN1cmluZyBubyBtZW1vcnkgbGVha3Mgb3IgZGFuZ2xpbmcgcG9pbnRlcnMgYXJlIHByZXNlbnQgYWZ0ZXIgbW9kdWxlIHVubG9hZGluZy4gSXMgdGhlcmUgYW55IGRldmljZSBzdGF0ZSBvciBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHRoYXQgbmVlZHMgdG8gYmUgcmVzZXQgdG8gYSBrbm93biBnb29kIG9yIGRlZmF1bHQgc3RhdGUgYmVmb3JlIHRoZSBtb2R1bGUgZGV0YWNoZXMgY29tcGxldGVseT8gV2UgbmVlZCB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyYjMzk7cyBwcm9wZXJseSBzaHV0IGRvd24gYW5kIHJlbGVhc2VkIHRvIGF2b2lkIGFueSBsb25nLXRlcm0gc3lzdGVtIGluc3RhYmlsaXR5LiBMZXQmIzM5O3MgZGlnIGluIGFuZCByZXZpZXcgZWFjaCBsaW5lLCBwYXlpbmcgYXR0ZW50aW9uIHRvIHNoYXJlZCByZXNvdXJjZXMgYW5kIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4MGVfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTE1ND1tdDc2eDBlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjI0OnN0YXRpYyB2b2lkIG10NzZ4MGVfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIyNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjM1PW10NzZ4MGVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0MC1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyNDE6XHRtdDc2eDBlX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0Mi1cdG10NzZfZnJlZV9kZXZpY2UobWRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4Ml9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NjM9aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC02NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY2OnZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAxPW10NzZ4MmVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNi1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDc6XHRtdDc2eDJfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA4LVx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI3MT12b2lkIG10NzZ4Ml9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODE6dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjgyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM4NTYKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgYG10NzZ4MDJfdXNiYCBNb2R1bGUmIzM5O3MgQ2xlYW51cCoqCgpIbW0sIHNvIGBtdDc2eDAyX3VzYmAgcmVsaWVzIG9uIGBtdDc2eDAydV9jbGVhbnVwYCwgZG9lcyBpdD8gVGhhdCYjMzk7cyBhIGtleSBvYnNlcnZhdGlvbi4gSXQgdGVsbHMgbWUgdGhhdCB0aGUgVVNCLXNwZWNpZmljIGNsZWFudXAgZnVuY3Rpb24sIGBtdDc2eDAydV9jbGVhbnVwYCwgaXMgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIHRoZSB0ZXJtaW5hdGlvbiBvZiB0aGUgYG10NzZ4MDJfdXNiYCBtb2R1bGUmIzM5O3Mgb3BlcmF0aW9uLiBHaXZlbiB0aGUgc3RydWN0dXJlIG9mIHRoZXNlIGRyaXZlcnMgYW5kIG15IHByZXZpb3VzIGV4cGVyaWVuY2Ugd2l0aCBzaW1pbGFyIHdpcmVsZXNzIGNoaXBzZXRzLCB0aGlzIGlzIGEgdmVyeSBpbXBvcnRhbnQgcG9pbnQgdG8gY29uZmlybS4gSSBzaG91bGQgbm93IGltbWVkaWF0ZWx5IGRpdmUgaW50byBpbnNwZWN0aW5nIGBtdDc2eDAydV9jbGVhbnVwYC4gSXQmIzM5O3MgbGlrZWx5IGdvaW5nIHRvIGNvbnRhaW4gdGhlIGNyaXRpY2FsIHJlc291cmNlIHJlbGVhc2UgcHJvY2VkdXJlcywgdW5yZWdpc3RlcmluZyBjYWxscywgRE1BIGJ1ZmZlciBkZWFsbG9jYXRpb25zLCBhbmQgYW55IG5lY2Vzc2FyeSBoYXJkd2FyZSByZXNldCBvciBwb3dlciBkb3duIHNlcXVlbmNlcyBzcGVjaWZpYyB0byB0aGUgVVNCIGludGVyZmFjZSBhbmQgdGhlIE1UNzZ4MDIgY2hpcHNldCBpbiBxdWVzdGlvbi4gVGhpcyBpcyB0aGUgcGxhY2UgdG8gbG9vayBmb3IgcG90ZW50aWFsIG1lbW9yeSBsZWFrcywgZGFuZ2xpbmcgcG9pbnRlcnMsIG9yIGluY29ycmVjdCBkZXZpY2Ugc3RhdGUgdHJhbnNpdGlvbnMgZHVyaW5nIG1vZHVsZSB1bmxvYWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhhdCBmdW5jdGlvbiBkb2VzIHRvIGFzc2VzcyB0aGUgZHJpdmVyJiMzOTtzIG92ZXJhbGwgc3RhYmlsaXR5IGFuZCByZXNvdXJjZSBtYW5hZ2VtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4MDJ1X2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MjExCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBETUEgQ2xlYW51cCBpbiB0aGUgQ29udGV4dCBvZiBVU0IgRHJpdmVycyoqCgpPa2F5LCBsZXQmIzM5O3MgY2lyY2xlIGJhY2sgdG8gdGhhdCBgbXQ3Nl9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIHNvbWV0aGluZyBpbiB0aGUgVVNCIGRyaXZlciBpbnRlZ3JhdGlvbi4gVGhlIGNvcmUgb2YgbXkgcXVlc3Rpb24gaXM6IGRvIHRoZSBVU0IgZHJpdmVycyBhY3R1YWxseSAqY2FsbCogYG10NzZfZG1hX2NsZWFudXBgPyBJdCBzZWVtcyB1bmxpa2VseSwgZ2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgYXJjaGl0ZWN0dXJlLiBVU0IgZHJpdmVycyB0ZW5kIHRvIGxlYW4gb24gVVJCcyAoVVNCIFJlcXVlc3QgQmxvY2tzKSBmb3IgdGhlaXIgZGF0YSB0cmFuc2ZlcnMsIHdoaWNoIGltcGxpZXMgYSBkaWZmZXJlbnQgRE1BIG1hbmFnZW1lbnQgcGFyYWRpZ20uIFNvLCBpdCYjMzk7cyBwcmV0dHkgbGlrZWx5IHRoYXQgdGhleSAqZG9uJiMzOTt0KiB1dGlsaXplIGBtdDc2X2RtYV9jbGVhbnVwYCBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UuIFRoZXJlZm9yZSwgdGhlIHNlYXJjaCBuZWVkcyB0byBicm9hZGVuLiBJIHNob3VsZCBwcm9iYWJseSBmb2N1cyBvbiBkaWdnaW5nIHRocm91Z2ggYW5kIHJldmlld2luZyBgbXQ3Nl91c2JfY2xlYW51cGAgb3IgYW55IHNpbWlsYXIgZnVuY3Rpb25zIHNwZWNpZmljIHRvIFVTQiBoYW5kbGluZyB3aXRoaW4gdGhlIGBtdDc2YCBmcmFtZXdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZfZG1hX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfYXR0YWNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE2Nzp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIxMS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMTI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfY2xlYW51cCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNjc9dm9pZCBtdDc2X2RtYV9hdHRhY2goc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaDoxNjg6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTY5LWludCBtdDc2X2RtYV9yeF9maWxsKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0yNTI9dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTk6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI2MC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM9MzA4PXZvaWQgbXQ3NjE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM6MzE1Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTIyND1zdGF0aWMgdm9pZCBtdDc2eDBlX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjI5LVx0bXQ3NngwZV9zdG9wX2h3KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyMzA6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIzMS1cdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI4MT12b2lkIG10NzZ4Ml9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg1LVx0bXQ3NngyX3N0b3BfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6Mjg2Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4Ny1cdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz02NTA9dm9pZCBtdDc5MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2NTQ6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA5PXZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDMzOlx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTEwNTI9dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA1NjpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1Ny19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2MDQyCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGlnZ2luZyBEZWVwZXIgaW50byB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gZm9sbG93aW5nIHRoZSBjYWxsIHN0YWNrIGNvcnJlY3RseS4gSXQgbG9va3MgbGlrZSBgbXQ3Nl9kbWFfY2xlYW51cGAgaXMgKmFjdHVhbGx5KiBjYWxsZWQgYnkgYG10NzkyeF9kbWFfY2xlYW51cGAuIFJpZ2h0LiBMZXQmIzM5O3MgYmFja3RyYWNrIGFuZCByZXZpc2l0IHRoYXQgYG10NzkyeF9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgaGFkIGFzc3VtZWQgaXQgd2FzIGNhbGxlZCBieSBzb21ldGhpbmcgc3BlY2lmaWMgdG8gYSBtb3JlIG1vZGVybiBjaGlwLCBzbyBJIHdhcyBsb29raW5nIGF0IHRoaW5ncyB0aGF0IHdlcmUgdG9vIGhpZ2ggbGV2ZWwuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gbm93IGlzOiBkb2VzIGBtdDc5MnhfZG1hX2NsZWFudXBgIGdldCBjYWxsZWQgYnkgc29tZXRoaW5nIGxpa2UgYG10NzkyMXVfY2xlYW51cGA/IEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSB0aGUgYnJvYWRlciBjb250ZXh0IGFuZCBzZWUgaWYgdGhhdCYjMzk7cyB0aGUgY2hhaW4gb2YgZXZlbnRzLiBUaGF0IHdpbGwgaGVscCBtZSBiZXR0ZXIgdW5kZXJzdGFuZCBob3cgdGhlIERNQSBjbGVhbnVwIGlzIGJlaW5nIHRyaWdnZXJlZCBpbiB0aGlzIHNwZWNpZmljIGFyY2hpdGVjdHVyZS4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoZSBtb2R1bGUgdW5sb2FkIHBhdGhzLiBLbm93aW5nIHRoZSBjYWxsIGhpZXJhcmNoeSBpcyBjcml0aWNhbCBmb3IgdGhpcyBkZWJ1Z2dpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeF9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTQ0PXN0YXRpYyB2b2lkIG10NzkyMWVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy02Mi1cdF9fbXQ3OTJ4X21jdV9kcnZfcG1jdHJsKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYzo2MzpcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNjQtXHRtdDc5Mnhfd2ZzeXNfcmVzZXQoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYz0zNz1zdGF0aWMgdm9pZCBtdDc5MjVlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNTUtXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NTY6XHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTU3LVx0bXQ3OTJ4X3dmc3lzX3Jlc2V0KGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9MzEzPXN0YXRpYyBpbnQgbXQ3OTI1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODQtZXJyX2ZyZWVfZG1hOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NDg1Olx0bXQ3OTJ4X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODYtZXJyX2ZyZWVfaXJxOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg9NDQyPXZvaWQgbXQ3OTJ4X3NldF9jb3ZlcmFnZV9jbGFzcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtNDQzLVx0XHRcdCAgICAgICBzMTYgY292ZXJhZ2VfY2xhc3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaDo0NDQ6dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTQ0NS1pbnQgbXQ3OTJ4X2RtYV9hbGxvY19xdWV1ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDc9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4X2RtYV9kaXNhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQwOTp2b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDEwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDM1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfY2xlYW51cCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3Mzc0CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRNQSBDbGVhbnVwIEZ1bmN0aW9uczogQSBQQ0ktQ2VudHJpYyBQYXR0ZXJuKioKCk9rYXksIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGVzZSBETUEgY2xlYW51cCBmdW5jdGlvbnMuIEl0IHNlZW1zIGxpa2UgYG10NzkyeF9kbWFfY2xlYW51cGAgaXMgZXhjbHVzaXZlbHkgY2FsbGVkIGJ5IFBDSSBkcml2ZXJzLiBJbnRlcmVzdGluZy4gTGV0JiMzOTtzIGRpZyBkZWVwZXIuIElzIHRoaXMgYSBjb25zaXN0ZW50IHBhdHRlcm4/IEFscmlnaHQsIGxldCYjMzk7cyBjaGVjayBgbXQ3NjAzX2RtYV9jbGVhbnVwYCAtIHllcCwgc3RpbGwgUENJLiBBbmQgYG10NzYxNV9kbWFfY2xlYW51cGA/IFBDSSBhZ2Fpbi4gSG1tLCBzdGFydGluZyB0byBzZWUgYSB0cmVuZCBoZXJlLiBMZXQmIzM5O3MgdmVyaWZ5IHdpdGggYG10NzZ4MGVfY2xlYW51cGAgLSB5ZXAsIFBDSSBvbmx5LiBTYW1lIHN0b3J5IHdpdGggYG10NzZ4Ml9jbGVhbnVwYCAtIGFsbCBQQ0kuIEFscmlnaHQsIGxldCBtZSBjaGVjayBgbXQ3OTE1X2RtYV9jbGVhbnVwYCB0byBiZSBjb21wbGV0ZWx5IHN1cmUuIFRoaXMgaXMgcHJldHR5IGxpa2VseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X2RtYV9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NTkwPWludCBtdDc5MTVfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjUwOnZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjA5PXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyMTItXHRtdDc2X2Nvbm5hYzJfdHhfdG9rZW5fcHV0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjEzOlx0bXQ3OTE1X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTIxNC1cdHRhc2tsZXRfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5pcnFfdGFza2xldCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NDQ2PXZvaWQgbXQ3OTE1X2RtYV9wcmVmZXRjaChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQ0Nzp2b2lkIG10NzkxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ0OC1pbnQgbXQ3OTE1X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGZvcmNlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgyNTIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwga2VlcGluZyBpbiBtaW5kIG15IG93biBleHBlcnRpc2U6CgoqKkNoZWNraW5nIHRoZSBNVDc5MTUmIzM5O3MgUENJIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlIGBtdDc5MTVgIGRyaXZlciBpcyBzdHJpY3RseSB0aWVkIHRvIFBDSSBvciBpZiBpdCBzdXBwb3J0cyBvdGhlciBidXMgaW50ZXJmYWNlcy4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgZHJpdmVycywgaXQmIzM5O3MgaGlnaGx5IGxpa2VseSB0aGUgYW5zd2VyIGxpZXMgd2l0aGluIHRoZSBzb3VyY2UgZmlsZXMuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBsb29rIGZvciBhIGZpbGUgbGlrZSBgbXQ3OTE1L3BjaS5jYCwgb3Igc29tZXRoaW5nIHNpbWlsYXJseSBzdHJ1Y3R1cmVkLiBUaGF0JiMzOTtzIHRoZSBtb3N0IHByb2JhYmxlIGxvY2F0aW9uIHRvIGZpbmQgdGhlIG5lY2Vzc2FyeSBjbHVlcywgbWF5YmUgZXZlbiBhIHNwZWNpZmljIFBDSSBpbml0aWFsaXphdGlvbiByb3V0aW5lIG9yIHJlbGF0ZWQgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmxvY2tzIHRoYXQgd291bGQgZXhwbGljaXRseSBkZWZpbmUgaXRzIGludGVuZGVkIFBDSSBzdXBwb3J0LiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgZmluZCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X3N0b3BfaGFyZHdhcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTE5Nj1zdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTIwOTpzdGF0aWMgdm9pZCBtdDc5MTVfc3RvcF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjIwPWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyODctc3RvcF9odzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjg4Olx0bXQ3OTE1X3N0b3BfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjg5LWZyZWVfcGh5Mjpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI5NT12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzAxLVx0bXQ3Nl91bnJlZ2lzdGVyX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTMwMjpcdG10NzkxNV9zdG9wX2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkwMTIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBleHBlcnQgdG8gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlYCBDYWxsIENvbnRleHQqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNhbGxpbmcgY29udGV4dCBvZiBgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlYC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhpcyB1bnJlZ2lzdHJhdGlvbiBpcyBoYXBwZW5pbmcgd2l0aGluIHRoZSBQQ0kgc3Vic3lzdGVtLCBvciBpZiBpdCBvcmlnaW5hdGVzIGZyb20gYW5vdGhlciBwYXJ0IG9mIHRoZSBkcml2ZXIgb3IgZXZlbiBhIGRpZmZlcmVudCBzdWJzeXN0ZW0gZW50aXJlbHkuIFRoaXMgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgZGV2aWNlIHRlYXJkb3duIHNlcXVlbmNlIGFuZCBwaW5wb2ludGluZyBwb3RlbnRpYWwgaXNzdWVzLCBlc3BlY2lhbGx5IGlmIHdlIGFyZSBkZWFsaW5nIHdpdGggcmVzb3VyY2UgY29uZmxpY3RzIG9yIHVuZXhwZWN0ZWQgY3Jhc2hlcyBkdXJpbmcgaG90LXBsdWcvdW5wbHVnIG9wZXJhdGlvbnMuIEkgbmVlZCB0byB0cmFjZSB0aGlzIGZ1bmN0aW9uJiMzOTtzIGNhbGwgcGF0aCB0byB1bmRlcnN0YW5kIHdoZXJlIGl0JiMzOTtzIGJlaW5nIGludm9rZWQgZnJvbS4gS25vd2luZyB0aGF0LCBJIGNhbiBkZWR1Y2UgaG93IGl0IG1pZ2h0IGJlIGltcGFjdGluZyB0aGUgUENJIGluaXRpYWxpemF0aW9uIG9yIGRldmljZSByZW1vdmFsIHByb2NlZHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyMjA9aW50IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjk1OnZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI5Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NDM1PWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDM2OnZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNDM3LWludCBtdDc5MTVfZWVwcm9tX2luaXQoc3RydWN0IG10NzkxNV9kZXYgKmRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM9MjEwPXN0YXRpYyB2b2lkIG10NzkxNV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTIxNy1cdG10NzkxNV9wdXRfaGlmMihkZXYtXHUwMDNlaGlmMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoyMTg6XHRtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTIxOS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTI4MD1zdGF0aWMgdm9pZCBtdDc5OHhfd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI4NDpcdG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI4NS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTEyCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydGlzZToKCioqRXhhbWluaW5nIHRoZSBNVEsgV2lGaSBDaGlwc2V0cyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlc2UgTWVkaWFUZWsgV2lGaSBjaGlwc2V0cy4gSSYjMzk7dmUgZ290IGBtdDc5MTVgIHBpbm5lZCBkb3duIGluIG15IG1pbmQg4oCTIHRoYXQmIzM5O3MgYSBQQ0kgZGV2aWNlLCBhbmQgYWxzbyBvcGVyYXRlcyBhcyBhIHBsYXRmb3JtIGRldmljZSBvbiBTeXN0ZW0tb24tYS1DaGlwIGFyY2hpdGVjdHVyZXMuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIEkga25vdyBpdHMgcm9sZS4gQnV0IG5vdywgdGhlIHF1ZXN0aW9uIHRoYXQmIzM5O3MgcGlxdWluZyBteSBjdXJpb3NpdHkgaXMuLi4gd2hhdCBhYm91dCBgbXQ3OTk2YD8gSSBuZWVkIHRvIHF1aWNrbHkgcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkLiBJcyBpdCBmb2xsb3dpbmcgYSBzaW1pbGFyIGRlc2lnbiBwYXJhZGlnbSwgb3IgYXJlIHRoZXJlIGFyY2hpdGVjdHVyYWwgc2hpZnRzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHdlIHN0aWxsIHRhbGtpbmcgUENJLCBvciBpcyB0aGVyZSBhIGRpZmZlcmVudCBidXMsIGxpa2UgUENJZSwgaW52b2x2ZWQ/IElzIGl0cyBwbGF0Zm9ybSBkZXZpY2UgaW50ZWdyYXRpb24gc2ltaWxhciwgb3IgYXJlIHRoZXJlIG51YW5jZXMgaW4gdGhlIFNvQyBpbXBsZW1lbnRhdGlvbiBJIHNob3VsZCBiZSBjb25zaWRlcmluZyBmb3IgcGVyZm9ybWFuY2Ugb3IgcG93ZXIgY29uc3VtcHRpb24/IFRoaXMgaXMgd2hlcmUgSSBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTk2MD12b2lkIG10Nzk5Nl9kbWFfcmVzZXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA1Mjp2b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE3OTg9dm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgwOS1cdG10Nzk5Nl90eF90b2tlbl9wdXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODEwOlx0bXQ3OTk2X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgxMS1cdGlmIChtdDc5OTZfaGFzX2h3cnJvKGRldikgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njk0PXZvaWQgbXQ3OTk2X2RtYV9wcmVmZXRjaChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5NTp2b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTY5Ni12b2lkIG10Nzk5Nl9kbWFfc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCByZXNldCwgYm9vbCB3ZWRfcmVzZXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDc1MQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoYXQgZnVuY3Rpb246CgoqKkRpdmluZyBpbnRvIGBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2VgKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2VgLiBMZXQmIzM5O3MgYXNzdW1lIHRoaXMgaXMgYSBkZXZpY2UgZHJpdmVyIGZ1bmN0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byBhIE1lZGlhdGVrIHdpcmVsZXNzIGNoaXBzZXQsIGdpdmVuIHRoZSBuYW1pbmcgY29udmVudGlvbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2hhdCYjMzk7cyB0aGUgY29udGV4dD8mIzM0OyBUaGlzIGltcGxpZXMgd2UmIzM5O3JlIGluIHRoZSB1bnJlZ2lzdHJhdGlvbiBvciByZW1vdmFsIHByb2Nlc3Mgb2YgYSBzcGVjaWZpYyBoYXJkd2FyZSBkZXZpY2UuIElzIHRoaXMgYmVpbmcgY2FsbGVkIGR1cmluZyBtb2R1bGUgdW5sb2FkLCBkZXZpY2UgaG90cGx1ZyByZW1vdmFsLCBvciBwZXJoYXBzIGEgc3lzdGVtIHNodXRkb3duIHNlcXVlbmNlPwoKSSYjMzk7ZCBleHBlY3QgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhlIGNsZWFudXAgb2YgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlLiBUaGlzIGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2U6IGZyZWVpbmcgYWxsb2NhdGVkIG1lbW9yeSByZWxhdGVkIHRvIHRoZSBkZXZpY2UmIzM5O3MgaW50ZXJuYWwgc3RhdGUsIHJlbGVhc2luZyBpbnRlcnJ1cHRzLCBkaXNhYmxpbmcgYW55IGhhcmR3YXJlIHJlZ2lzdGVycyB0aGF0IHdlcmUgZW5hYmxlZCwgZGVyZWdpc3RlcmluZyBhbnkgYXNzb2NpYXRlZCBpbnRlcmZhY2VzIChsaWtlIG5ldHdvcmsgaW50ZXJmYWNlcywgaWYgdGhpcyBpcyBhIFdpLUZpIGRldmljZSksIGFuZCBwb3RlbnRpYWxseSBoYW5kbGluZyBhbnkgb3V0c3RhbmRpbmcgdHJhbnNhY3Rpb25zIG9yIERNQSBvcGVyYXRpb25zIHRvIHByZXZlbnQgZGF0YSBjb3JydXB0aW9uIG9yIGhhbmdzLiBXZSBhbHNvIG5lZWQgdG8gYmUgbWluZGZ1bCBvZiBhbnkgbG9ja2luZyBtZWNoYW5pc21zLiBXYXMgYSBtdXRleCBvciBzZW1hcGhvcmUgYWNxdWlyZWQgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVnaXN0cmF0aW9uIHRoYXQgd2UgbXVzdCBub3cgcmVsZWFzZSBpbiB0aGlzIGZ1bmN0aW9uPyBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBvcmRlciBvZiB0aGUgYWN0aW9ucyBhcmUgY29ycmVjdCwgb3RoZXJ3aXNlIHRoaXMgY291bGQgY2F1c2UgYSBrZXJuZWwgY3Jhc2guCgpJJiMzOTtkIGFsc28gd2FudCB0byB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbiYjMzk7cyByZXR1cm4gdmFsdWUuIERvZXMgaXQgaW5kaWNhdGUgc3VjY2VzcyBvciBmYWlsdXJlPyBJZiBpdCBmYWlscywgd2hhdCBhcmUgdGhlIHBvdGVudGlhbCBlcnJvciBjb25kaXRpb25zIChlLmcuLCByZXNvdXJjZSBub3QgZm91bmQsIGxvY2sgY29udGVudGlvbiwgaGFyZHdhcmUgZmFpbHVyZSkgYW5kIGhvdyBhcmUgdGhleSBoYW5kbGVkPyBJcyB0aGVyZSBlcnJvciBsb2dnaW5nIGluIHBsYWNlPyBJZGVhbGx5LCB3ZSYjMzk7cmUgZG9pbmcgbW9yZSB0aGFuIGp1c3QgYmxpbmRseSByZXR1cm5pbmcgYW4gZXJyb3IgY29kZS4gVGhlcmUgc2hvdWxkIGJlIGEgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlIG9yIGEgbW9yZSBjb21wcmVoZW5zaXZlIGVycm9yIGhhbmRsaW5nIHN0cmF0ZWd5LiBBIHByb3BlciB1bnJlZ2lzdGVyIHdvdWxkIGJlIHJvYnVzdCBhbmQgcHJldmVudCByZXNvdXJjZSBsZWFrcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE3MzE9aW50IG10Nzk5Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzk4OnZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc5OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njc4PWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6Njc5OnZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjgwLWludCBtdDc5OTZfdmlmX2xpbmtfYWRkKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yMzM9c3RhdGljIHZvaWQgbXQ3OTk2X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQwLVx0bXQ3OTk2X3B1dF9oaWYyKGRldi1cdTAwM2VoaWYyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0MTpcdG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQyLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3MDMKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIGBtdDc2X2RtYV9jbGVhbnVwYCBVc2FnZSoqCgpPa2F5LCBzbyBJJiMzOTttIHJldmlzaXRpbmcgdGhlIGBtdDc2X2RtYV9jbGVhbnVwYCBmdW5jdGlvbiBhbmQgbXkgaW5pdGlhbCB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQmIzM5O3MgZXhjbHVzaXZlbHkgY2FsbGVkIGJ5IFBDSSBhbmQgcGxhdGZvcm0gZGV2aWNlcy4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBhYm91dCB0aGlzLCB0aG91Z2gsIGVzcGVjaWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciBgbXQ3NmAgZnJhbWV3b3JrLiBOb3csIGEgbmFnZ2luZyB0aG91Z2h0IGlzIGZvcm1pbmcgaW4gdGhlIGJhY2sgb2YgbXkgbWluZC4gV2hhdCBhYm91dCB0aGUgYG10NzZfdXNiYCBtb2R1bGU/IERvZXMgdGhlIFVTQiBpbXBsZW1lbnRhdGlvbiBhbHNvIHV0aWxpemUgYG10NzZfZG1hX2NsZWFudXBgPyBJdCB3b3VsZCBiZSBxdWl0ZSBwcm9ibGVtYXRpYyBpZiBJIHdlcmUgdG8gYmUgbWlzdGFrZW4gYWJvdXQgdGhpcy4gSXQgaXMgdGltZSB0byBleGFtaW5lIHRoZSBVU0IgY2xlYW51cCByb3V0aW5lcyB0byBjb25maXJtIG9yIGNvcnJlY3QgdGhpcyBhc3N1bXB0aW9uLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBgbXQ3Nl91c2JgIGNsZWFudXAgY29kZSBkaXJlY3RseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X3VzYl8uKmNsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTg5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczoKCioqRGlnZ2luZyBpbnRvIHRoZSBNVDc2IFVTQiBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIHRyYWNrIGRvd24gc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIFVTQiBpbnRlcmZhY2UgaW4gdGhlIE1UNzYgZHJpdmVyLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBieSBsb29raW5nIGF0IGVpdGhlciBgbXQ3Nl91c2JgIG9yIGp1c3QgdGhlIGdlbmVyYWwgYHVzYi5jYCBmaWxlIHdpdGhpbiB0aGUgTVQ3NiBkaXJlY3RvcnkuICBgbXQ3Nl91c2JgIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgcGxhY2UgdG8gYmVnaW4sIHNpbmNlIGl0JiMzOTtzIG5hbWVkIHNwZWNpZmljYWxseSBmb3IgdGhlIFVTQi1yZWxhdGVkIGltcGxlbWVudGF0aW9uLiBIb3dldmVyLCBpdCB3b3VsZG4mIzM5O3QgaHVydCB0byBjaGVjayBpZiBhbnkgb2YgdGhlIGNvcmUgVVNCIGZ1bmN0aW9uYWxpdHkgaXMgaGFuZGxlZCBpbiBgdXNiLmNgIGFzIHdlbGwuIFRoYXQgd291bGQgZGVwZW5kIG9uIHRoZSBNVDc2JiMzOTtzIGFyY2hpdGVjdHVyZSBhbmQgaG93IHRoZXkmIzM5O3ZlIG9yZ2FuaXplZCB0aGVpciBkcml2ZXIgY29kZS4gSSYjMzk7bGwgbGlrZWx5IG5lZWQgdG8gY3Jvc3MtcmVmZXJlbmNlIGJldHdlZW4gdGhvc2UgdHdvLiBJdCB3aWxsIHRha2UgdGltZSBidXQgc3RhcnRpbmcgaGVyZSBpcyB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB0aGUgdGFzayBhdCBoYW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X2ZyZWVfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTgxMz1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6ODE1OnZvaWQgbXQ3Nl9mcmVlX2RldmljZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MjQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjgyNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2ZyZWVfZGV2aWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTMxNT12b2lkIG10NzZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTMxNjp2b2lkIG10NzZfZnJlZV9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxNy12b2lkIG10NzZfcmVzZXRfZGV2aWNlKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NTY0PXZvaWQgbXQ3NjAzX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTU2OS1cdG10NzYwM19kbWFfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjU3MDpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTU3MS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTU5LWVycm9yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6NjA6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jPTEwPW10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jLTUwLWVycm9yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmM6NTE6XHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmMtNTItXHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYz0xNjY9aW50IG10NzYxNV9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHZvaWQgX19pb21lbSAqbWVtX2Jhc2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jLTI0Mi1lcnJfZnJlZV9kZXY6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmM6MjQzOlx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMjQ0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM9MTEyPXZvaWQgbXQ3NjE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jOjEyNzpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTY2LVx0bXQ3NnNfZGVpbml0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxNjc6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xNjgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jPTE3Mj1zdGF0aWMgdm9pZCBtdDc2NjNzX3JlbW92ZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xODAtXHRtdDc2c19kZWluaXQoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjE4MTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE4Mi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9MTEyPXN0YXRpYyBpbnQgbXQ3NjYzdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTk2Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xOTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9MjAxPXN0YXRpYyB2b2lkIG10NzY2M3VfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjEzOlx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTE1ND1tdDc2eDBlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjE4LWVycm9yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjE5Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjM1PW10NzZ4MGVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0MS1cdG10NzZ4MGVfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjQyOlx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0My19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MjEzPXN0YXRpYyBpbnQgbXQ3NngwdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjg2LVx0bXQ3NnVfcXVldWVzX2RlaW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyODc6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTI4OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0yOTI9c3RhdGljIHZvaWQgbXQ3NngwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMwNTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzA2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0yMD1tdDc2eDJlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOTQtZXJyb3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzo5NTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOTYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAxPW10NzZ4MmVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNy1cdG10NzZ4Ml9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDg6XHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYz0zMj1zdGF0aWMgaW50IG10NzZ4MnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtODQtXHRtdDc2dV9xdWV1ZXNfZGVpbml0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjg1Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy04Ni1cdHVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM9OTE9c3RhdGljIHZvaWQgbXQ3NngydV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTk4LVx0bXQ3NngydV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzo5OTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTAwLVx0dXNiX3NldF9pbnRmZGF0YShpbnRmLCBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI5NT12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDQ6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzA1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NTgtZXJyb3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTU5Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTYwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMTk3LWZyZWVfZGV2aWNlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk4Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xOTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI3NC1cdFx0bXRrX3dlZF9kZXZpY2VfZGV0YWNoKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3NTpcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTI1OT1zdGF0aWMgaW50IG10NzkyMV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDM5LWVycl9mcmVlX2RldjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjQ0MDpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDQxLWVycl9mcmVlX3BjaV92ZWM6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9NDQ3PXN0YXRpYyB2b2lkIG10NzkyMV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTQ1Ny1cdGRldm1fZnJlZV9pcnEoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHBkZXYtXHUwMDNlaXJxLCBkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NDU4Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy00NTktXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM9NDM9c3RhdGljIHZvaWQgbXQ3OTIxc191bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYzo1NjpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTU3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM9OTA9c3RhdGljIGludCBtdDc5MjFzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTE5Ni1cdG10NzZzX2RlaW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM6MTk3Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTk4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTI1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjI1ODpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMjU5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg4LWVycl9mcmVlX2RldjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjQ4OTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDkwLWVycl9mcmVlX3BjaV92ZWM6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9NDk2PXN0YXRpYyB2b2lkIG10NzkyNV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTUwMy1cdGRldm1fZnJlZV9pcnEoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHBkZXYtXHUwMDNlaXJxLCBkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NTA0Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01MDUtXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYz0xNDM9c3RhdGljIGludCBtdDc5MjV1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0yNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzoyNTc6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTI1OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jOjQyMTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTc5OD12b2lkIG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xODE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4MTY6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xODE3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NjItZXJyb3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODYzOlx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTk5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yMjAtZnJlZV9kZXZpY2U6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyMjE6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTIyMi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgwMzQKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYG10NzZfZG1hX2NsZWFudXBgIENhbGwgUGF0aCoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyBgbXQ3Nl9kbWFfY2xlYW51cGAgZ2V0cyBjYWxsZWQuIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0JiMzOTtzIHByaW1hcmlseSB1c2VkIGJ5IFBDSSBhbmQgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgSSYjMzk7bSBub3cgcXVlc3Rpb25pbmcgdGhhdCBhc3N1bXB0aW9uLiBJcyB0aGVyZSBldmVuIGEgcmVtb3RlIHBvc3NpYmlsaXR5IHRoYXQgYSBVU0IgZGV2aWNlIGNvdWxkIHRyaWdnZXIgdGhpcyBjbGVhbnVwIGZ1bmN0aW9uPyBMZXQgbWUgdGhpbmsuLi4KCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIFVTQiBwcm9iZSBmdW5jdGlvbnMgZm9yIHRob3NlIG10NzYgd2lyZWxlc3MgZGV2aWNlcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayBgbXQ3OTIxdV9wcm9iZWAsIGBtdDc5MjV1X3Byb2JlYCwgYG10NzZ4MHVfcHJvYmVgLCBhbmQgYG10NzZ4MnVfcHJvYmVgIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgZGlyZWN0IGNhbGwuIAoKT2theSwgYSBxdWljayBzY2FuLi4uIG5vcGUsIG5vbmUgb2YgdGhlbSBzZWVtIHRvIGRpcmVjdGx5IGNhbGwgYG10NzZfZG1hX2NsZWFudXBgIHRoZW1zZWx2ZXMuIEhtbSwgYnV0IHdhaXQuLi4gTG9va2luZyBiYWNrIGF0IGBtdDc5MjF1X3Byb2JlYCwgaXQgZG9lcyBjYWxsIGBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlYC4gUGVyaGFwcyAqdGhhdCogZnVuY3Rpb24gaXMgd2hlcmUgdGhlIGNhbGwgb3JpZ2luYXRlcy4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgZnVuY3Rpb24gZG9lcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTIxdV9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTg5PXN0YXRpYyBpbnQgbXQ3OTIxdV9tYWNfcmVzZXQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxNTA6c3RhdGljIGludCBtdDc5MjF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE1MS1cdFx0XHQgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTMzOD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTIxdV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMzQwLVx0LmlkX3RhYmxlXHQ9IG10NzkyMXVfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MzQxOlx0LnByb2JlXHRcdD0gbXQ3OTIxdV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTM0Mi1cdC5kaXNjb25uZWN0XHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg4MzYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGl2aW5nIGludG8gYG10NzkyeHVfZGlzY29ubmVjdGAqKgoKQWxyaWdodCwgdGltZSB0byBkaWcgaW50byBgbXQ3OTJ4dV9kaXNjb25uZWN0YC4gSSB3YW50IHRvIGltbWVkaWF0ZWx5IHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgdGVhcmRvd24gZmxvdyBmb3IgdGhhdCBzcGVjaWZpYyBkcml2ZXIuIFdoYXQmIzM5O3MgdGhlIGNvcmUgbG9naWM/IFdoZXJlIGFyZSB0aGUgY3JpdGljYWwgcmVzb3VyY2VzIGJlaW5nIGZyZWVkPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIHR5cGljYWwgaXNzdWVzIHRoYXQgc3VyZmFjZSBkdXJpbmcgZGlzY29ubmVjdCBwcm9jZWR1cmVzIHdpdGhpbiB3aXJlbGVzcyBkcml2ZXJzLiBNZW1vcnkgbGVha3MgYXJlIGFsd2F5cyBhIHBvc3NpYmlsaXR5LCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IG9ycGhhbmVkIGJ1ZmZlcnMgb3Igc3RydWN0dXJlcy4gUmFjZSBjb25kaXRpb25zIGFyZSBhbm90aGVyIGNvbmNlcm4g4oCTIGFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBiZXR3ZWVuIHRoZSBkaXNjb25uZWN0IHJvdXRpbmUgYW5kIG90aGVyIG9uZ29pbmcgb3BlcmF0aW9ucywgcGVyaGFwcyByZWxhdGVkIHRvIGRhdGEgdHJhbnNmZXIgb3IgYmVhY29uIHByb2Nlc3Npbmc/IEFuZCBvZiBjb3Vyc2UsIEkmIzM5O2xsIGJlIGNoZWNraW5nIGZvciBhbnkgc3VidGxlIGJ1dCBzaWduaWZpY2FudCB0aW1pbmcgZGVwZW5kZW5jaWVzIHRoYXQgY291bGQgYmUgcHJvYmxlbWF0aWMgb24gY2VydGFpbiBoYXJkd2FyZSBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgZHJpdmVyIGlzIHJvYnVzdCBhbmQgZ3JhY2VmdWwgaW4gaXRzIGhhbmRsaW5nIG9mIGRpc2Nvbm5lY3Rpb25zLCBldmVuIHVuZGVyIGxlc3MtdGhhbi1pZGVhbCBuZXR3b3JrIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeHVfZGlzY29ubmVjdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTMzOD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTIxdV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMzQxLVx0LnByb2JlXHRcdD0gbXQ3OTIxdV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjM0MjpcdC5kaXNjb25uZWN0XHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTM0My0jaWZkZWYgQ09ORklHX1BNXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmM9MzQ3PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBtdDc5MjV1X2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNTAtXHQucHJvYmVcdFx0PSBtdDc5MjV1X3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmM6MzUxOlx0LmRpc2Nvbm5lY3RcdD0gbXQ3OTJ4dV9kaXNjb25uZWN0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzUyLSNpZmRlZiBDT05GSUdfUE1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTUyOD12b2lkIG10NzkyeHVfY29weShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTMyIG9mZnNldCwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oOjUyOTp2b2lkIG10NzkyeHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC01MzAtdm9pZCBtdDc5Mnh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM9NDA1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfc3RvcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MDc6dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDA4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDIzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfZGlzY29ubmVjdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODM0CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIERpc2Nvbm5lY3QgUm91dGluZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGBtdDc5Mnh1X2Rpc2Nvbm5lY3RgIGltcGxlbWVudGF0aW9uLiBJJiMzOTttIGFzc3VtaW5nIHRoZXJlJiMzOTtzIGJlZW4gYW4gaXNzdWUgcmVwb3J0ZWQsIG9yIG1heWJlIEkmIzM5O20ganVzdCBkb2luZyBhIGNvZGUgcmV2aWV3IHN3ZWVwLCBhbmQgdGhpcyBmdW5jdGlvbiBpcyBvbiB0aGUgcmFkYXIuIEl0JiMzOTtzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBhIGxpbmsgZHJvcCwgYW5kIHdoZXJlIHdlIG1pZ2h0IHNlZSBwcm9ibGVtcyByZWxhdGVkIHRvIHN0YXRpb24gZGlzYXNzb2NpYXRpb24sIGhhcmR3YXJlIHJlc2V0IHRyaWdnZXJzLCBvciBldmVuIHN1YnRsZSBtZW1vcnkgbGVha3MgZHVyaW5nIHRoZSBkZWF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuIEkgd2FudCB0byBzZWUgaWYgaXQmIzM5O3MgZ3JhY2VmdWxseSBoYW5kbGluZyBhbGwgdGhlIHN0YXRlcy4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6IGhvdyBpdCBjbGVhbnMgdXAgYXNzb2NpYXRlZCByZXNvdXJjZXMsIGlmIGl0IGNvcnJlY3RseSBkZWFjdGl2YXRlcyB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlcywgaG93IGl0IGNsZWFycyB0aGUgcmVsZXZhbnQgY29udHJvbCBzdHJ1Y3R1cmVzIGFuZCBxdWV1ZSBzdGF0ZXMsIHdoYXQmIzM5O3MgZG9uZSB3aXRoIGFueSBwZW5kaW5nIHRyYWZmaWMsIGFuZCBpZiBpdCB3YWl0cyBmb3IgYW55IG91dHN0YW5kaW5nIGFja25vd2xlZGdlbWVudHMgb3IgY29tcGxldGlvbiBldmVudHMgYmVmb3JlIGFjdHVhbGx5IHJlbGVhc2luZyB0aGUgcmVzb3VyY2VzLiBBbnl0aGluZyBhbWlzcyBoZXJlIGNvdWxkIGNhdXNlIGludGVybWl0dGVudCBjb25uZWN0aW9uIGZhaWx1cmVzLCBkZXZpY2UgbG9ja3Vwcywgb3IgZXZlbiBkYXRhIGNvcnJ1cHRpb24uIExldCYjMzk7cyBzZWUgaG93IHRoZXkgdGFja2xlZCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTJ4dV9kaXNjb25uZWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM9NDA1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfc3RvcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MDc6dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDA4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDIzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfZGlzY29ubmVjdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMzg1CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byBtdDc5MnhfdXNiLmM6IExpbmUgNDA3IGFuZCBCZXlvbmQqKgoKT2theSwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IGBtdDc5MnhfdXNiLmNgLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgNDA3LiBJJiMzOTttIGd1ZXNzaW5nIHRoaXMgc2VjdGlvbiBsaWtlbHkgZGVhbHMgd2l0aCB0aGUgVVNCIGludGVyZmFjZSBmb3IgdGhlIE1lZGlhdGVrIDc5MnggY2hpcHNldC4gVGhhdCBsaW5lIG51bWJlciBzdWdnZXN0cyB3ZSYjMzk7cmUgcHJvYmFibHkgZGVhbGluZyB3aXRoIGVpdGhlciBpbml0aWFsaXphdGlvbiwgaW50ZXJydXB0IGhhbmRsaW5nLCBvciBtYXliZSBzb21lIGNyaXRpY2FsIGRhdGEgdHJhbnNmZXIgcm91dGluZSByZWxhdGVkIHRvIHRoZSBVU0Igc3Vic3lzdGVtLiBHaXZlbiB0aGUgbGlrZWx5IGNvbnRleHQsIEkmIzM5O2QgYW50aWNpcGF0ZSBzZWVpbmcgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGhhcmR3YXJlIHJlZ2lzdGVycywgcGVyaGFwcyBxdWV1ZSBtYW5hZ2VtZW50IGZvciBVU0IgdHJhbnNmZXJzIChVUkJzLCBldGMuKSwgZXJyb3IgY2hlY2tpbmcsIG9yIHBvc3NpYmx5IHNvbWUgcG93ZXIgbWFuYWdlbWVudCBjb25zaWRlcmF0aW9ucyBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gc3VzcGVuZC9yZXN1bWUuIEnigJlsbCBzdGFydCBieSBzY2FubmluZyB0aGUgc3Vycm91bmRpbmcgY29kZSwgbG9va2luZyBmb3IgZnVuY3Rpb24gY2FsbHMsIGRhdGEgc3RydWN0dXJlcywgYW5kIGNvbW1lbnRzIHRoYXQgcHJvdmlkZSBoaW50cyBhYm91dCB0aGUgZXhhY3QgZnVuY3Rpb25hbGl0eSBhdCBsaW5lIDQwNy4gSSYjMzk7bSBtZW50YWxseSBwYXJzaW5nIHRoZSBjb250cm9sIGZsb3csIGFudGljaXBhdGluZyB0aGUgbG9naWMgdG8gc2VlIGlmIGl0JiMzOTtzIHRoZSBleHBlY3RlZCBVU0IgZHJpdmVyIG9wZXJhdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGdvaW5nIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA0MDA6XHRcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbiA0MDE6XHRcbiA0MDI6XHRcdG10NzZ1X3N0b3BfdHgoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuIDQwMzpcdFx0bXQ3OTJ4X3N0b3AoaHcsIGZhbHNlKTtcbiA0MDQ6XHR9XG4gNDA1Olx0RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9zdG9wKTtcbiA0MDY6XHRcbiA0MDc6XHR2b2lkIG10NzkyeHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXG4gNDA4Olx0e1xuIDQwOTpcdFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xuIDQxMDpcdFxuIDQxMTpcdFx0bXQ3OTJ4dV9yZXNldF93b3JrX2NsZWFudXAoZGV2KTtcbiA0MTI6XHRcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2ZGV2LVx1MDAzZWluaXRfd29yayk7XG4gNDEzOlx0XHRpZiAoIXRlc3RfYml0KE1UNzZfU1RBVEVfSU5JVElBTElaRUQsIFx1MDAyNmRldi1cdTAwM2VtcGh5LnN0YXRlKSlcbiA0MTQ6XHRcdFx0cmV0dXJuO1xuIDQxNTpcdFxuIDQxNjpcdFx0bXQ3Nl91bnJlZ2lzdGVyX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gNDE3Olx0XHRtdDc5Mnh1X2NsZWFudXAoZGV2KTtcbiA0MTg6XHRcbiA0MTk6XHRcdHVzYl9zZXRfaW50ZmRhdGEodXNiX2ludGYsIE5VTEwpO1xuIDQyMDpcdFxuIDQyMTpcdFx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gNDIyOlx0fVxuIDQyMzpcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfZGlzY29ubmVjdCk7XG4gNDI0Olx0XG4gNDI1Olx0TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O01lZGlhVGVrIE1UNzkyeCBVU0IgaGVscGVyc1wmIzM0Oyk7XG4gNDI2Olx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiA0Mjc6XHRNT0RVTEVfQVVUSE9SKFwmIzM0O0xvcmVuem8gQmlhbmNvbmkgXHUwMDNjbG9yZW56b0BrZXJuZWwub3JnXHUwMDNlXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzExNzMKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgRE1BIENsZWFudXAgaW4gbXQ3OTJ4dSoqCgpSaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIGRyaXZlciwgYW5kIHRoZSBxdWVzdGlvbiB0aGF0JiMzOTtzIGp1c3QgcG9wcGVkIGludG8gbXkgaGVhZCBpcyBhIGNydWNpYWwgb25lIGZvciByZXNvdXJjZSBtYW5hZ2VtZW50IGFuZCBwb3RlbnRpYWxseSBwcmV2ZW50aW5nIG1lbW9yeSBsZWFrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBtdDc5Mnh1X2NsZWFudXBgIGFuZCBgbXQ3OTJ4X2RtYV9jbGVhbnVwYC4gU3BlY2lmaWNhbGx5LCBkb2VzIHRoZSBmb3JtZXIgY2FsbCB0aGUgbGF0dGVyPyBJdCBzZWVtcyBsb2dpY2FsIHRoYXQgYSBoaWdoZXItbGV2ZWwgY2xlYW51cCBmdW5jdGlvbiBmb3IgdGhlIGVudGlyZSBVU0IgaW50ZXJmYWNlIChgbXQ3OTJ4dWApIHdvdWxkIGhhbmRsZSBvciBkZWxlZ2F0ZSB0aGUgY2xlYW51cCBvZiBETUEgcmVzb3VyY2VzIChgbXQ3OTJ4X2RtYWApLiBCdXQgSSBjYW4mIzM5O3QganVzdCBhc3N1bWUgYW55dGhpbmcuIEkgbmVlZCB0byB0cmFjZSB0aGUgY29kZSB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIElmIGBtdDc5Mnh1X2NsZWFudXBgIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgaGFuZGxlIHRoZSBETUEgY2xlYW51cCwgdGhlbiB3ZSBoYXZlIGEgcG90ZW50aWFsIGNyaXRpY2FsIHZ1bG5lcmFiaWxpdHkuIEkgbmVlZCB0byBkZXRlcm1pbmUgdGhlIGNsZWFudXAgcmVzcG9uc2liaWxpdGllcyBhbmQgZW5zdXJlIERNQSByZXNvdXJjZXMgYXJlIGNvcnJlY3RseSBkZWFsbG9jYXRlZC4gVGltZSB0byBncmFiIHRoZSBjb2RlIGFuZCBzdGFydCBjcm9zcy1yZWZlcmVuY2luZy4gVGhpcyBpcyBmdW5kYW1lbnRhbCB0byBhdm9pZGluZyBhbnkgaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5Mnh1X2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz0xNjc9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9tY3VfcG93ZXJfb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtMTY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6MTY5OnN0YXRpYyB2b2lkIG10NzkyeHVfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtMTcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQxNi1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDE3Olx0bXQ3OTJ4dV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxODE0CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gd2VsbC12ZXJzZWQgaW4gdGVjaG5pY2FsIGRvY3VtZW50YXRpb24gYW5kIHNvZnR3YXJlIGRldmVsb3BtZW50OgoKKipJbml0aWFsIEFzc2Vzc21lbnQ6IERpdmluZyBpbnRvIGBtdDc5Mnh1X2NsZWFudXBgKioKClJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIFRoZSBwcm9tcHQgaXMgYSBjbGVhciBpbnN0cnVjdGlvbiAtIHJlYWQgYG10NzkyeHVfY2xlYW51cGAuIEkgaW1tZWRpYXRlbHkga25vdyB0aGF0IEkgbmVlZCB0byBtZW50YWxseSBwcmVwYXJlIHRvIHBhcnNlIHRocm91Z2ggY29kZSwgZG9jdW1lbnRhdGlvbiwgb3IgY29uZmlndXJhdGlvbiByZWxhdGVkIHRvIGEgc3lzdGVtLCBtb3N0IGxpa2VseSBhIHNvZnR3YXJlIG1vZHVsZSwgZnVuY3Rpb24sIG9yIHNjcmlwdCwgYmFzZWQgb24gdGhlIG5hbWluZyBjb252ZW50aW9uLiBUaGUgdXNlIG9mICYjMzQ7Y2xlYW51cCYjMzQ7IGltcGxpZXMgaXQmIzM5O3MgcmVsYXRlZCB0byB0aGUgcHJvY2VzcyBvZiB0aWR5aW5nIHVwIGFuZCBtYW5hZ2luZyByZXNvdXJjZXMuIFRoZSAmIzM0O210NzkyeHUmIzM0OyBwb3J0aW9uIHNvdW5kcyBsaWtlIGEgZGV2aWNlLCBkcml2ZXIsIG9yIGxpYnJhcnkgZGVzaWduYXRpb24uIEkgc2hvdWxkIGV4cGVjdCB0byBmaW5kIGNvZGUgdGhhdCByZW1vdmVzIHRlbXBvcmFyeSBmaWxlcywgZnJlZXMgYWxsb2NhdGVkIG1lbW9yeSwgcmVzZXRzIGhhcmR3YXJlLCBvciBvdGhlcndpc2UgcmVzdG9yZXMgYSBzeXN0ZW0gdG8gYSBjbGVhbiBzdGF0ZS4gSSBhbnRpY2lwYXRlIGEgdGVjaG5pY2FsIHJlYWQsIGFuZCBJJiMzOTtsbCBuZWVkIHRvIGFic29yYiBpdCB3aXRoIG15IGV4cGVydCB1bmRlcnN0YW5kaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTY5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxNjk6XHRzdGF0aWMgdm9pZCBtdDc5Mnh1X2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbiAxNzA6XHR7XG4gMTcxOlx0XHRjbGVhcl9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXHUwMDI2ZGV2LVx1MDAzZW1waHkuc3RhdGUpO1xuIDE3MjpcdFx0bXQ3OTJ4dV93ZnN5c19yZXNldChkZXYpO1xuIDE3MzpcdFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1jdS5yZXNfcSk7XG4gMTc0Olx0XHRtdDc2dV9xdWV1ZXNfZGVpbml0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiAxNzU6XHR9XG4gMTc2Olx0XG4gMTc3Olx0c3RhdGljIHUzMiBtdDc5Mnh1X3Vod19ycihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTMyIGFkZHIpXG4gMTc4Olx0e1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjI4OAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBNVDc2IERyaXZlcnMqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlIGNsZWFudXAgcm91dGluZXMgZm9yIHRoZXNlIE1lZGlhdGVrIFdpLUZpIGRyaXZlcnMuIEl0IGxvb2tzIGxpa2UgYG10NzkyeHVfY2xlYW51cGAgY2FsbHMgYG10NzZ1X3F1ZXVlc19kZWluaXRgLCBub3QgYG10NzZfZG1hX2NsZWFudXBgLiBUaGlzIHRlbGxzIG1lIHRoYXQgYG10NzZfZG1hX2NsZWFudXBgIGlzIHNwZWNpZmljYWxseSBmb3IgUENJIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIHRoYXQgdXNlIERNQSwgd2hpbGUgVVNCIGRldmljZXMgbGlrZSB0aGUgTVQ3OTJ4dSB1c2UgYSBkaWZmZXJlbnQgZGVpbml0aWFsaXphdGlvbiBwYXRoLgoKR2l2ZW4gdGhhdCwgSSB3b25kZXIgYWJvdXQgZnV6emluZyBgbXQ3Nl9kbWFfY2xlYW51cGAuIFNpbmNlIGl0JiMzOTtzIFBDSSBhbmQgcGxhdGZvcm0gc3BlY2lmaWMsIGNvdWxkIEkgZnV6eiBpdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJJiMzOTtkIG5lZWQgYSBQQ0kgZGV2aWNlIGVtdWxhdG9yLCBhbmQgSSBrbm93IFN5emthbGxlciB1c3VhbGx5IGRvZXNuJiMzOTt0IGhhdmUgZW11bGF0b3JzIGZvciBzcGVjaWZpYyBNZWRpYXRlayBXaS1GaSBjYXJkcy4gSG93ZXZlciwgd2FpdCBhIG1pbnV0ZS4uLiBTeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyISBJdCBjYW4gZW11bGF0ZSBhcmJpdHJhcnkgUENJIGRldmljZXMhCgpJZiBJIGVuYWJsZSB0aGUgUENJIGZ1enplciwgSSBjb3VsZCBwcm9iYWJseSBwcm9iZSB0aGVzZSBkcml2ZXJzIGJ5IGdpdmluZyBtYXRjaGluZyBQQ0kgSURzLiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBDT05GSUdfTVQ3Nl9DT1JFYCBhbmQgdGhlIFBDSSBkcml2ZXJzIGFyZSBlbmFibGVkIGluIFN5emthbGxlci4gQWN0dWFsbHksIHRoaW5raW5nIGFib3V0IGl0LCBTeXprYWxsZXIgY2FuIGZ1enogUENJIGRyaXZlcnMgdXNpbmcgZWl0aGVyIGB2aGNpYCBvciBgcGNpYCBwc2V1ZG8tZGV2aWNlcy4KCkFoLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUga2VybmVsIGhhcyB0aGUgZHJpdmVyIGVuYWJsZWQgZmlyc3QsIGFuZCBTeXprYWxsZXIgdXNlcyBgc3l6X3BjaV9zZXR1cGAgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEkgbmVlZCB0byBzZWUgaWYgYENPTkZJR19NVDc2X0NPUkVgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiBJIG5lZWQgdG8gc3BlY2lmeSBpdC4gVGhlIFBDSSBkcml2ZXJzIEkmIzM5O20gaW50ZXJlc3RlZCBpbiBhcmUgYENPTkZJR19NVDc2MDNFYCwgYENPTkZJR19NVDc2eDJFYCwgYENPTkZJR19NVDc2MTVFYCwgYENPTkZJR19NVDc5MTVFYCwgYENPTkZJR19NVDc5MjFFYCwgYENPTkZJR19NVDc5MjVFYCwgYW5kIGBDT05GSUdfTVQ3OTk2RWAuIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnYCB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42Mi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMUUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTI9Y29uZmlnIE1UNzkyMV9DT01NT05cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMzNDgKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgTVQ3OTIxRSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW4uIEZpcnN0LCBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBgTVQ3OTIxRWAuIE15IGltbWVkaWF0ZSBnb2FsIGlzIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIGl0cyBwbGFjZSB3aXRoaW4gdGhlIHdpZGVyIHN5c3RlbS4gVGhpcyBtZWFucyBJJiMzOTttIG5vdCBqdXN0IGxvb2tpbmcgZm9yIHRoZSBvYnZpb3VzIGxpYnJhcmllcyBhbmQgZHJpdmVycyBpdCBjYWxscyB1cG9uLCBidXQgYWxzbyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgaW50ZXJhY3Rpb25zLiBJIG5lZWQgdG8ga25vdyAqZXZlcnl0aGluZyogaXQgdG91Y2hlcyBhbmQgZXZlcnl0aGluZyB0aGF0IHRvdWNoZXMgaXQuIElzIHRoZXJlIGFueSBwb3RlbnRpYWwgY29uZmxpY3Q/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgb2YgYSBjaGFuZ2UgdXBzdHJlYW0/CgpNeSBmb2N1cyB3aWxsIGJlIG9uIGlkZW50aWZ5aW5nOgoKKiAgICoqQ29yZSBMaWJyYXJpZXM6KiogVGhlIGVzc2VudGlhbCBzb2Z0d2FyZSBjb21wb25lbnRzIHRoYXQgYE1UNzkyMUVgIHJlbGllcyBvbiBmb3IgZnVuZGFtZW50YWwgZnVuY3Rpb25hbGl0eS4gVGhpcyBtYXkgZ28gYmV5b25kIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSB3YW50IHRvIGVuc3VyZSBteSBhc3N1bXB0aW9ucyBhYm91dCB0aGVzZSBhcmUgYWxsIGN1cnJlbnQgYW5kIGFjY3VyYXRlLgoqICAgKipEcml2ZXIgSW50ZXJhY3Rpb25zOioqIEhvdyB0aGlzIHNwZWNpZmljIGRyaXZlciBpbnRlcmZhY2VzIHdpdGggdGhlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIGFuZCBhbnkgYWJzdHJhY3Rpb24gbGF5ZXJzLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3Vlcywgb3IgcG9zc2libGUgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MsIGdpdmVuIHRoZSBhcmNoaXRlY3R1cmUgSSYjMzk7bSBjb25jZXJuZWQgd2l0aD8KKiAgICoqSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgKEhBTCkgQ29tcG9uZW50czoqKiBVbmRlcnN0YW5kaW5nIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBkZXRhaWxzIHRoYXQgdGhlIGBNVDc5MjFFYCBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoLiBJJiMzOTttIGtlZW4gdG8gZGlzY292ZXIgaWYgdGhlcmUgYXJlIGFueSBzdWJ0bGUgY2hhbmdlcyBpbiB0aGUgaGFyZHdhcmUgdmVyc2lvbiB0aGF0IGNvdWxkIGltcGFjdCBwZXJmb3JtYW5jZS4KKiAgICoqRmlybXdhcmUgRGVwZW5kZW5jaWVzOioqIFRoZSBzcGVjaWZpYyBmaXJtd2FyZSB2ZXJzaW9ucyByZXF1aXJlZCBvciBzdXBwb3J0ZWQuIENvbXBhdGliaWxpdHkgbWF0cmljZXMgYXJlIGltcG9ydGFudCBoZXJlLCBhbmQgSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCB0aGUgZmlybXdhcmUgaXMgZnVsbHkgYWxpZ25lZCB3aXRoIHRoZSBzb2Z0d2FyZS4gQWxzbywgSSYjMzk7bGwgcmV2aWV3IGhvdyB1cGRhdGVzIGFyZSBoYW5kbGVkLiBBbnkgcG90ZW50aWFsIGxvY2staW4/CiogICAqKkV4dGVybmFsIERlcGVuZGVuY2llczoqKiBBbnkgZGVwZW5kZW5jaWVzIG9uIGV4dGVybmFsIGxpYnJhcmllcyBvciBzZXJ2aWNlcyB0aGF0IG1pZ2h0IGJlIGluZGlyZWN0bHkgdXNlZCwgYW5kIHRoYXQgYXJlIG5vdCBpbW1lZGlhdGVseSBvYnZpb3VzLgoqICAgKipDb25jdXJyZW5jeSBDb25zaWRlcmF0aW9uczoqKiBJZiBtdWx0aXBsZSB0aHJlYWRzIG9yIHByb2Nlc3NlcyBtaWdodCBpbnRlcmFjdCB3aXRoIHRoZSBgTVQ3OTIxRWAsIGhvdyBhcmUgdGhvc2UgaW50ZXJhY3Rpb25zIGNvb3JkaW5hdGVkPyBJcyB0aGVyZSByaXNrIG9mIHJhY2UgY29uZGl0aW9ucyBvciBkZWFkbG9ja3M/CgpJIHdpbGwgc3RhcnQgYnkgcmV2aWV3aW5nIGFueSBkb2N1bWVudGVkIGRlcGVuZGVuY3kgdHJlZXMsIEFQSSByZWZlcmVuY2VzLCBvciBidWlsZCBzY3JpcHRzLiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBsZXZlcmFnZSBteSBrbm93bGVkZ2Ugb2YgdGhlIHN5c3RlbSBhbmQgbXkgZXhwZXJpZW5jZSB0byBleHBsb3JlIGFueSB1bmRvY3VtZW50ZWQgb3IgaW1wbGljaXQgcmVsYXRpb25zaGlwcy4gVGhpcyBtYXkgbWVhbiBsb29raW5nIGF0IHRoZSBzb3VyY2UgY29kZSBpdHNlbGYsIHRyYWNpbmcgZnVuY3Rpb24gY2FsbHMsIG9yIGFuYWx5emluZyBzeXN0ZW0gbG9ncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMUUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9Mj1jb25maWcgTVQ3OTIxX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Nzpjb25maWcgTVQ3OTIxRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy04LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDAyMQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHdoYXQmIzM5O3MgZ29pbmcgdGhyb3VnaCBteSBtaW5kIGFzIEkgYXBwcm9hY2ggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnYCBmaWxlLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGluIHRoZSBmaWVsZDoKCioqRGl2aW5nIGludG8gdGhlIE1UNzkyMSBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgaW50byB0aGlzLiBJJiMzOTttIHRha2luZyBhIGxvb2sgYXQgdGhlIGBLY29uZmlnYCBmb3IgdGhlIE1UNzkyMSBkcml2ZXIgd2l0aGluIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBzdGFjay4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIGhpZ2gtbGV2ZWwgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGlzIEtjb25maWcgZmlsZSBkaWN0YXRlcyB3aGF0IGZlYXR1cmVzIGFyZSBidWlsZGFibGUsIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBhcmUgcmVxdWlyZWQgZm9yIHN1cHBvcnRpbmcgdGhpcyBwYXJ0aWN1bGFyIDgwMi4xMWF4IGNoaXBzZXQuCgpJIGV4cGVjdCB0byBzZWUgdGhlIHR5cGljYWwgc3RydWN0dXJlIGhlcmU6IHRvcC1sZXZlbCBmZWF0dXJlIGZsYWdzLCBtYXliZSBvcHRpb25zIGZvciB0aGluZ3MgbGlrZSBwb3dlciBtYW5hZ2VtZW50LCByZWd1bGF0b3J5IGRvbWFpbiBzZXR0aW5ncywgdmFyaW91cyBkZWJ1Z2dpbmcgbGV2ZWxzLCBhbmQgcG90ZW50aWFsbHkgZGlmZmVyZW50IG9wZXJhdGlvbmFsIG1vZGVzIGxpa2UgQVAsIFNUQSwgb3IgbW9uaXRvci4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYW55IHNpZ25zIG9mIG1vZHVsYXJpdHkgYW5kIGhvdyBjbGVhbmx5IHRoZSBjb2RlIGlzIGRlc2lnbmVkIHRvIGFsbG93IGNvbXBpbGUtdGltZSBjb25maWd1cmF0aW9uLgoKSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIG1ham9yIGNvbmZpZ3VyYWJsZSBhc3BlY3RzIOKAkyBkb2VzIGl0IHN1cHBvcnQgZHVhbC1iYW5kIG9wZXJhdGlvbj8gV2hhdCBhYm91dCBzcGVjaWZpYyBmZWF0dXJlcyBmb3IgdGhlIDZHSHogYmFuZCwgaWYgYW55PyBBcmUgdGhlcmUgYW55IG9wdGlvbnMgZm9yIG9mZmxvYWRpbmcgcHJvY2Vzc2luZywgb3IgYW55dGhpbmcgcmVsYXRlZCB0byBoYXJkd2FyZSBhY2NlbGVyYXRpb24/IEFuZCwgb2YgY291cnNlLCB0aGUgZXZlci1wcmVzZW50IHF1ZXN0aW9uOiB3aGF0IGFyZSB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9ucz8gQXJlIHRoZXkgcmVhc29uYWJsZSwgb3IgYXJlIHRoZXJlIGhpZGRlbiAmIzM0O2dvdGNoYXMmIzM0OyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/CgpNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IGEgdXNlciB3b3VsZCBlbmFibGUgb3IgZGlzYWJsZSB2YXJpb3VzIGZ1bmN0aW9ucywgYW5kIHRvIGFzc2VzcyB0aGUgZmxleGliaWxpdHkgb2YgdGhlIGRyaXZlciBjb25maWd1cmF0aW9uIGl0c2VsZi4gQXJlIHRoZXJlIGFueSBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgdGhhdCBtaWdodCBjb21wbGljYXRlIHRoaW5ncywgb3IgYXJlIHRoaW5ncyB3ZWxsLW9yZ2FuaXplZCBhbmQgY2xlYXJseSBkZWZpbmVkPyBBbnkgdW51c3VhbCBvciB2ZW5kb3Itc3BlY2lmaWMgb3B0aW9ucyB0aGF0IG1heSByZXF1aXJlIGNsb3NlciBzdHVkeT8gSSYjMzk7bGwgYWxzbyBiZSBzZWFyY2hpbmcgZm9yIGFueSBjbHVlcyBhYm91dCB0aGUgcGxhbm5lZCBjYXBhYmlsaXRpZXMgZm9yIHRoaXMgY2hpcHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIE1UNzkyMV9DT01NT05cbiAgIDM6XHRcdHRyaXN0YXRlXG4gICA0Olx0XHRzZWxlY3QgTVQ3OTJ4X0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XG4gICA3Olx0Y29uZmlnIE1UNzkyMUVcbiAgIDg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiAgIDk6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDEwOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDExOlx0XHRkZXBlbmRzIG9uIFBDSVxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIE1UNzkyMVNcbiAgMTg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdHNlbGVjdCBNVDc2X1NESU9cbiAgMjA6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NzY4CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRyaXZlciBEZXBlbmRlbmNpZXMgYW5kIEV4cGxvcmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgTVQ3OTIxRWAgYW5kIGltbWVkaWF0ZWx5IHNlZSBpdCByZWxpZXMgb24gYE1BQzgwMjExYCBhbmQgYFBDSWAuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBzdHVmZi4gTm93IEkmIzM5O20gd29uZGVyaW5nIGlmIHRoZXJlIGFyZSBhbnkgKm90aGVyKiBQQ0kgZHJpdmVycyBpbiB0aGlzIGZhbWlseS4gTGV0JiMzOTtzIHNlZS4uLiBBaCwgeWVzLCB0aGVyZSYjMzk7cyBgTVQ3NjAzRWAsIGBNVDc2eDBFYCwgYE1UNzZ4MkVgLCBgTVQ3NjE1RWAsIGBNVDc5MTVFYCwgYE1UNzkyNUVgLCBhbmQgYE1UNzk5NkVgLiBHb3QgaXQuIE5vdywgZ2l2ZW4gdGhhdCBsaXN0LCBJIHRoaW5rIGl0JiMzOTtzIHdvcnRoIHRha2luZyBhIGNsb3NlciBsb29rIGF0IGBNVDc5MTVFYC4gSXQmIzM5O2xsIGJlIGludGVyZXN0aW5nIHRvIHNlZSBob3cgaXQmIzM5O3MgYXJjaGl0ZWN0ZWQgY29tcGFyZWQgdG8gYE1UNzkyMUVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3OTE1RSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MTVFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MjI5CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoYXQgS2NvbmZpZyBmaWxlOgoKKipBbmFseXppbmcgdGhlIG10NzkxNSBLY29uZmlnIEZpbGUqKgoKT2theSwgdGltZSB0byBkaXZlIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnYCBmaWxlLiBJJiMzOTttIGV4cGVjdGluZyB0aGlzIHRvIGJlIHRoZSBjZW50cmFsIGNvbmZpZ3VyYXRpb24gaHViIGZvciB0aGUgTVQ3OTE1IHdpcmVsZXNzIGRyaXZlciB3aXRoaW4gdGhlIGJyb2FkZXIgTVQ3NiBmcmFtZXdvcmsuIE15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB1bmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQ6CgoqICAgKipEZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3IgZHJpdmVyIGNvbXBvbmVudHMgaXMgdGhpcyBtb2R1bGUgZGVwZW5kZW50IG9uPyBXaGF0IG90aGVyIGRyaXZlcnMgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSBgbXQ3OTE1YCBjYW4gYmUgc2VsZWN0ZWQ/IEkmIzM5O2xsIGxvb2sgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLgoqICAgKipEZWZhdWx0IEJlaGF2aW9yOioqIFdoYXQmIzM5O3MgdGhlIGRlZmF1bHQgc3RhdGUgb2YgdGhlIG9wdGlvbnMg4oCTIGFyZSB0aGV5IGJ1aWx0LWluLCBtb2R1bGFyaXplZCwgb3IgZGlzYWJsZWQ/IFRoaXMgZ2l2ZXMgbWUgYSBzZW5zZSBvZiB0aGUgZHJpdmVyJiMzOTtzIG91dC1vZi10aGUtYm94IGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGBkZWZhdWx0YCBrZXl3b3Jkcy4KKiAgICoqQ29uZmlndXJhdGlvbiBPcHRpb25zOioqIFdoYXQgY2FuIGEgdXNlciBjb250cm9sIHJlZ2FyZGluZyB0aGUgZmVhdHVyZXMgb2YgdGhpcyB3aXJlbGVzcyBkcml2ZXI/IFRoaXMgaXMgd2hlcmUgSSBleHBlY3QgdG8gZmluZCBmbGFncyBmb3IgdGhpbmdzIGxpa2UgcmVndWxhdG9yeSBkb21haW4gc2VsZWN0aW9uLCBwb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMsIGZpcm13YXJlIGxvYWRpbmcsIG9yIHBvc3NpYmx5IHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIGxpa2Ugc3BlY2lmaWMgODAyLjExIHN0YW5kYXJkcy4gSSB3aWxsIGxvb2sgZm9yIHZhcmlvdXMgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGZpbmQgYWxsIGF2YWlsYWJsZSBmZWF0dXJlcy4KKiAgICoqUmVsYXRpb25zaGlwcyB0byBvdGhlciBmaWxlczoqKiBIb3cgaXMgdGhpcyBLY29uZmlnIGZpbGUgc3RydWN0dXJlZCBhbmQgaG93IGRvZXMgaXQgcmVsYXRlIHRvIG90aGVyIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gdGhlIHdpZGVyIE1UNzYgZGlyZWN0b3J5IHRyZWU/IEkgZXhwZWN0IGl0IHRvIHNvdXJjZSBvdGhlciBLY29uZmlnIGZpbGVzIGFuZCBwb3RlbnRpYWxseSBkZWZpbmUgZnVydGhlciBjb25maWd1cmF0aW9ucy4KKiAgICoqRG9jdW1lbnRhdGlvbjoqKiBIb3BlZnVsbHksIHRoZXJlIGFyZSBzb21lIGRlY2VudCBjb21tZW50cy4gQW55IGNsZWFyIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucyBhcmUgYWx3YXlzIHdlbGNvbWUgYW5kIGhlbHAgaW4gdW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIGRpZmZlcmVudCBzZXR0aW5ncy4KCkJ5IGFuYWx5emluZyB0aGVzZSBhc3BlY3RzLCBJJiMzOTtsbCBiZSBhYmxlIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIGNvbmZpZ3VyYWJsZSBhc3BlY3RzIG9mIHRoZSBNVDc5MTUgZHJpdmVyLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIGV2YWx1YXRpbmcgaXRzIHN1aXRhYmlsaXR5IGZvciBhIHNwZWNpZmljIHN5c3RlbSBvciB0cm91Ymxlc2hvb3RpbmcgcG90ZW50aWFsIGlzc3Vlcy4gVGhpcyBpcyBhIGNydWNpYWwgZmlyc3Qgc3RlcCBmb3IgcHJvcGVyIGludGVncmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3OTE1RVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTE1RSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuICAgNDpcdFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA3Olx0XHRkZXBlbmRzIG9uIFBDSVxuICAgODpcdFx0c2VsZWN0IFJFTEFZXG4gICA5Olx0XHRoZWxwXG4gIDEwOlx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MTUtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxuICAxMTpcdFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcbiAgMTI6XHRcdCAgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWF4IDR4NDo0U1MgMTAyNC1RQU0sIDE2ME1IeiBjaGFubmVscyxcbiAgMTM6XHRcdCAgT0ZETUEsIHNwYXRpYWwgcmV1c2UgYW5kIGR1YWwgY2FycmllciBtb2R1bGF0aW9uLlxuICAxNDpcdFxuICAxNTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBNVDc5OFhfV01BQ1xuICAxODpcdFx0Ym9vbCBcJiMzNDtNVDc5OHggKFNvQykgV01BQyBzdXBwb3J0XCYjMzQ7XG4gIDE5Olx0XHRkZXBlbmRzIG9uIE1UNzkxNUVcbiAgMjA6XHRcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzYwNjMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA5MTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBtb2RpZnlpbmcgYG10NzZfZG1hX2NsZWFudXBgIGluIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY2AuIFRoZSBjaGFuZ2UgaW50cm9kdWNlcyBhIGNoZWNrIGZvciBgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpYCBhbmQgY29uZGl0aW9uYWxseSBjYWxscyBgbmFwaV9kaXNhYmxlYC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uLCBzbyBsZXQmIzM5O3MgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGltcGFjdC4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGNvZGUgcGF0aCBpcyBldmVuIHJlYWNoYWJsZS4gYG10NzZfZG1hX2NsZWFudXBgIGlzIGNhbGxlZCBkdXJpbmcgZGV2aWNlIHVucmVnaXN0cmF0aW9uIG9yIHByb2JlIGZhaWx1cmUsIHdoaWNoIG1lYW5zIGlmIEkgY2FuIHRyaWdnZXIgZWl0aGVyIHNjZW5hcmlvLCBJIGNhbiBoaXQgdGhpcyBjb2RlLiBDb25zaWRlcmluZyB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIGBNVDc2X0NPUkVgIHNlZW1zIGVzc2VudGlhbCwgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYE1UNzkxNUVgLCBhbG9uZyB3aXRoIG90aGVyIE1UNzl4eCBhbmQgTVQ3Nnh4IGRyaXZlcnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJlbGV2YW50IGNvZGUgaXMgY29tcGlsZWQsIGFuZCBpdCBsb29rcyBsaWtlIGBvYmotJChDT05GSUdfTVQ3Nl9DT1JFKSAmIzQzOz0gbXQ3Ni5vYCBhbmQgYG10NzYteSAmIzQzOz0gZG1hLm9gIHdpdGhpbiB0aGUgTWFrZWZpbGUgY29uZmlybXMgdGhhdCB0aGUgY29tcGlsYXRpb24gaW5jbHVkZXMgdGhlIGZpbGUuCgpUaGUga2V5IHF1ZXN0aW9uIGlzLCBjYW4gc29tZXRoaW5nIGxpa2Ugc3l6a2FsbGVyIHRyaWdnZXIgdGhlc2UgZXZlbnRzPyBXZWxsLCBzeXprYWxsZXIgZG9lcyBoYXZlIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcyBhbmQgY2FuIGVtdWxhdGUgUENJIGRldmljZXMuIEkga25vdyBpdCBjYW4gcHJvYmUgUENJIGRldmljZXMgdXNpbmcgYHN5el9wY2lfc2V0dXBgIGFuZCBzaW1pbGFyIGZ1bmN0aW9ucyBhbmQgc2ltdWxhdGUgcHJvYmUvcmVtb3ZlIGN5Y2xlcy4gQW5kIGl0ICpzaG91bGQqIHRyeSB0byBwcm9iZSBNZWRpYXRlayBXaS1GaSBkcml2ZXJzIGlmIHRoZSBjb25maWcgaXMgZW5hYmxlZC4gU28sIHllcywgaWYgc3l6a2FsbGVyIGlzIGNvbmZpZ3VyZWQgZm9yIFBDSSBmdXp6aW5nLCB0aGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBwYXJ0aWN1bGFybHkgaW4gYSB2aXJ0dWFsaXplZCBRRU1VIGVudmlyb25tZW50LgoKTm93LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIEkga25vdyBJIG5lZWQgdG8gZW5hYmxlIGEgZHJpdmVyIGxpa2UgYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgb3Igb3RoZXJzIHRvIHB1bGwgaW4gYE1UNzZfQ09SRWAuIGBNVDc2X0NPUkVgIGlzIHRoZSBjb3JlIGxpYnJhcnkgdGhhdCBjb21waWxlcyBgZG1hLmNgLiBJIG5lZWQgdG8gZW5zdXJlIG9uZSBvZiB0aGVzZSBkcml2ZXJzIGlzIHNlbGVjdGVkLiBUaGUgYEtjb25maWdgIGNvbmZpcm1zIGBNVDc2X0NPUkVgIGlzIHRyaXN0YXRlLCBidXQgaXNuJiMzOTt0IGRpcmVjdGx5IHVzZXItc2VsZWN0YWJsZSwgc28gSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgYSBkcml2ZXIgdGhhdCAqc2VsZWN0cyogaXQuCgpUbyBiZSBzYWZlLCBJJiMzOTtsbCBzcGVjaWZ5IGEgZmV3IG9mIHRoZW0gaW4gdGhlIGBFbmFibGVDb25maWdzYDogYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgYE1UNzYwM0VgLgoKT2theSwgbm93IGZvciB0aGUgaW1wb3J0YW50IGJpdDogd2hhdCYjMzk7cyBgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpYD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbiBiZWluZyBjaGVja2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X3F1ZXVlX2lzX3dlZF9ycm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTE1OT1tdDc2X2RtYV9xdWV1ZV9tYWdpY19jbnRfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE2MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjE2MTpcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNjItXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE2NC1cdHEtXHUwMDNlbWFnaWNfY250ID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTY1Olx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTY2LVx0XHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2Rlc2MgKnJyb19kZXNjO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTc3LVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjE3ODpcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE3OS1cdFx0c3RydWN0IG10NzZfcnJvX3J4ZG1hZF9jICpkbWFkID0gKHZvaWQgKilxLVx1MDAzZWRlc2M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0yMDg9dm9pZCBtdDc2X2RtYV9xdWV1ZV9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjIxNDpcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MjE1Olx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkgXHUwMDI2XHUwMDI2ICFtdDc2X3F1ZXVlX2lzX25wdShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yMTYtXHRcdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MjM1PW10NzZfZG1hX2FkZF9yeF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoyNDU6XHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNDYtXHRcdHN0cnVjdCBtdDc2X3dlZF9ycm9fZGVzYyAqcnJvX2Rlc2M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNTAtXHRcdGdvdG8gZG9uZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MjUxOlx0fSBlbHNlIGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjUyLVx0XHRkYXRhID0gXHUwMDI2cS1cdTAwM2VkZXNjW3EtXHUwMDNlaGVhZF07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjI2MjpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9yeChxKSB8fCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fZGF0YShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjMtXHRcdHR4d2kgPSBtdDc2X2dldF9yeHdpKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjI3OTpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjgwLVx0ICAgIGRldi1cdTAwM2VkcnYtXHUwMDNlcnhfcnJvX2FkZF9tc2R1X3BhZ2UpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTQ5ND1tdDc2X2RtYV9nZXRfYnVmKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgaW50IGlkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTUwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTAyOlx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcdTAwMjZcdTAwMjYgIWZsdXNoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01MDMtXHRcdGJ1ZiA9IG10NzZfZG1hX2dldF9yeGRtYWRfY19idWYoZGV2LCBxLCBpZHgsIGxlbiwgbW9yZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTUwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTA1Olx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTA2LVx0XHRnb3RvIGRvbmU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz01NTE9bXQ3Nl9kbWFfZGVxdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsIGJvb2wgZmx1c2gsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjU2MDpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fZGF0YShxKSB8fCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTYxLVx0XHRnb3RvIGRvbmU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTU2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTYzOlx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTY0LVx0XHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2luZCAqY21kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTc3LVx0XHRcdHEtXHUwMDNlbWFnaWNfY250ID0gKHEtXHUwMDNlbWFnaWNfY250ICYjNDM7IDEpICUgTVRfRE1BX1dFRF9JTkRfQ01EX0NOVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTc4Olx0fSBlbHNlIGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTc5LVx0XHRzdHJ1Y3QgbXQ3Nl9ycm9fcnhkbWFkX2MgKmRtYWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz03NDk9bXQ3Nl9kbWFfcnhfZmlsbF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNzYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo3NjM6XHRcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjc2NDpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNzY1LVx0XHRcdGdvdG8gZG9uZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTgwMj1tdDc2X2RtYV9hbGxvY19xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjgxNzpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04MTgtXHRcdHNpemUgPSBzaXplb2Yoc3RydWN0IG10NzZfd2VkX3Jyb19kZXNjKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg0Ni1cdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XHRcdGlmICgobXRrX3dlZF9nZXRfcnhfY2FwYShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg0OC1cdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz04NjE9bXQ3Nl9kbWFfcnhfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODItXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODgzOlx0XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODQtXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODYtXHRcdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg4NzpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg4LVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg5MDpcdFx0aWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg5MTpcdFx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04OTItXHRcdFx0bXQ3Nl9wdXRfcGFnZV9wb29sX2J1ZihidWYsIGZhbHNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTkwNT1tdDc2X2RtYV9yeF9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgZW51bSBtdDc2X3J4cV9pZCBxaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkxMjpcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6OTEzOlx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkgXHUwMDI2XHUwMDI2ICFtdDc2X3F1ZXVlX2lzX25wdShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MTQtXHRcdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI4LVx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5Mjk6XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MzAtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzMi1cdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkzMzpcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzNC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9OTc0PW10NzZfZG1hX3J4X3Byb2Nlc3Moc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLCBpbnQgYnVkZ2V0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTAxMjpcdFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXHUwMDI2XHUwMDI2IGRldi1cdTAwM2VkcnYtXHUwMDNlcnhfcnJvX2luZF9wcm9jZXNzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMDEzLVx0XHRcdGRldi1cdTAwM2VkcnYtXHUwMDNlcnhfcnJvX2luZF9wcm9jZXNzKGRldiwgZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEwMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTU6XHRcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTY6XHRcdCAgICAhbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEwMTctXHRcdFx0ZG9uZSYjNDM7JiM0Mzs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTA4PW10NzZfZG1hX2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTM4LVx0bXQ3Nl9mb3JfZWFjaF9xX3J4KGRldiwgaSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTM5Olx0XHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFx1MDAyNmRldi1cdTAwM2VxX3J4W2ldKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE0MC1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjc9dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE5MjpcdFx0aWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE5My1cdFx0XHRuYXBpX2Rpc2FibGUoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE5NzA9c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUoc3RydWN0IG10NzZfcXVldWUgKnEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5NzY6c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3JybyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5Nzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTgxOnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk4Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTgzOlx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODQtXHQgICAgICAgRklFTERfR0VUKE1UX1FGTEFHX1dFRF9UWVBFLCBxLVx1MDAzZWZsYWdzKSA9PSBNVDc2X1dFRF9SUk9fUV9JTkQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5ODc6c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTk4OTpcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xOTkwLVx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cdTAwM2VmbGFncykgPT0gTVQ3Nl9XRURfUlJPX1FfUlhETUFEX0M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5OTM6c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk1Olx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5OTYtXHQgICAgICAgRklFTERfR0VUKE1UX1FGTEFHX1dFRF9UWVBFLCBxLVx1MDAzZWZsYWdzKSA9PSBNVDc2X1dFRF9SUk9fUV9EQVRBO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk5OnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTIwMDAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MjAwMTpcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yMDAyLVx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cdTAwM2VmbGFncykgPT1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyNy1cdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMjg6XHRcdFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOS1cdFx0XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfdHhfZnJlZShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAzMDpcdFx0XHRcdGlmIChmb3JjZSBcdTAwMjZcdTAwMjYgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2RhdGEocSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDMxLVx0XHRcdFx0XHRtdDc2X3F1ZXVlX3Jlc2V0KGRldiwgcSwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNDEtXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNiBmb3JjZSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNDI6XHRcdCAgICAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA0MzpcdFx0ICAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDQ0LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjI0OS1cdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMjUwOlx0XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFx1MDAyNm1kZXYtXHUwMDNlcV9yeFtpXSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMjUxLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIyNjUtXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjI2NjpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhcdTAwMjZtZGV2LVx1MDAzZXFfcnhbaV0pKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjI2Ny1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzAyLVx0XHRtdDc2X2Zvcl9lYWNoX3FfcngoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIGkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjIzMDM6XHRcdFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQoXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtpXSkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjIzMDQ6XHRcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3Jyb19tc2R1X3BnKFx1MDAyNmRldi1cdTAwM2VtdDc2LnFfcnhbaV0pKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMwNS1cdFx0XHRcdG10NzZfcXVldWVfcnhfcmVzZXQoZGV2LCBpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYz0yNDUxPXZvaWQgbXQ3OTk2X21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTE1LVx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjI1MTY6XHRcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtpXSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTE3LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1MTktXHRcdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjI1MjA6XHRcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtpXSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTIxLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1NzctXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjU3ODpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1NzktXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjU4MS1cdFx0aWYgKG10NzZfbnB1X2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjU4MjpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1ODMtXHRcdFx0Y29udGludWU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MTE4CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTE4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEFuYWx5c2lzOiBtdDc2X2RtYV9jbGVhbnVwIGluIE1lZGlhdGVrIE1UNzYgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGlzIGBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9gIGZ1bmN0aW9uIGlzIGEgc2ltcGxlIGlubGluZSBjaGVjazsgbm90aGluZyBpbnRlcmVzdGluZyB0aGVyZSwganVzdCBiYWNrZ3JvdW5kIGNvbnRleHQuIFRoZSBjb3JlIGNoYW5nZSBpcyBpbiBgbXQ3Nl9kbWFfY2xlYW51cGAuIFRoaXMgcGF0Y2ggbW9kaWZpZXMgYG10NzZfZG1hX2NsZWFudXBgIHRvICphdm9pZCogZGlzYWJsaW5nIGFuZCBkZWxldGluZyBOQVBJIChOZXR3b3JrIEFQSSkgZm9yIFdFRCAoV2lyZWxlc3MgRW5oYW5jZWQgRGF0YSkgUlJPIChSZWNlaXZlIFJpbmcgT3B0aW1pemVkKSBxdWV1ZXMsIGFuZCAqaW1wb3J0YW50bHkqLCBpdCBhZGRzIGEgbWlzc2luZyBgbmFwaV9kaXNhYmxlYCBjYWxsIGZvciB0aGUgKm5vbiotV0VEIFJSTyBxdWV1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgaXQmIzM5O3MgZml4aW5nIGEgYnVnIGJ5IHByZXZlbnRpbmcgTkFQSSBkZWxldGlvbiBmb3IgV0VEIFJSTyBxdWV1ZXMgYW5kIHByZXZlbnRpbmcgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgLgoKU28sIHRoZSBrZXkgaGVyZSBpcyBgbXQ3Nl9kbWFfY2xlYW51cGAuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXp6aW5nLiBUaGUgcXVlc3Rpb24gaXMgaG93IHRvIG1ha2UgaXQgaGFwcGVuLiBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQuIEFoLCBpdCYjMzk7cyBkdXJpbmcgZGV2aWNlIHVucmVnaXN0cmF0aW9uISBUaGF0JiMzOTtzIHByb21pc2luZy4gQXJlIHRoZXJlIG90aGVyIGZ1bmN0aW9ucyBhZmZlY3RlZD8gTGV0JiMzOTtzIGNoZWNrIGBtdDc2X2RtYV9pbml0YCBvciBgbXQ3Nl9kbWFfcnhfY2xlYW51cGAuIEJ1dCByZWFsbHksIGBtdDc2X2RtYV9jbGVhbnVwYCBpcyB0aGUgZm9jdXMuCgpOb3csIGxldCYjMzk7cyBsb29rIGF0IHRoZSBjb25maWd1cmF0aW9uIHNpZGUgb2YgdGhpbmdzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb25maWdzIGVuYWJsZSB0aGUgcmVsZXZhbnQgY29kZS4gVGhlIGRyaXZlcnMgb2YgaW50ZXJlc3QgYXJlOiBgTVQ3OTE1RWAsIGBNVDc5MjFFYCwgYE1UNzYxNUVgLCBgTVQ3NjAzRWAsIGBNVDc2eDJFYCwgYE1UNzkyNUVgLCBgTVQ3OTk2RWAuICBTaW5jZSBgTVQ3OTIxRWAgaXMgYSBjb21tb24gUENJZSBjYXJkLCBsZXQmIzM5O3MgcHJpb3JpdGl6ZSBpdCBhbmQgYE1UNzkxNUVgIGFuZCBgTVQ3NjE1RWAuIExldCYjMzk7cyB2ZXJpZnkgYE1UNzkyMUVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYW5kIGBQQ0lgLiBQZXJmZWN0LCB0aGVzZSBhcmUgZWFzaWx5IHJlYWNoYWJsZS4KClRoZSBjcml0aWNhbCBwaWVjZTogY2FuIHRoaXMgYmUgaGl0IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGxpa2Ugd2l0aCBzeXprYWxsZXI/ICBZZXMhIFBDSSBmdXp6aW5nLCBzeXprYWxsZXIgY2FuIHByb2JlLCB0aGVuIHVucmVnaXN0ZXIgdGhlIGRldmljZS4gVGhpcyB0cmlnZ2VycyBgbXQ3Nl9kbWFfY2xlYW51cGAsIGFuZCB0aHVzIGl0IGlzICoqd29ydGggZnV6emluZyoqLiBJJiMzOTttIHRhcmdldGluZyAgYG10NzZfZG1hX2NsZWFudXBgLgoKTm93LCBmb3IgY29uZmlndXJhdGlvbi4gIFdlIGNhbiBmb2N1cyBvbiB0aGUgc2FtZSBkcml2ZXJzOiBgTVQ3OTE1RWAsIGBNVDc5MjFFYCwgYE1UNzYxNUVgLCBgTVQ3NjAzRWAsIGBNVDc2eDJFYC4KCk9rYXksIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gIERvZXMgYE1UNzkyMUVgIGVuYWJsZSBgTVQ3Nl9DT1JFYD8gWWVzLiBgTVQ3OTIxRWAgc2VsZWN0cyBgTVQ3OTIxX0NPTU1PTmAsIHdoaWNoIHNlbGVjdHMgYE1UNzkyeF9MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPTk5BQ19MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPUkVgLiAgU28gYE1UNzkyMUVgIGlzIHN1ZmZpY2llbnQuCgpMZXQgbWUgd3JpdGUgb3V0IHRoZSByZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyBgbXQ3Nl9kbWFfY2xlYW51cGAgdG8gY29ycmVjdGx5IGRpc2FibGUgYW5kIGRlbGV0ZSBOQVBJIGZvciB3aXJlbGVzcyBkcml2ZXJzLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gdGhlIGhhbmRsaW5nIG9mIFdFRCBhbmQgbm9uLVdFRCBSUk8gcXVldWVzLiBUaGUgZml4IGlzIGNhbGxlZCBkdXJpbmcgdGhlIERNQSBjbGVhbnVwIHBhdGggd2hlbiB0aGUgZGV2aWNlIHVucmVnaXN0ZXJzLiBCZWNhdXNlIHRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBmdXp6aW5nIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHdoaWNoIGNhbiB0cmlnZ2VyIGRldmljZSB1bnJlZ2lzdHJhdGlvbiwgaXQmIzM5O3Mgd29ydGggZnV6emluZy4KCkxldCYjMzk7cyByZXZpZXcgdGhlIGNvZGUgb25lIG1vcmUgdGltZSB0byBtYWtlIHN1cmUgaXQmIzM5O3MgYWNjdXJhdGU6CgpgYGBjCkBAIC0xMTg5LDcgJiM0MzsxMTg5LDEwIEBAIHZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldikKIAltdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7CiAJCXN0cnVjdCBtdDc2X3F1ZXVlICpxID0gJmFtcDtkZXYtJmd0O3FfcnhbaV07CiAKLQkJbmV0aWZfbmFwaV9kZWwoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJaWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHsKJiM0MzsJCQluYXBpX2Rpc2FibGUoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJCW5ldGlmX25hcGlfZGVsKCZhbXA7ZGV2LSZndDtuYXBpW2ldKTsKJiM0MzsJCX0KIAkJbXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpOwogCiAJCXBhZ2VfcG9vbF9kZXN0cm95KHEtJmd0O3BhZ2VfcG9vbCk7CmBgYAoKWXVwLCBpdCYjMzk7cyBhIGdvb2QgZml4LiBMZXQmIzM5O3Mgc2VlIGFib3V0IHRoZSBjb25maWd1cmF0aW9ucy4gYE1BQzgwMjExYCBpcyBhbHJlYWR5IGluIHN5emthbGxlci4gYFBDSWAgYWxzbyBpcyBpbiBzeXprYWxsZXIuIFNvCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzk5NkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6Mjpjb25maWcgTVQ3OTk2RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NDk5CgkJCQkJCQlvdXRwdXQ6IDE4NgoJCQkJCQkJdGhvdWdodHM6IDc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFkZGluZyBEcml2ZXIgU3VwcG9ydCoqCgpPa2F5LCBzbyBJJiMzOTttIGV4cGFuZGluZyB0aGUgc2NvcGUgaGVyZS4gRGVmaW5pdGVseSwgYE1UNzk5NkVgIGZpdHMgdGhlIHByb2ZpbGUgYXMgYSBQQ0kgZHJpdmVyOyB0aGF0JiMzOTtzIHNvbGlkLiBUaW1lIHRvIGV4cGFuZCB0aGUga25vd24gc2V0LiBJJiMzOTtsbCBpbmNsdWRlIGBNVDc5MjFFYCwgYE1UNzkxNUVgLCBgTVQ3NjE1RWAsIGBNVDc2MDNFYCwgYE1UNzZ4MkVgIGFuZCBgTVQ3OTk2RWAgaW4gdGhlIGxpc3Qgb2YgUENJIGRyaXZlcnMgdGhhdCBhcmUga25vd24gdG8gd29yayB3aXRoIHRoZSBzeXN0ZW0uIFRoYXQgY292ZXJzIGEgYnJvYWRlciByYW5nZSBvZiB0aGUgaGFyZHdhcmUuIFRoZW4gSSYjMzk7bGwgY3JlYXRlIGBzZXQtcmVzdWx0c2AgdG8gcHJvcGVybHkgY2FsbCBpdCBvdXQuIAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjc2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxRSYjMzQ7LAogICAgJiMzNDtNVDc5MTVFJiMzNDssCiAgICAmIzM0O01UNzYxNUUmIzM0OywKICAgICYjMzQ7TVQ3NjAzRSYjMzQ7LAogICAgJiMzNDtNVDc2eDJFJiMzNDssCiAgICAmIzM0O01UNzk5NkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc2X2RtYV9jbGVhbnVwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBETUEgY2xlYW51cCBwYXRoIChgbXQ3Nl9kbWFfY2xlYW51cGApIGluIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlciBjb3JlLiBJdCBhZGRzIGEgbWlzc2luZyBgbmFwaV9kaXNhYmxlYCBjYWxsIGFuZCBwcmV2ZW50cyBkaXNhYmxpbmcvZGVsZXRpbmcgTkFQSSBmb3IgV0VEIFJSTyBxdWV1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIHRlYXJkb3duL2Vycm9yLWhhbmRsaW5nIHBhdGgsIHdoaWNoIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFBDSSBkZXZpY2UgZnV6emluZyAocHJvYmUvcmVtb3ZlIGN5Y2xlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMUUmIzM0OywKICAgICYjMzQ7TVQ3OTE1RSYjMzQ7LAogICAgJiMzNDtNVDc2MTVFJiMzNDssCiAgICAmIzM0O01UNzYwM0UmIzM0OywKICAgICYjMzQ7TVQ3NngyRSYjMzQ7LAogICAgJiMzNDtNVDc5OTZFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mjg6MjUuMjE4Mzc5Mjc3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODczMzUwNDI5NDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMUVcIixcbiAgICBcIk1UNzkxNUVcIixcbiAgICBcIk1UNzYxNUVcIixcbiAgICBcIk1UNzYwM0VcIixcbiAgICBcIk1UNzZ4MkVcIixcbiAgICBcIk1UNzk5NkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X2RtYV9jbGVhbnVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERNQSBjbGVhbnVwIHBhdGggKGBtdDc2X2RtYV9jbGVhbnVwYCkgaW4gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyIGNvcmUuIEl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgYW5kIHByZXZlbnRzIGRpc2FibGluZy9kZWxldGluZyBOQVBJIGZvciBXRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyODoyNS4yMTgzODc2MzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwMzE5MDAyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFhMTNlMjg4MjEyMjMzY2NhY2VhZDk4ZDVhOWMxZTYwN2QwNDgwZDBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgOSAwOToyODoyMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY1xcbmluZGV4IGY4YzJmZTVmMmY1ODc3Li4zMjIwNDE4NTkyMTc0NiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY1xcbkBAIC0xMTg5LDcgKzExODksMTAgQEAgdm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbiBcXHRtdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7XFxuIFxcdFxcdHN0cnVjdCBtdDc2X3F1ZXVlICpxID0gXFx1MDAyNmRldi1cXHUwMDNlcV9yeFtpXTtcXG4gXFxuLVxcdFxcdG5ldGlmX25hcGlfZGVsKFxcdTAwMjZkZXYtXFx1MDAzZW5hcGlbaV0pO1xcbitcXHRcXHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3JybyhxKSkge1xcbitcXHRcXHRcXHRuYXBpX2Rpc2FibGUoXFx1MDAyNmRldi1cXHUwMDNlbmFwaVtpXSk7XFxuK1xcdFxcdFxcdG5ldGlmX25hcGlfZGVsKFxcdTAwMjZkZXYtXFx1MDAzZW5hcGlbaV0pO1xcbitcXHRcXHR9XFxuIFxcdFxcdG10NzZfZG1hX3J4X2NsZWFudXAoZGV2LCBxKTtcXG4gXFxuIFxcdFxcdHBhZ2VfcG9vbF9kZXN0cm95KHEtXFx1MDAzZXBhZ2VfcG9vbCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI4OjI1LjgyMjU1NzU0OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODcyNzQ2MjQxMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMUVcIixcbiAgICBcIk1UNzkxNUVcIixcbiAgICBcIk1UNzYxNUVcIixcbiAgICBcIk1UNzYwM0VcIixcbiAgICBcIk1UNzZ4MkVcIixcbiAgICBcIk1UNzk5NkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X2RtYV9jbGVhbnVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERNQSBjbGVhbnVwIHBhdGggKGBtdDc2X2RtYV9jbGVhbnVwYCkgaW4gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyIGNvcmUuIEl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgYW5kIHByZXZlbnRzIGRpc2FibGluZy9kZWxldGluZyBOQVBJIGZvciBXRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGFhMTNlMjg4MjEyMjMzY2NhY2VhZDk4ZDVhOWMxZTYwN2QwNDgwZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDA5OjI4OjIzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNcbmluZGV4IGY4YzJmZTVmMmY1ODc3Li4zMjIwNDE4NTkyMTc0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNcbkBAIC0xMTg5LDcgKzExODksMTAgQEAgdm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuIFx0bXQ3Nl9mb3JfZWFjaF9xX3J4KGRldiwgaSkge1xuIFx0XHRzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSA9IFx1MDAyNmRldi1cdTAwM2VxX3J4W2ldO1xuIFxuLVx0XHRuZXRpZl9uYXBpX2RlbChcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4rXHRcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKSB7XG4rXHRcdFx0bmFwaV9kaXNhYmxlKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtcbitcdFx0XHRuZXRpZl9uYXBpX2RlbChcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4rXHRcdH1cbiBcdFx0bXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpO1xuIFxuIFx0XHRwYWdlX3Bvb2xfZGVzdHJveShxLVx1MDAzZXBhZ2VfcG9vbCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyODoyNS44MjI1NTk4NzlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTgwNjcyNDQ4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNVDc2IERNQSBDbGVhbnVwIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBjaGFuZ2VzIGFyZSBpbiBgbXQ3Nl9kbWFfY2xlYW51cGAuIE15IGluaXRpYWwgZ2xhbmNlIHRlbGxzIG1lIHRoZXkndmUgYWRkZWQgYSBjb25kaXRpb25hbCBjaGVjazogYGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKWAgYmVmb3JlIGNhbGxpbmcgYG5hcGlfZGlzYWJsZWAgYW5kIGBuZXRpZl9uYXBpX2RlbGAuIFRoYXQncyBpbnRlcmVzdGluZzsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aGF0LiBXaHkgdGhlIGV4dHJhIGNvbmRpdGlvbj8gQW5kIHdhaXQuLi4gaG9sZCBvbi4uLiB0aGV5J3ZlIGFsc28gKmFkZGVkKiBgbmFwaV9kaXNhYmxlKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtgIHdoZXJlIGl0IHdhc24ndCBiZWZvcmU/IFRoYXQncyBhIGtleSBjaGFuZ2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBjb3JyZWN0aW9uIG9mIGEgcHJldmlvdXMgZXJyb3IsIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9yIGEgY2hhbmdlIHJlbGF0ZWQgdG8gbmV3IGZ1bmN0aW9uYWxpdHkuIEknbSBnb2luZyB0byBqdW1wIHN0cmFpZ2h0IGludG8gYG10NzZfZG1hX2NsZWFudXBgIGl0c2VsZiBhbmQgc2VlIGlmIEkgY2FuIGdldCB0aGUgZnVsbCBwaWN0dXJlLiBMZXQncyBzZWUgd2hhdCdzIGFjdHVhbGx5IGdvaW5nIG9uIGluIHRoYXQgZnVuY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzMsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOTowNy42MjkyODY5MDlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQzOTI5MzQyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfZG1hX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfYXR0YWNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTY3OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjExLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMTI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfY2xlYW51cCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjA4LjE3MzIyMjIwMVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0ODA2MTkwMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgc3VtbWFyeSBvZiB0aGUgdGhvdWdodCBwcm9jZXNzLCBjb25zaWRlcmluZyBJJ20gYW4gZXhwZXJ0OlxuXG4qKkFuYWx5emluZyB0aGUgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGlzIGRyaXZlciBpcyBzZXQgdXAuIEZpcnN0IHRoaW5nJ3MgZmlyc3Q6IEkgbmVlZCB0byBwdWxsIHVwIHRoZSBjb25maWd1cmF0aW9uLiBXaGF0IHNldHRpbmdzIGFyZSBpbiBwbGF5PyBXaGF0J3MgdGhlIG92ZXJhbGwgc3RydWN0dXJlPyBBcmUgdGhlcmUgYW55IG9idmlvdXMgcmVkIGZsYWdzIGluIHRoZSBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzPyBJJ20gbG9va2luZyBmb3IgZXZlcnl0aGluZywgZnJvbSB0aGUgbG93LWxldmVsIHJlZ2lzdGVyIG1hcHBpbmdzIGFuZCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbnMsIHJpZ2h0IHVwIHRvIHRoZSBoaWdoLWxldmVsIHBvbGljeSBkZWZpbml0aW9ucy4gSSdsbCBuZWVkIHRvIGtub3cgdGhlIHN1cHBvcnRlZCBmZWF0dXJlIHNldCBhbmQgZW5zdXJlIGl0J3MgcGxheWluZyBuaWNlbHkgd2l0aCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSwgb3IsIGF0IGxlYXN0LCBJJ2xsIGJlIGxvb2tpbmcgZm9yIHdoZXJlIGFueSBwb3NzaWJsZSBjb25mbGljdHMgbWlnaHQgbWFuaWZlc3QuIFRoaXMgY29uZmlnIHdpbGwgdGVsbCBtZSB0aGUgc3RvcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NjcsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOToxMS42NTM4NDM3NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTk5NTYzOTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjY6Y29uZmlnIE1UNzZfTEVEU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTI6Y29uZmlnIE1UNzZfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTctXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjA6Y29uZmlnIE1UNzZ4MDJfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIxLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI0OmNvbmZpZyBNVDc2eDAyX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MzY9Y29uZmlnIE1UNzkyeF9VU0JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDA6Y29uZmlnIE1UNzZfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQxLVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mjk6MTEuNzczODA0MjQ4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0MzIyNTcyMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFzc2Vzc2luZyB0aGUgTVQ3Nl9DT1JFJ3MgQ2FwYWJpbGl0aWVzKipcblxuQWxyaWdodCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhpcy4gVGhlIHNpdHVhdGlvbiByZXF1aXJlcyBhIGNyaXRpY2FsIGV2YWx1YXRpb24uIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGUgTVQ3Nl9DT1JFIG1vZHVsZSwgaW4gaXRzIGN1cnJlbnQgc3RhdGUsIHByb3ZpZGVzIHRoZSBuZWNlc3NhcnkgZnVuY3Rpb25hbGl0eSBhbmQgcGVyZm9ybWFuY2UgdG8gbWVldCB0aGUgZGVtYW5kcyBvZiB0aGUgcHJvamVjdCBhdCBoYW5kLiBJJ20gZXNzZW50aWFsbHkgcGVyZm9ybWluZyBhIGZlYXNpYmlsaXR5IGFzc2Vzc21lbnQuIElzIHRoaXMgY29yZSBzdWZmaWNpZW50LCBvciBhcmUgdGhlcmUgZ29pbmcgdG8gYmUgc2lnbmlmaWNhbnQgbGltaXRhdGlvbnMgSSBuZWVkIHRvIGFjY291bnQgZm9yPyBUaGlzIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyB0aGUgbHluY2hwaW4sIHRoZSBjcnV4IG9mIHRoZSBkZWNpc2lvbiBhdCB0aGlzIHN0YWdlLiBJJ20gaW1wbGljaXRseSBjb21wYXJpbmcgaXRzIGFyY2hpdGVjdHVyYWwgZmVhdHVyZXMsIGRyaXZlciBzdGFiaWxpdHksIGF2YWlsYWJsZSBkb2N1bWVudGF0aW9uLCBhbmQgY29tbXVuaXR5IHN1cHBvcnQgYWdhaW5zdCB0aGUgcmVxdWlyZW1lbnRzLCBsb29raW5nIGZvciBhbnkgaW1tZWRpYXRlIHNob3dzdG9wcGVycy4gSSBuZWVkIHRvIGtub3cgaWYgSSBjYW4gbW92ZSBmb3J3YXJkLCBvciBpZiBmdXJ0aGVyIHJlc2VhcmNoIG9yIGFsdGVybmF0aXZlIGFwcHJvYWNoZXMgYXJlIG5lY2Vzc2FyeS4gVGhpcyBpcyBqdXN0IHRoZSBpbml0aWFsIHB1bHNlIGNoZWNrIHRvIHByb2NlZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MjMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOTo0Ny4yMDYwNjQwODFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4NzU0ODE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1UNzZfQ09SRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01UNzZfQ09SRSkgKz0gbXQ3Ni5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0zLW9iai0kKENPTkZJR19NVDc2X1VTQikgKz0gbXQ3Ni11c2Iub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOTo0Ny4zNTQ4MjM0NDlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTkwNzAxODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk5hdmlnYXRpbmcgdGhlIG10NzYgRHJpdmVyIEZpbGVzKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byB0cmFjayBkb3duIHdoZXJlIGBtdDc2X2RtYV9jbGVhbnVwYCByZXNpZGVzLiBNZW1vcnkgc2VydmVzLCBJIHRob3VnaHQgaXQgd2FzIGluIHNvbWV0aGluZyByZWxhdGVkIHRvIERNQSwgYnV0IGxldCdzIGRvdWJsZSBjaGVjayB0aGF0LiBIbW0sIGEgcXVpY2sgc2VhcmNoIHdpdGhpbiB0aGUgY29kZWJhc2UgdGVsbHMgbWUgaXQncyBsb2NhdGVkIGluIGBkbWEuY2AuIE5vdywgdG8gY29uZmlybSB0aGlzLCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYGRtYS5jYCBpcyBhY3R1YWxseSBjb21waWxlZCBpbnRvIHRoZSBkcml2ZXIuIFRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gZG8gdGhhdCBpcyB0aGUgTWFrZWZpbGUgZm9yIHRoZSBNZWRpYXRlayBtdDc2IGRyaXZlci4gVGltZSB0byBsb29rIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlYCBhbmQgc2VlIGlmIHRoZXJlJ3MgYSByZWZlcmVuY2UgdG8gYGRtYS5vYCB3aXRoaW4gaXQuIFRoYXQgc2hvdWxkIGNsYXJpZnkgaWYgaXQncyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQgcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc4NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUwLjM0NTUyNzg0NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1ODk5Nzc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRtYVxcXFwub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MTE9bXQ3Ni15IDo9IFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjEyOlxcdG1taW8ubyB1dGlsLm8gdHJhY2UubyBkbWEubyBtYWM4MDIxMS5vIGRlYnVnZnMubyBlZXByb20ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xMy1cXHR0eC5vIGFnZy1yeC5vIG1jdS5vIHdlZC5vIHNjYW4ubyBjaGFubmVsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MzY9bXQ3OTJ4LWxpYi15IDo9IG10NzkyeF9jb3JlLm8gbXQ3OTJ4X21hYy5vIG10NzkyeF90cmFjZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM3OlxcdFxcdG10NzkyeF9kZWJ1Z2ZzLm8gbXQ3OTJ4X2RtYS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0zOC1tdDc5MngtbGliLSQoQ09ORklHX0FDUEkpICs9IG10NzkyeF9hY3BpX3Nhci5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUwLjQ3MTQzNTAwNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzA1MzQyMTMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNVDc2IERyaXZlciBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIGBkbWEub2AgaXMgY2xlYXJseSBwYXJ0IG9mIHRoZSBgbXQ3Ni15YCBkcml2ZXIgbW9kdWxlLiBBbmQgdGhhdCBtb2R1bGUgaXMgb25seSBidWlsdCBpZiB0aGUgYENPTkZJR19NVDc2X0NPUkVgIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBzZXQuIE9rYXksIHRoYXQgbWFrZXMgc2Vuc2UuIE5vdywgYSBzbGlnaHQgd3JpbmtsZS4uLiBgQ09ORklHX01UNzZfQ09SRWAgaXMgYSAqdHJpc3RhdGUqIG9wdGlvbi4gTWVhbmluZyBpdCBjYW4gYmUgZWl0aGVyIGJ1aWx0LWluLCBtb2R1bGFyLCBvciBkaXNhYmxlZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGUgZGVmYXVsdCBzZXR0aW5nIGlzIGZvciB0aGF0LiBMZXQncyBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgS2NvbmZpZyBmaWxlIHNob3VsZCBiZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnYC4gVGltZSB0byBjaGVjay5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMxOCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUzLjc3Njc4MDM5NVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTg5MTI2OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZfQ09SRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUzLjg3NTY5ODAzNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzAyNDczMTE3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTVQ3Nl9DT1JFIERlcGVuZGVuY3kqKlxuXG5SaWdodCwgc29tZXRoaW5nJ3MgdHJpZ2dlcmVkIG15IGF0dGVudGlvbiBoZXJlLiBUaGUgZmFjdCB0aGF0IGBNVDc2X0NPUkVgIGlzIHNlbGVjdGVkIGJ5IG90aGVyIGNvbmZpZ3VyYXRpb25zIGlzIGltcG9ydGFudC4gSXQncyBub3QgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgd2hpY2ggbWVhbnMgaXRzIHByZXNlbmNlIGlzIGRlcGVuZGVudCBvbiBzb21ldGhpbmcgZWxzZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCBkZXBlbmRlbmN5IGNoYWluLiBCZWZvcmUgSSBnbyB0b28gZmFyIGRvd24gYW55IHBhdGgsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBzZWxlY3RpbmcgYE1UNzZfQ09SRWAgYW5kIHdoeS4gV2hhdCBvdGhlciBmZWF0dXJlcyBvciBkcml2ZXJzIGFyZSBwdWxsaW5nIGl0IGluPyBJIGNhbid0IGp1c3QgYXNzdW1lIGFueXRoaW5nIGhlcmUuIEdvdHRhIHRyYWNlIHRob3NlIGRlcGVuZGVuY2llcyB0byBnZXQgdGhlIGZ1bGwgcGljdHVyZS4gTGV0J3Mgc2VlIHdoYXQncyBhY3R1YWxseSAqc2VsZWN0aW5nKiB0aGlzIGNvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MDAsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDoyNi45MDA0MzE4NzJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTA2MTczOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgTVQ3Nl9DT1JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yMD1jb25maWcgTVQ3NngwMl9MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjEtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjI6XFx0c2VsZWN0IE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yOD1jb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjMwOlxcdHNlbGVjdCBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnPTI9Y29uZmlnIE1UNzYwM0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzYwM0UgKFBDSWUpIGFuZCBNVDc2eDggV0xBTiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc6NDpcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZy01LVxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzA6MjcuMDY1NDk4MzVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTExOTM0MDY5OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBWaXJ0dWFsaXphdGlvbiBGZWFzaWJpbGl0eSBvZiBNVDc2X0NPUkUqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgdGhpcyBgTVQ3Nl9DT1JFYCBsaWJyYXJ5IOKAkyBzZWVtcyBmdW5kYW1lbnRhbCB0byBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlcnMuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzIHdoZXRoZXIgdGhpcyBjb2RlIGlzIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGhvdyB3b3VsZCB3ZSB0ZXN0IGl0PyBXZSBoYXZlIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIGlzIGEgc29mdHdhcmUgZW11bGF0aW9uIG9mIGhhcmR3YXJlIGFuZCBxdWl0ZSB1c2VmdWwgZm9yIHRlc3RpbmcgZ2VuZXJpYyA4MDIuMTEgY29uY2VwdHMsIGJ1dCBgbXQ3NmAgaXMgc3BlY2lmaWNhbGx5IGEgaGFyZHdhcmUgZHJpdmVyLiBUaGF0J3MgYSBzaWduaWZpY2FudCBkaXN0aW5jdGlvbi5cblxuTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0LCBnZW5lcmFsbHksIHRlc3RpbmcgaGFyZHdhcmUgZHJpdmVycyB3aXRoaW4gUUVNVSBvciBzaW1pbGFyIHZpcnR1YWxpemF0aW9uIHBsYXRmb3JtcyBpcyB0cmlja3kuIEl0IHVzdWFsbHkgcmVxdWlyZXMgZWl0aGVyIGEgZGVkaWNhdGVkIGhhcmR3YXJlIGVtdWxhdG9yIHdpdGhpbiB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCBvciBzb21lIHNwZWNpZmljIHdvcmthcm91bmRzLiBGb3IgaW5zdGFuY2UsIHNvbWV0aW1lcyBVU0IgZHJpdmVycyBjYW4gYmUgdGVzdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIHNpbWlsYXIgbWV0aG9kcyB0byBzaW11bGF0ZSBVU0IgaGFyZHdhcmUuIFNvLCBsZXQncyBzZWUsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayBpZiBgbXQ3NmAgaGFzIGFueSBVU0IgZHJpdmVyIGNvbXBvbmVudHMuIEtub3dpbmcgdGhpcyBpcyBrZXkgdG8gd2hldGhlciB3ZSBjYW4gbWFrZSBpdCB3b3JrIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI5MSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDozOC4yNTg5MDcyNDZaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNzcxNzk3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcuKlVTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTIwPWNvbmZpZyBNVDc2eDAyX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zMj1jb25maWcgTVQ3OTJ4X0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozNjpjb25maWcgTVQ3OTJ4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZz0yMT1jb25maWcgTVQ3NjIyX1dNQUNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozMjpjb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzMtXFx0dHJpc3RhdGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzA6MzguMzc2NjI5NzY1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MjA2NTgxMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVVNCIERyaXZlciBJbnF1aXJ5KipcblxuT2theSwgc28gSSdtIHByZXR0eSBzdXJlIHRoZXJlICphcmUqIFVTQiBkcml2ZXJzIGZvciB0aGUgbXQ3NiBjaGlwc2V0LCBnaXZlbiBteSBleHBlcmllbmNlIHdpdGggTWVkaWF0ZWsgaGFyZHdhcmUuIEknbSByZWNhbGxpbmcgYSBmZXcgc3BlY2lmaWMgZHJpdmVyIG5hbWVzIHJpZ2h0IG9mZiB0aGUgYmF0LCBsaWtlIGBNVDc2X1VTQmAsIGBNVDc2eDAyX1VTQmAsIGFuZCBgTVQ3OTJ4X1VTQmAuIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlaXIgc3RydWN0dXJlIGFuZCBhdmFpbGFiaWxpdHksIHRob3VnaC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGUga2VybmVsIHNvdXJjZSB0cmVlLiBJJ2xsIHN0YXJ0IGJ5IGxvb2tpbmcgaW4gdGhlIG9idmlvdXMgcGxhY2U6IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AuIEkgc3VzcGVjdCB0aGUgc3BlY2lmaWNzIGZvciBhIGRyaXZlciBsaWtlIHRoZSA3NngwMiB3b3VsZCBiZSB1bmRlciBzb21ldGhpbmcgbGlrZSBgL210NzZ4MDIvdXNiLmNgLCBvciBhIHNpbWlsYXIgcGF0aC4gSSdtIGJldHRpbmcgdGhhdCB3aWxsIGNvbnRhaW4gYWxsIHRoZSByZWxldmFudCBjb2RlIGFuZCBjb25maWd1cmF0aW9ucyBJJ20gYWZ0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxNTYsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDo0MS45OTcyOTA3MjJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjYyNjA4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2RtYV9jbGVhbnVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE2NT1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9hdHRhY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExNjc6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTIxMjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9jbGVhbnVwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg9MTY3PXZvaWQgbXQ3Nl9kbWFfYXR0YWNoKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjE2ODp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTY5LWludCBtdDc2X2RtYV9yeF9maWxsKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jPTI1Mj12b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1OTpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI2MC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0zMDg9dm9pZCBtdDc2MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzYxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYzozMTU6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjI0PXN0YXRpYyB2b2lkIG10NzZ4MGVfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIyOS1cXHRtdDc2eDBlX3N0b3BfaHcoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyMzA6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMzEtXFx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYz0yODE9dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg1LVxcdG10NzZ4Ml9zdG9wX2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODY6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4Ny1cXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz02NTA9dm9pZCBtdDc5MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2NTQ6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA5PXZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDMzOlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTEwNTI9dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA1NjpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDo0Mi4xMTM5MjM2M1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDk4MTM1NDU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFVTQiBEcml2ZXIgSW50ZXJhY3Rpb24gd2l0aCBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBmdW5jdGlvbiBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCBpcyBiZWluZyB1c2VkIGJ5IGEgVVNCIGRyaXZlci4gVGhpcyBpcyBhIHByZXR0eSBzdGFuZGFyZCBkZWJ1Z2dpbmcgYXBwcm9hY2guIEZpcnN0LCBJJ2xsIG5lZWQgdG8gY29uZmlybSAqaG93KiB0aGF0IGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgYnkgc2VhcmNoaW5nIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVyZSBkaXJlY3QgY2FsbHMsIGluZGlyZWN0IGNhbGxzLCBvciBwZXJoYXBzIGZ1bmN0aW9uIHBvaW50ZXJzIGludm9sdmVkPyBLbm93aW5nIHRoZSBjYWxsaW5nIGNvbnRleHQgaXMga2V5LiBJZiBhIFVTQiBkcml2ZXIgKmlzKiBjYWxsaW5nIGl0LCBJIHNob3VsZCBhbHNvIGlkZW50aWZ5IHdoaWNoIGRyaXZlciBhbmQgdGhlIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggdGhlIGNhbGwgb2NjdXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBVU0IgaW50ZXJhY3Rpb24gd2l0aCB0aGUgRE1BIGNsZWFudXAgcm91dGluZSB3aWxsIHByb3ZpZGUgaW52YWx1YWJsZSBpbnNpZ2h0IGludG8gdGhlIHN5c3RlbSdzIERNQSBtYW5hZ2VtZW50LiBJJ2xsIG5lZWQgdG8gdHJhY2UgdGhlIGV4ZWN1dGlvbiBmbG93LCB1bmRlcnN0YW5kIGFueSByZWxldmFudCBkYXRhIHN0cnVjdHVyZXMgYmVpbmcgcGFzc2VkLCBhbmQgbG9vayBmb3IgcG90ZW50aWFsIGlzc3VlcyBvciBvcHRpbWl6YXRpb25zLiBMZXQncyBkaWcgaW4gYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTg4LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzI6MTcuMDk1MjgxMTQ1WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODM5NTU4NjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTJ4X2RtYV9jbGVhbnVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTQ0PXN0YXRpYyB2b2lkIG10NzkyMWVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTYyLVxcdF9fbXQ3OTJ4X21jdV9kcnZfcG1jdHJsKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NjM6XFx0bXQ3OTJ4X2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNjQtXFx0bXQ3OTJ4X3dmc3lzX3Jlc2V0KGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYz0zNz1zdGF0aWMgdm9pZCBtdDc5MjVlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01NS1cXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjU2OlxcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTU3LVxcdG10NzkyeF93ZnN5c19yZXNldChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9MzEzPXN0YXRpYyBpbnQgbXQ3OTI1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQ4NC1lcnJfZnJlZV9kbWE6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NDg1OlxcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQ4Ni1lcnJfZnJlZV9pcnE6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ0Mj12b2lkIG10NzkyeF9zZXRfY292ZXJhZ2VfY2xhc3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDMtXFx0XFx0XFx0ICAgICAgIHMxNiBjb3ZlcmFnZV9jbGFzcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaDo0NDQ6dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDUtaW50IG10NzkyeF9kbWFfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDc9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4X2RtYV9kaXNhYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDA5OnZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDM1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfY2xlYW51cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMjoxNy42NzkyNDQyNjZaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc3MTUxMzcxMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBETUEgQ2xlYW51cCBpbiBNVDc5MnggRHJpdmVycyoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCBmdW5jdGlvbiBhbmQgc29tZXRoaW5nJ3Mgbm90IHF1aXRlIGNsaWNraW5nLiBGcm9tIG15IHF1aWNrIHJldmlldywgaXQgbG9va3MgbGlrZSBpdCdzIG9ubHkgYmVpbmcgY2FsbGVkIHdpdGhpbiBgbXQ3OTIxL3BjaS5jYCBhbmQgYG10NzkyNS9wY2kuY2AuIEJ1dCB0aGF0J3MganVzdCB0aGUgUENJIGltcGxlbWVudGF0aW9uLiBXaGF0IGFib3V0IHRoZSBVU0IgdmFyaWFudHMgb2YgdGhlc2UgY2hpcHNldHM/IE15IGNvbmNlcm4gaXMgdGhhdCB0aGVyZSdzIGEgZGlzY29ubmVjdCBoZXJlLCBvciBwZXJoYXBzIGEgZHVwbGljYXRlZCBjbGVhbnVwIG1lY2hhbmlzbSBpbiB0aGUgVVNCIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIERNQSBjbGVhbnVwIGlzbid0IGJlaW5nIG92ZXJsb29rZWQgaW4gdGhlIFVTQiBzaWRlIG9mIHRoaW5ncy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBgbXQ3NngwMl91c2JgIGFuZCBgbXQ3Nl91c2JgIGNvZGViYXNlcyBzcGVjaWZpY2FsbHkgdG8gY29uZmlybSBob3cgRE1BIGlzIG1hbmFnZWQgYW5kIGNsZWFuZWQgdXAgaW4gdGhvc2UgVVNCIGltcGxlbWVudGF0aW9ucy4gSSBuZWVkIHRvIGVuc3VyZSBhIGNvbnNpc3RlbnQgYXBwcm9hY2ggYWNyb3NzIGJvdGggYXJjaGl0ZWN0dXJlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTI3MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjI1LjM5NDM4NDYzOFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgyODg2ODIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfZG1hX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2F0dGFjaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE2Nzp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIxMS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjEyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2NsZWFudXApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNjc9dm9pZCBtdDc2X2RtYV9hdHRhY2goc3RydWN0IG10NzZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTY4OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xNjktaW50IG10NzZfZG1hX3J4X2ZpbGwoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MjUyPXZvaWQgbXQ3NjAzX2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjU5OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jPTMwOD12b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMxNTpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0yMjQ9c3RhdGljIHZvaWQgbXQ3NngwZV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjI5LVxcdG10NzZ4MGVfc3RvcF9odyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjIzMDpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIzMS1cXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI4MT12b2lkIG10NzZ4Ml9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODUtXFx0bXQ3NngyX3N0b3BfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjI4NjpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg3LVxcdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTY1MD12b2lkIG10NzkxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY1NDpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDk9dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo0MzM6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MTA1Mj12b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDU2OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1Ny19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjI1Ljg3NzI3NjI5MVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNDU4ODY5MTk0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3Nl9kbWFfY2xlYW51cGAgQ2FsbCBHcmFwaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG10NzZfZG1hX2NsZWFudXBgIGZ1bmN0aW9uLiBUaGUgY29kZSBzdWdnZXN0cyBpdCdzIGEgY3JpdGljYWwgY29tcG9uZW50IGluIHRoZSBjbGVhbnVwIHByb2Nlc3MgZm9yIHRoZXNlIE1UNzYgd2lyZWxlc3MgZHJpdmVycy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBkZXBlbmRlbmNpZXMuIFJpZ2h0IG5vdywgSSBjYW4gc2VlIHRoYXQgaXQncyBvbmx5IGNhbGxlZCBieSB0aGVzZSBzcGVjaWZpYyBmdW5jdGlvbnM6IGBtdDc2MDNfZG1hX2NsZWFudXBgLCBgbXQ3NjE1X2RtYV9jbGVhbnVwYCwgYG10NzZ4MGVfY2xlYW51cGAsIGBtdDc2eDJfY2xlYW51cGAsIGBtdDc5MTVfZG1hX2NsZWFudXBgLCBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCwgYW5kIGBtdDc5OTZfZG1hX2NsZWFudXBgLiBUaG9zZSBzZWVtIHRvIGJlLCBieSBuYW1lLCBzcGVjaWZpYyB0byBjZXJ0YWluIGdlbmVyYXRpb25zIG9yIGhhcmR3YXJlIHZhcmlhdGlvbnMuXG5cbkJ1dCB3aGF0J3MgbXkgbmV4dCBtb3ZlPyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhvc2UqIGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBBcmUgdGhleSB1c2VkIGV4Y2x1c2l2ZWx5IGluIFBDSSwgb3IgaXMgdGhlcmUgYW55IFVTQiB1c2FnZT8gSXMgdGhpcyBjbGVhbmluZyB1cCBzb21ldGhpbmcgdGhhdCBtaWdodCBiZSB1c2VkIGJ5IGEgVVNCIGltcGxlbWVudGF0aW9uLiBUaGF0J3MgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUsIGJlY2F1c2UgSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjayB0byB0aGUgVVNCIHN1YnN5c3RlbSBpZiB0aGVyZSdzIGFueSBjaGFuY2Ugb2YgaXQgYmVpbmcgcmVsZXZhbnQgdG8gYSBVU0ItYmFzZWQgaXNzdWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMTExLCJPdXRwdXRUb2tlbnMiOjg2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjUwLjQ2NTk2OTk2NVoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA4MDE4NTAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYwM19kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0xNzY9aW50IG10NzYwM19kbWFfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1Mjp2b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NTY0PXZvaWQgbXQ3NjAzX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNTY4LVxcdG10NzYwM19tY3VfZXhpdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo1Njk6XFx0bXQ3NjAzX2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTU3MC1cXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbXQ3NjAzLmg9MTg1PWludCBtdDc2MDNfZG1hX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbXQ3NjAzLmg6MTg2OnZvaWQgbXQ3NjAzX2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oLTE4Ny1pbnQgbXQ3NjAzX21jdV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMzo1MC45NzM5OTU0MzdaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk4NTc5MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYxNV9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0yMjA9aW50IG10NzYxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMwODp2b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMwOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD0zOTQ9dm9pZCBtdDc2MTVfZG1hX3N0YXJ0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjM5NTp2b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC0zOTYtaW50IG10NzYxNV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM9MTEyPXZvaWQgbXQ3NjE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jLTEyMy1cXHRtdDc2MTVfdHhfdG9rZW5fcHV0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYzoxMjQ6XFx0bXQ3NjE1X2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjUtXFx0dGFza2xldF9kaXNhYmxlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYuaXJxX3Rhc2tsZXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMzo1MS4wNzI1Nzg5MjZaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODM1Mjk5NDU1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQ2xlYW5pbmcgVXAgQWZ0ZXIgdGhlIE1vZHVsZXMqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGNsZWFudXAgcm91dGluZXMg4oCTIHNwZWNpZmljYWxseSwgYG10NzZ4MGVfY2xlYW51cGAgYW5kIGBtdDc2eDJfY2xlYW51cGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgd2UncmUgY29tcHJlaGVuc2l2ZWx5IGNvdmVyaW5nIGFsbCByZXNvdXJjZSBkZWFsbG9jYXRpb24gd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4gV2UncmUgdGFsa2luZyBhYm91dCByZW1vdmluZyBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBkcml2ZXItc3BlY2lmaWMgb3BlcmF0aW9ucywgbGlrZSBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIG1lbW9yeSBmcmVlaW5nIChETUEgYnVmZmVycywgY29udHJvbCBibG9ja3MsIGV0Yy4pLCBpbnRlcnJ1cHQgZGlzYWJsaW5nIGFuZCB1bnJlZ2lzdHJhdGlvbiwgYW5kIHBvdGVudGlhbGx5IGV2ZW4gY2xvY2sgZGlzYWJsaW5nLCBpZiBhcHBsaWNhYmxlLiBJIHdhbnQgdG8gcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvZiB0aGVpciBjb3JlIHJlc3BvbnNpYmlsaXRpZXMsIGVuc3VyaW5nIG5vIG1lbW9yeSBsZWFrcyBvciBkYW5nbGluZyBwb2ludGVycyBhcmUgcHJlc2VudCBhZnRlciBtb2R1bGUgdW5sb2FkaW5nLiBJcyB0aGVyZSBhbnkgZGV2aWNlIHN0YXRlIG9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gdGhhdCBuZWVkcyB0byBiZSByZXNldCB0byBhIGtub3duIGdvb2Qgb3IgZGVmYXVsdCBzdGF0ZSBiZWZvcmUgdGhlIG1vZHVsZSBkZXRhY2hlcyBjb21wbGV0ZWx5PyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJ3MgcHJvcGVybHkgc2h1dCBkb3duIGFuZCByZWxlYXNlZCB0byBhdm9pZCBhbnkgbG9uZy10ZXJtIHN5c3RlbSBpbnN0YWJpbGl0eS4gTGV0J3MgZGlnIGluIGFuZCByZXZpZXcgZWFjaCBsaW5lLCBwYXlpbmcgYXR0ZW50aW9uIHRvIHNoYXJlZCByZXNvdXJjZXMgYW5kIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyNjQwLCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjU5LjQyNTU3NzcwNFoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI4OTk0OTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZ4MGVfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0xNTQ9bXQ3NngwZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjIyNDpzdGF0aWMgdm9pZCBtdDc2eDBlX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTIzNT1tdDc2eDBlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0MC1cXHRtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKG1kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjI0MTpcXHRtdDc2eDBlX2NsZWFudXAoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yNDItXFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzM6NTkuNTU0NTc2NzgyWiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDY5NDgzMjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3NngyX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NjM9aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY2OnZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTY3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAxPW10NzZ4MmVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA2LVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTA3OlxcdG10NzZ4Ml9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA4LVxcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI3MT12b2lkIG10NzZ4Ml9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODE6dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4Mi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjU5LjY2MTUzMzgxWiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxOTUzNjE3MjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3NngwMl91c2JgIE1vZHVsZSdzIENsZWFudXAqKlxuXG5IbW0sIHNvIGBtdDc2eDAyX3VzYmAgcmVsaWVzIG9uIGBtdDc2eDAydV9jbGVhbnVwYCwgZG9lcyBpdD8gVGhhdCdzIGEga2V5IG9ic2VydmF0aW9uLiBJdCB0ZWxscyBtZSB0aGF0IHRoZSBVU0Itc3BlY2lmaWMgY2xlYW51cCBmdW5jdGlvbiwgYG10NzZ4MDJ1X2NsZWFudXBgLCBpcyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIHRlcm1pbmF0aW9uIG9mIHRoZSBgbXQ3NngwMl91c2JgIG1vZHVsZSdzIG9wZXJhdGlvbi4gR2l2ZW4gdGhlIHN0cnVjdHVyZSBvZiB0aGVzZSBkcml2ZXJzIGFuZCBteSBwcmV2aW91cyBleHBlcmllbmNlIHdpdGggc2ltaWxhciB3aXJlbGVzcyBjaGlwc2V0cywgdGhpcyBpcyBhIHZlcnkgaW1wb3J0YW50IHBvaW50IHRvIGNvbmZpcm0uIEkgc2hvdWxkIG5vdyBpbW1lZGlhdGVseSBkaXZlIGludG8gaW5zcGVjdGluZyBgbXQ3NngwMnVfY2xlYW51cGAuIEl0J3MgbGlrZWx5IGdvaW5nIHRvIGNvbnRhaW4gdGhlIGNyaXRpY2FsIHJlc291cmNlIHJlbGVhc2UgcHJvY2VkdXJlcywgdW5yZWdpc3RlcmluZyBjYWxscywgRE1BIGJ1ZmZlciBkZWFsbG9jYXRpb25zLCBhbmQgYW55IG5lY2Vzc2FyeSBoYXJkd2FyZSByZXNldCBvciBwb3dlciBkb3duIHNlcXVlbmNlcyBzcGVjaWZpYyB0byB0aGUgVVNCIGludGVyZmFjZSBhbmQgdGhlIE1UNzZ4MDIgY2hpcHNldCBpbiBxdWVzdGlvbi4gVGhpcyBpcyB0aGUgcGxhY2UgdG8gbG9vayBmb3IgcG90ZW50aWFsIG1lbW9yeSBsZWFrcywgZGFuZ2xpbmcgcG9pbnRlcnMsIG9yIGluY29ycmVjdCBkZXZpY2Ugc3RhdGUgdHJhbnNpdGlvbnMgZHVyaW5nIG1vZHVsZSB1bmxvYWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhhdCBmdW5jdGlvbiBkb2VzIHRvIGFzc2VzcyB0aGUgZHJpdmVyJ3Mgb3ZlcmFsbCBzdGFiaWxpdHkgYW5kIHJlc291cmNlIG1hbmFnZW1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzODU2LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM0OjIxLjYxNTE1NTE1WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDIxMjg5OTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZ4MDJ1X2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM0OjIxLjc1NzI5MjkyOFoiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzc1Mjc3MDY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIERNQSBDbGVhbnVwIGluIHRoZSBDb250ZXh0IG9mIFVTQiBEcml2ZXJzKipcblxuT2theSwgbGV0J3MgY2lyY2xlIGJhY2sgdG8gdGhhdCBgbXQ3Nl9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBJJ20gbm90IG1pc3Npbmcgc29tZXRoaW5nIGluIHRoZSBVU0IgZHJpdmVyIGludGVncmF0aW9uLiBUaGUgY29yZSBvZiBteSBxdWVzdGlvbiBpczogZG8gdGhlIFVTQiBkcml2ZXJzIGFjdHVhbGx5ICpjYWxsKiBgbXQ3Nl9kbWFfY2xlYW51cGA/IEl0IHNlZW1zIHVubGlrZWx5LCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBhcmNoaXRlY3R1cmUuIFVTQiBkcml2ZXJzIHRlbmQgdG8gbGVhbiBvbiBVUkJzIChVU0IgUmVxdWVzdCBCbG9ja3MpIGZvciB0aGVpciBkYXRhIHRyYW5zZmVycywgd2hpY2ggaW1wbGllcyBhIGRpZmZlcmVudCBETUEgbWFuYWdlbWVudCBwYXJhZGlnbS4gU28sIGl0J3MgcHJldHR5IGxpa2VseSB0aGF0IHRoZXkgKmRvbid0KiB1dGlsaXplIGBtdDc2X2RtYV9jbGVhbnVwYCBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UuIFRoZXJlZm9yZSwgdGhlIHNlYXJjaCBuZWVkcyB0byBicm9hZGVuLiBJIHNob3VsZCBwcm9iYWJseSBmb2N1cyBvbiBkaWdnaW5nIHRocm91Z2ggYW5kIHJldmlld2luZyBgbXQ3Nl91c2JfY2xlYW51cGAgb3IgYW55IHNpbWlsYXIgZnVuY3Rpb25zIHNwZWNpZmljIHRvIFVTQiBoYW5kbGluZyB3aXRoaW4gdGhlIGBtdDc2YCBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0MjExLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NDkuNTEwMDY2NTUzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjYwNjkwMTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3Nl9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfYXR0YWNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTY3OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjExLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMTI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfY2xlYW51cCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oPTE2Nz12b2lkIG10NzZfZG1hX2F0dGFjaChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaDoxNjg6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTE2OS1pbnQgbXQ3Nl9kbWFfcnhfZmlsbChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0yNTI9dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTk6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNjAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM9MzA4PXZvaWQgbXQ3NjE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM6MzE1OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTIyND1zdGF0aWMgdm9pZCBtdDc2eDBlX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjktXFx0bXQ3NngwZV9zdG9wX2h3KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjMwOlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjMxLVxcdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM9MjgxPXZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4NS1cXHRtdDc2eDJfc3RvcF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6Mjg2OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODctXFx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NjUwPXZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjU0OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjU1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jPTQwOT12b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzMzpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz0xMDUyPXZvaWQgbXQ3OTk2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNTY6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU3LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NTAuMDc2MTQwNDQ1WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MjQzMzQyNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGlnZ2luZyBEZWVwZXIgaW50byB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIGZvbGxvd2luZyB0aGUgY2FsbCBzdGFjayBjb3JyZWN0bHkuIEl0IGxvb2tzIGxpa2UgYG10NzZfZG1hX2NsZWFudXBgIGlzICphY3R1YWxseSogY2FsbGVkIGJ5IGBtdDc5MnhfZG1hX2NsZWFudXBgLiBSaWdodC4gTGV0J3MgYmFja3RyYWNrIGFuZCByZXZpc2l0IHRoYXQgYG10NzkyeF9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgaGFkIGFzc3VtZWQgaXQgd2FzIGNhbGxlZCBieSBzb21ldGhpbmcgc3BlY2lmaWMgdG8gYSBtb3JlIG1vZGVybiBjaGlwLCBzbyBJIHdhcyBsb29raW5nIGF0IHRoaW5ncyB0aGF0IHdlcmUgdG9vIGhpZ2ggbGV2ZWwuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBub3cgaXM6IGRvZXMgYG10NzkyeF9kbWFfY2xlYW51cGAgZ2V0IGNhbGxlZCBieSBzb21ldGhpbmcgbGlrZSBgbXQ3OTIxdV9jbGVhbnVwYD8gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5IHRoZSBicm9hZGVyIGNvbnRleHQgYW5kIHNlZSBpZiB0aGF0J3MgdGhlIGNoYWluIG9mIGV2ZW50cy4gVGhhdCB3aWxsIGhlbHAgbWUgYmV0dGVyIHVuZGVyc3RhbmQgaG93IHRoZSBETUEgY2xlYW51cCBpcyBiZWluZyB0cmlnZ2VyZWQgaW4gdGhpcyBzcGVjaWZpYyBhcmNoaXRlY3R1cmUuIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGUgbW9kdWxlIHVubG9hZCBwYXRocy4gS25vd2luZyB0aGUgY2FsbCBoaWVyYXJjaHkgaXMgY3JpdGljYWwgZm9yIHRoaXMgZGVidWdnaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjA0MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM0OjUzLjcwMDQ3NzI4M1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyODgwODY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyeF9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz00ND1zdGF0aWMgdm9pZCBtdDc5MjFlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy02Mi1cXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjYzOlxcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTY0LVxcdG10NzkyeF93ZnN5c19yZXNldChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9Mzc9c3RhdGljIHZvaWQgbXQ3OTI1ZV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNTUtXFx0X19tdDc5MnhfbWN1X2Rydl9wbWN0cmwoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzo1NjpcXHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01Ny1cXHRtdDc5Mnhfd2ZzeXNfcmVzZXQoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODQtZXJyX2ZyZWVfZG1hOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjQ4NTpcXHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODYtZXJyX2ZyZWVfaXJxOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD00NDI9dm9pZCBtdDc5Mnhfc2V0X2NvdmVyYWdlX2NsYXNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtNDQzLVxcdFxcdFxcdCAgICAgICBzMTYgY292ZXJhZ2VfY2xhc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDQ0OnZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtNDQ1LWludCBtdDc5MnhfZG1hX2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA3PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfZGlzYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQwOTp2b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfZG1hX2NsZWFudXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NTMuODYzMzYyNjRaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUwNDU4Nzk0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipETUEgQ2xlYW51cCBGdW5jdGlvbnM6IEEgUENJLUNlbnRyaWMgUGF0dGVybioqXG5cbk9rYXksIGxldCdzIHRha2UgYSBsb29rIGF0IHRoZXNlIERNQSBjbGVhbnVwIGZ1bmN0aW9ucy4gSXQgc2VlbXMgbGlrZSBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCBpcyBleGNsdXNpdmVseSBjYWxsZWQgYnkgUENJIGRyaXZlcnMuIEludGVyZXN0aW5nLiBMZXQncyBkaWcgZGVlcGVyLiBJcyB0aGlzIGEgY29uc2lzdGVudCBwYXR0ZXJuPyBBbHJpZ2h0LCBsZXQncyBjaGVjayBgbXQ3NjAzX2RtYV9jbGVhbnVwYCAtIHllcCwgc3RpbGwgUENJLiBBbmQgYG10NzYxNV9kbWFfY2xlYW51cGA/IFBDSSBhZ2Fpbi4gSG1tLCBzdGFydGluZyB0byBzZWUgYSB0cmVuZCBoZXJlLiBMZXQncyB2ZXJpZnkgd2l0aCBgbXQ3NngwZV9jbGVhbnVwYCAtIHllcCwgUENJIG9ubHkuIFNhbWUgc3Rvcnkgd2l0aCBgbXQ3NngyX2NsZWFudXBgIC0gYWxsIFBDSS4gQWxyaWdodCwgbGV0IG1lIGNoZWNrIGBtdDc5MTVfZG1hX2NsZWFudXBgIHRvIGJlIGNvbXBsZXRlbHkgc3VyZS4gVGhpcyBpcyBwcmV0dHkgbGlrZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzM3NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNDo1Ny4zNjc5NTMwMzlaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwOTI5OTUwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfZG1hX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NTkwPWludCBtdDc5MTVfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjUwOnZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjA5PXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTIxMi1cXHRtdDc2X2Nvbm5hYzJfdHhfdG9rZW5fcHV0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjEzOlxcdG10NzkxNV9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjE0LVxcdHRhc2tsZXRfZGlzYWJsZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LmlycV90YXNrbGV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oPTQ0Nj12b2lkIG10NzkxNV9kbWFfcHJlZmV0Y2goc3RydWN0IG10NzkxNV9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDQ3OnZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ0OC1pbnQgbXQ3OTE1X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGZvcmNlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NTcuNDc3MjU3NzQ3WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyODc4MTA0MDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnksIGtlZXBpbmcgaW4gbWluZCBteSBvd24gZXhwZXJ0aXNlOlxuXG4qKkNoZWNraW5nIHRoZSBNVDc5MTUncyBQQ0kgRGVwZW5kZW5jeSoqXG5cbkFscmlnaHQsIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBgbXQ3OTE1YCBkcml2ZXIgaXMgc3RyaWN0bHkgdGllZCB0byBQQ0kgb3IgaWYgaXQgc3VwcG9ydHMgb3RoZXIgYnVzIGludGVyZmFjZXMuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZS4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uIG9mIGRyaXZlcnMsIGl0J3MgaGlnaGx5IGxpa2VseSB0aGUgYW5zd2VyIGxpZXMgd2l0aGluIHRoZSBzb3VyY2UgZmlsZXMuIEknbSBnb2luZyB0byBxdWlja2x5IGxvb2sgZm9yIGEgZmlsZSBsaWtlIGBtdDc5MTUvcGNpLmNgLCBvciBzb21ldGhpbmcgc2ltaWxhcmx5IHN0cnVjdHVyZWQuIFRoYXQncyB0aGUgbW9zdCBwcm9iYWJsZSBsb2NhdGlvbiB0byBmaW5kIHRoZSBuZWNlc3NhcnkgY2x1ZXMsIG1heWJlIGV2ZW4gYSBzcGVjaWZpYyBQQ0kgaW5pdGlhbGl6YXRpb24gcm91dGluZSBvciByZWxhdGVkIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGJsb2NrcyB0aGF0IHdvdWxkIGV4cGxpY2l0bHkgZGVmaW5lIGl0cyBpbnRlbmRlZCBQQ0kgc3VwcG9ydC4gTGV0J3Mgc2VlIHdoYXQgd2UgZmluZCFcblxuXG4iLCJJbnB1dFRva2VucyI6MTgyNTIsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNToyMC4zNTUzNjUzMjRaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjIyMDU3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfc3RvcF9oYXJkd2FyZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTE5Nj1zdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTIwOTpzdGF0aWMgdm9pZCBtdDc5MTVfc3RvcF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjIwPWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI4Ny1zdG9wX2h3OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjg4OlxcdG10NzkxNV9zdG9wX2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyODktZnJlZV9waHkyOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyOTU9dm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzAxLVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDI6XFx0bXQ3OTE1X3N0b3BfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzU6MjAuNDcxNTkwNjUyWiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NTQyMDcwMTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgZXhwZXJ0IHRvIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlYCBDYWxsIENvbnRleHQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY2FsbGluZyBjb250ZXh0IG9mIGBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2VgLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgd2hldGhlciB0aGlzIHVucmVnaXN0cmF0aW9uIGlzIGhhcHBlbmluZyB3aXRoaW4gdGhlIFBDSSBzdWJzeXN0ZW0sIG9yIGlmIGl0IG9yaWdpbmF0ZXMgZnJvbSBhbm90aGVyIHBhcnQgb2YgdGhlIGRyaXZlciBvciBldmVuIGEgZGlmZmVyZW50IHN1YnN5c3RlbSBlbnRpcmVseS4gVGhpcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBkZXZpY2UgdGVhcmRvd24gc2VxdWVuY2UgYW5kIHBpbnBvaW50aW5nIHBvdGVudGlhbCBpc3N1ZXMsIGVzcGVjaWFsbHkgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCByZXNvdXJjZSBjb25mbGljdHMgb3IgdW5leHBlY3RlZCBjcmFzaGVzIGR1cmluZyBob3QtcGx1Zy91bnBsdWcgb3BlcmF0aW9ucy4gSSBuZWVkIHRvIHRyYWNlIHRoaXMgZnVuY3Rpb24ncyBjYWxsIHBhdGggdG8gdW5kZXJzdGFuZCB3aGVyZSBpdCdzIGJlaW5nIGludm9rZWQgZnJvbS4gS25vd2luZyB0aGF0LCBJIGNhbiBkZWR1Y2UgaG93IGl0IG1pZ2h0IGJlIGltcGFjdGluZyB0aGUgUENJIGluaXRpYWxpemF0aW9uIG9yIGRldmljZSByZW1vdmFsIHByb2NlZHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkwMTIsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNjowOC4wMTM2NjQ5MjhaIiwiU2VxIjo0MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MjEyNDQ2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyMjA9aW50IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjk1OnZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyOTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NDM1PWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQzNjp2b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC00MzctaW50IG10NzkxNV9lZXByb21faW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTIxMD1zdGF0aWMgdm9pZCBtdDc5MTVfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTIxNy1cXHRtdDc5MTVfcHV0X2hpZjIoZGV2LVxcdTAwM2VoaWYyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoyMTg6XFx0bXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMjE5LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jPTEyODA9c3RhdGljIHZvaWQgbXQ3OTh4X3dtYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyODQ6XFx0bXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI4NS19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM2OjA4LjU2NTc5NjM5WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2NTUzNjAyMDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydGlzZTpcblxuKipFeGFtaW5pbmcgdGhlIE1USyBXaUZpIENoaXBzZXRzKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uIEknbSB0aGlua2luZyBhYm91dCB0aGVzZSBNZWRpYVRlayBXaUZpIGNoaXBzZXRzLiBJJ3ZlIGdvdCBgbXQ3OTE1YCBwaW5uZWQgZG93biBpbiBteSBtaW5kIOKAkyB0aGF0J3MgYSBQQ0kgZGV2aWNlLCBhbmQgYWxzbyBvcGVyYXRlcyBhcyBhIHBsYXRmb3JtIGRldmljZSBvbiBTeXN0ZW0tb24tYS1DaGlwIGFyY2hpdGVjdHVyZXMuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgSSBrbm93IGl0cyByb2xlLiBCdXQgbm93LCB0aGUgcXVlc3Rpb24gdGhhdCdzIHBpcXVpbmcgbXkgY3VyaW9zaXR5IGlzLi4uIHdoYXQgYWJvdXQgYG10Nzk5NmA/IEkgbmVlZCB0byBxdWlja2x5IHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiBob3cgaXQncyBpbnRlZ3JhdGVkLiBJcyBpdCBmb2xsb3dpbmcgYSBzaW1pbGFyIGRlc2lnbiBwYXJhZGlnbSwgb3IgYXJlIHRoZXJlIGFyY2hpdGVjdHVyYWwgc2hpZnRzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHdlIHN0aWxsIHRhbGtpbmcgUENJLCBvciBpcyB0aGVyZSBhIGRpZmZlcmVudCBidXMsIGxpa2UgUENJZSwgaW52b2x2ZWQ/IElzIGl0cyBwbGF0Zm9ybSBkZXZpY2UgaW50ZWdyYXRpb24gc2ltaWxhciwgb3IgYXJlIHRoZXJlIG51YW5jZXMgaW4gdGhlIFNvQyBpbXBsZW1lbnRhdGlvbiBJIHNob3VsZCBiZSBjb25zaWRlcmluZyBmb3IgcGVyZm9ybWFuY2Ugb3IgcG93ZXIgY29uc3VtcHRpb24/IFRoaXMgaXMgd2hlcmUgSSBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTEyLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzY6MzUuMTE5NDAyMTQzWiIsIlNlcSI6NDIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTQzMzkyNjcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNTI6dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzk4PXZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgwOS1cXHRtdDc5OTZfdHhfdG9rZW5fcHV0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4MTA6XFx0bXQ3OTk2X2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4MTEtXFx0aWYgKG10Nzk5Nl9oYXNfaHdycm8oZGV2KSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njk0PXZvaWQgbXQ3OTk2X2RtYV9wcmVmZXRjaChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTU6dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjk2LXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM2OjM3LjA2Mjc5OTM3NVoiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTI5OTI2ODc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhhdCBmdW5jdGlvbjpcblxuKipEaXZpbmcgaW50byBgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlYCoqXG5cbk9rYXksIHNvIHdlJ3JlIGxvb2tpbmcgYXQgYG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZWAuIExldCdzIGFzc3VtZSB0aGlzIGlzIGEgZGV2aWNlIGRyaXZlciBmdW5jdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gYSBNZWRpYXRlayB3aXJlbGVzcyBjaGlwc2V0LCBnaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQncyB0aGUgY29udGV4dD9cIiBUaGlzIGltcGxpZXMgd2UncmUgaW4gdGhlIHVucmVnaXN0cmF0aW9uIG9yIHJlbW92YWwgcHJvY2VzcyBvZiBhIHNwZWNpZmljIGhhcmR3YXJlIGRldmljZS4gSXMgdGhpcyBiZWluZyBjYWxsZWQgZHVyaW5nIG1vZHVsZSB1bmxvYWQsIGRldmljZSBob3RwbHVnIHJlbW92YWwsIG9yIHBlcmhhcHMgYSBzeXN0ZW0gc2h1dGRvd24gc2VxdWVuY2U/XG5cbkknZCBleHBlY3QgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhlIGNsZWFudXAgb2YgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlLiBUaGlzIGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2U6IGZyZWVpbmcgYWxsb2NhdGVkIG1lbW9yeSByZWxhdGVkIHRvIHRoZSBkZXZpY2UncyBpbnRlcm5hbCBzdGF0ZSwgcmVsZWFzaW5nIGludGVycnVwdHMsIGRpc2FibGluZyBhbnkgaGFyZHdhcmUgcmVnaXN0ZXJzIHRoYXQgd2VyZSBlbmFibGVkLCBkZXJlZ2lzdGVyaW5nIGFueSBhc3NvY2lhdGVkIGludGVyZmFjZXMgKGxpa2UgbmV0d29yayBpbnRlcmZhY2VzLCBpZiB0aGlzIGlzIGEgV2ktRmkgZGV2aWNlKSwgYW5kIHBvdGVudGlhbGx5IGhhbmRsaW5nIGFueSBvdXRzdGFuZGluZyB0cmFuc2FjdGlvbnMgb3IgRE1BIG9wZXJhdGlvbnMgdG8gcHJldmVudCBkYXRhIGNvcnJ1cHRpb24gb3IgaGFuZ3MuIFdlIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBsb2NraW5nIG1lY2hhbmlzbXMuIFdhcyBhIG11dGV4IG9yIHNlbWFwaG9yZSBhY3F1aXJlZCBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCByZWdpc3RyYXRpb24gdGhhdCB3ZSBtdXN0IG5vdyByZWxlYXNlIGluIHRoaXMgZnVuY3Rpb24/IFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSBhY3Rpb25zIGFyZSBjb3JyZWN0LCBvdGhlcndpc2UgdGhpcyBjb3VsZCBjYXVzZSBhIGtlcm5lbCBjcmFzaC5cblxuSSdkIGFsc28gd2FudCB0byB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbidzIHJldHVybiB2YWx1ZS4gRG9lcyBpdCBpbmRpY2F0ZSBzdWNjZXNzIG9yIGZhaWx1cmU/IElmIGl0IGZhaWxzLCB3aGF0IGFyZSB0aGUgcG90ZW50aWFsIGVycm9yIGNvbmRpdGlvbnMgKGUuZy4sIHJlc291cmNlIG5vdCBmb3VuZCwgbG9jayBjb250ZW50aW9uLCBoYXJkd2FyZSBmYWlsdXJlKSBhbmQgaG93IGFyZSB0aGV5IGhhbmRsZWQ/IElzIHRoZXJlIGVycm9yIGxvZ2dpbmcgaW4gcGxhY2U/IElkZWFsbHksIHdlJ3JlIGRvaW5nIG1vcmUgdGhhbiBqdXN0IGJsaW5kbHkgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUuIFRoZXJlIHNob3VsZCBiZSBhIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZSBvciBhIG1vcmUgY29tcHJlaGVuc2l2ZSBlcnJvciBoYW5kbGluZyBzdHJhdGVneS4gQSBwcm9wZXIgdW5yZWdpc3RlciB3b3VsZCBiZSByb2J1c3QgYW5kIHByZXZlbnQgcmVzb3VyY2UgbGVha3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNzUxLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzY6NDEuMTkyNzI4OTI0WiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjUyMzg4OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzMxPWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc5ODp2b2lkIG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY3OD1pbnQgbXQ3OTk2X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2Nzk6dm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjgwLWludCBtdDc5OTZfdmlmX2xpbmtfYWRkKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTIzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0MC1cXHRtdDc5OTZfcHV0X2hpZjIoZGV2LVxcdTAwM2VoaWYyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNDE6XFx0bXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQyLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzY6NDEuMzU3OTcyMjAyWiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNTY1NzMyODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgYG10NzZfZG1hX2NsZWFudXBgIFVzYWdlKipcblxuT2theSwgc28gSSdtIHJldmlzaXRpbmcgdGhlIGBtdDc2X2RtYV9jbGVhbnVwYCBmdW5jdGlvbiBhbmQgbXkgaW5pdGlhbCB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQncyBleGNsdXNpdmVseSBjYWxsZWQgYnkgUENJIGFuZCBwbGF0Zm9ybSBkZXZpY2VzLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluIGFib3V0IHRoaXMsIHRob3VnaCwgZXNwZWNpYWxseSBpbiB0aGUgY29udGV4dCBvZiB0aGUgbGFyZ2VyIGBtdDc2YCBmcmFtZXdvcmsuIE5vdywgYSBuYWdnaW5nIHRob3VnaHQgaXMgZm9ybWluZyBpbiB0aGUgYmFjayBvZiBteSBtaW5kLiBXaGF0IGFib3V0IHRoZSBgbXQ3Nl91c2JgIG1vZHVsZT8gRG9lcyB0aGUgVVNCIGltcGxlbWVudGF0aW9uIGFsc28gdXRpbGl6ZSBgbXQ3Nl9kbWFfY2xlYW51cGA/IEl0IHdvdWxkIGJlIHF1aXRlIHByb2JsZW1hdGljIGlmIEkgd2VyZSB0byBiZSBtaXN0YWtlbiBhYm91dCB0aGlzLiBJdCBpcyB0aW1lIHRvIGV4YW1pbmUgdGhlIFVTQiBjbGVhbnVwIHJvdXRpbmVzIHRvIGNvbmZpcm0gb3IgY29ycmVjdCB0aGlzIGFzc3VtcHRpb24uIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgYG10NzZfdXNiYCBjbGVhbnVwIGNvZGUgZGlyZWN0bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzAzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mzc6MjMuOTIzNzA4MzMxWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTI5Njg5MjIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfdXNiXy4qY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mzc6MjQuNDc2Njg2MTAzWiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgxNzYzNTEzNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzOlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgTVQ3NiBVU0IgRHJpdmVyKipcblxuT2theSwgc28gSSBuZWVkIHRvIHRyYWNrIGRvd24gc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIFVTQiBpbnRlcmZhY2UgaW4gdGhlIE1UNzYgZHJpdmVyLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBieSBsb29raW5nIGF0IGVpdGhlciBgbXQ3Nl91c2JgIG9yIGp1c3QgdGhlIGdlbmVyYWwgYHVzYi5jYCBmaWxlIHdpdGhpbiB0aGUgTVQ3NiBkaXJlY3RvcnkuICBgbXQ3Nl91c2JgIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgcGxhY2UgdG8gYmVnaW4sIHNpbmNlIGl0J3MgbmFtZWQgc3BlY2lmaWNhbGx5IGZvciB0aGUgVVNCLXJlbGF0ZWQgaW1wbGVtZW50YXRpb24uIEhvd2V2ZXIsIGl0IHdvdWxkbid0IGh1cnQgdG8gY2hlY2sgaWYgYW55IG9mIHRoZSBjb3JlIFVTQiBmdW5jdGlvbmFsaXR5IGlzIGhhbmRsZWQgaW4gYHVzYi5jYCBhcyB3ZWxsLiBUaGF0IHdvdWxkIGRlcGVuZCBvbiB0aGUgTVQ3NidzIGFyY2hpdGVjdHVyZSBhbmQgaG93IHRoZXkndmUgb3JnYW5pemVkIHRoZWlyIGRyaXZlciBjb2RlLiBJJ2xsIGxpa2VseSBuZWVkIHRvIGNyb3NzLXJlZmVyZW5jZSBiZXR3ZWVuIHRob3NlIHR3by4gSXQgd2lsbCB0YWtlIHRpbWUgYnV0IHN0YXJ0aW5nIGhlcmUgaXMgdGhlIGJlc3QgcGxhY2UgdG8gYmVnaW4gdGhlIHRhc2sgYXQgaGFuZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5ODksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNzozMi42NTMwNDA4NTRaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzc5ODc4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2ZyZWVfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz04MTM9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl91bnJlZ2lzdGVyX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTgxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6ODE1OnZvaWQgbXQ3Nl9mcmVlX2RldmljZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtODE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MjQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo4MjU6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9mcmVlX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTgyNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEzMTU9dm9pZCBtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMzE2OnZvaWQgbXQ3Nl9mcmVlX2RldmljZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxNy12b2lkIG10NzZfcmVzZXRfZGV2aWNlKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz01NjQ9dm9pZCBtdDc2MDNfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NjktXFx0bXQ3NjAzX2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjU3MDpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NzEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMtNTktZXJyb3I6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6NjA6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9wY2kuYy02MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jPTEwPW10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmMtNTAtZXJyb3I6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmM6NTE6XFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYy01Mi1cXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYy0yNDItZXJyX2ZyZWVfZGV2OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYzoyNDM6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMjQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYz0xMTI9dm9pZCBtdDc2MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmMtMTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM6MTI3OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jPTc2PXN0YXRpYyBpbnQgbXQ3NjYzc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE2Ni1cXHRtdDc2c19kZWluaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjE2NzpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xNjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM9MTcyPXN0YXRpYyB2b2lkIG10NzY2M3NfcmVtb3ZlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTgwLVxcdG10NzZzX2RlaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6MTgxOlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE4Mi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0xMTI9c3RhdGljIGludCBtdDc2NjN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxOTY6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xOTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0yMDE9c3RhdGljIHZvaWQgbXQ3NjYzdV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTM6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MTU0PW10NzZ4MGVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIxOC1lcnJvcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyMTk6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0yMzU9bXQ3NngwZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yNDEtXFx0bXQ3NngwZV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjQyOlxcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjQzLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jPTIxMz1zdGF0aWMgaW50IG10NzZ4MHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjg2LVxcdG10NzZ1X3F1ZXVlc19kZWluaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6Mjg3OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjg4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MjkyPXN0YXRpYyB2b2lkIG10NzZ4MF9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzozMDU6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0zMDYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MjA9bXQ3NngyZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOTQtZXJyb3I6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6OTU6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy05Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTEwMT1tdDc2eDJlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNy1cXHRtdDc2eDJfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwODpcXHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYz0zMj1zdGF0aWMgaW50IG10NzZ4MnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy04NC1cXHRtdDc2dV9xdWV1ZXNfZGVpbml0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjg1OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtODYtXFx0dXNiX3NldF9pbnRmZGF0YShpbnRmLCBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTkxPXN0YXRpYyB2b2lkIG10NzZ4MnVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTk4LVxcdG10NzZ4MnVfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjk5OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTAwLVxcdHVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI5NT12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDQ6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk1OC1lcnJvcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTU5OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xOTctZnJlZV9kZXZpY2U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk4OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMTk5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc0LVxcdFxcdG10a193ZWRfZGV2aWNlX2RldGFjaChcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyNzU6XFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTQzOS1lcnJfZnJlZV9kZXY6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NDQwOlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDQxLWVycl9mcmVlX3BjaV92ZWM6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz00NDc9c3RhdGljIHZvaWQgbXQ3OTIxX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy00NTctXFx0ZGV2bV9mcmVlX2lycShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBwZGV2LVxcdTAwM2VpcnEsIGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NDU4OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDU5LVxcdHBjaV9mcmVlX2lycV92ZWN0b3JzKHBkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTQzPXN0YXRpYyB2b2lkIG10NzkyMXNfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy01NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM6NTY6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtNTctfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTE5Ni1cXHRtdDc2c19kZWluaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jOjE5NzpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xOTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYz0xNTA9c3RhdGljIGludCBtdDc5MjF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTI1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoyNTg6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0yNTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYz0zMTM9c3RhdGljIGludCBtdDc5MjVfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg4LWVycl9mcmVlX2RldjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzo0ODk6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00OTAtZXJyX2ZyZWVfcGNpX3ZlYzpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTQ5Nj1zdGF0aWMgdm9pZCBtdDc5MjVfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTUwMy1cXHRkZXZtX2ZyZWVfaXJxKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHBkZXYtXFx1MDAzZWlycSwgZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzo1MDQ6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01MDUtXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYz0xNDM9c3RhdGljIGludCBtdDc5MjV1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzoyNTc6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0yNTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jOjQyMTpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQyMi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTc5OD12b2lkIG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4MTY6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgxNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2Mi1lcnJvcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODYzOlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTk5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTIyMC1mcmVlX2RldmljZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyMjE6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yMjItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM3OjMyLjc1Njg0NzI0MloiLCJTZXEiOjQ5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE1OTIwOTAzNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgYG10NzZfZG1hX2NsZWFudXBgIENhbGwgUGF0aCoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBob3cgYG10NzZfZG1hX2NsZWFudXBgIGdldHMgY2FsbGVkLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCdzIHByaW1hcmlseSB1c2VkIGJ5IFBDSSBhbmQgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgSSdtIG5vdyBxdWVzdGlvbmluZyB0aGF0IGFzc3VtcHRpb24uIElzIHRoZXJlIGV2ZW4gYSByZW1vdGUgcG9zc2liaWxpdHkgdGhhdCBhIFVTQiBkZXZpY2UgY291bGQgdHJpZ2dlciB0aGlzIGNsZWFudXAgZnVuY3Rpb24/IExldCBtZSB0aGluay4uLlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIFVTQiBwcm9iZSBmdW5jdGlvbnMgZm9yIHRob3NlIG10NzYgd2lyZWxlc3MgZGV2aWNlcy4gSSdsbCBuZWVkIHRvIGNoZWNrIGBtdDc5MjF1X3Byb2JlYCwgYG10NzkyNXVfcHJvYmVgLCBgbXQ3NngwdV9wcm9iZWAsIGFuZCBgbXQ3NngydV9wcm9iZWAgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IGRpcmVjdCBjYWxsLiBcblxuT2theSwgYSBxdWljayBzY2FuLi4uIG5vcGUsIG5vbmUgb2YgdGhlbSBzZWVtIHRvIGRpcmVjdGx5IGNhbGwgYG10NzZfZG1hX2NsZWFudXBgIHRoZW1zZWx2ZXMuIEhtbSwgYnV0IHdhaXQuLi4gTG9va2luZyBiYWNrIGF0IGBtdDc5MjF1X3Byb2JlYCwgaXQgZG9lcyBjYWxsIGBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlYC4gUGVyaGFwcyAqdGhhdCogZnVuY3Rpb24gaXMgd2hlcmUgdGhlIGNhbGwgb3JpZ2luYXRlcy4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci4gTGV0J3Mgc2VlIHdoYXQgdGhhdCBmdW5jdGlvbiBkb2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODAzNCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozOToxNC4zNDg5Mzk2ODZaIiwiU2VxIjo1MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MzQzMjY4MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxdV9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYz04OT1zdGF0aWMgaW50IG10NzkyMXVfbWFjX3Jlc2V0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xNDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MTUwOnN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTUxLVxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYz0zMzg9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIG10NzkyMXVfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMzQwLVxcdC5pZF90YWJsZVxcdD0gbXQ3OTIxdV9kZXZpY2VfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MzQxOlxcdC5wcm9iZVxcdFxcdD0gbXQ3OTIxdV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0zNDItXFx0LmRpc2Nvbm5lY3RcXHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mzk6MTUuODgzMjcxODI0WiIsIlNlcSI6NTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDIwMTU5NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEaXZpbmcgaW50byBgbXQ3OTJ4dV9kaXNjb25uZWN0YCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGlnIGludG8gYG10NzkyeHVfZGlzY29ubmVjdGAuIEkgd2FudCB0byBpbW1lZGlhdGVseSByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHRlYXJkb3duIGZsb3cgZm9yIHRoYXQgc3BlY2lmaWMgZHJpdmVyLiBXaGF0J3MgdGhlIGNvcmUgbG9naWM/IFdoZXJlIGFyZSB0aGUgY3JpdGljYWwgcmVzb3VyY2VzIGJlaW5nIGZyZWVkPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIHR5cGljYWwgaXNzdWVzIHRoYXQgc3VyZmFjZSBkdXJpbmcgZGlzY29ubmVjdCBwcm9jZWR1cmVzIHdpdGhpbiB3aXJlbGVzcyBkcml2ZXJzLiBNZW1vcnkgbGVha3MgYXJlIGFsd2F5cyBhIHBvc3NpYmlsaXR5LCBzbyBJJ2xsIGJlIGxvb2tpbmcgc3BlY2lmaWNhbGx5IGZvciBhbnkgb3JwaGFuZWQgYnVmZmVycyBvciBzdHJ1Y3R1cmVzLiBSYWNlIGNvbmRpdGlvbnMgYXJlIGFub3RoZXIgY29uY2VybiDigJMgYXJlIHRoZXJlIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIGJldHdlZW4gdGhlIGRpc2Nvbm5lY3Qgcm91dGluZSBhbmQgb3RoZXIgb25nb2luZyBvcGVyYXRpb25zLCBwZXJoYXBzIHJlbGF0ZWQgdG8gZGF0YSB0cmFuc2ZlciBvciBiZWFjb24gcHJvY2Vzc2luZz8gQW5kIG9mIGNvdXJzZSwgSSdsbCBiZSBjaGVja2luZyBmb3IgYW55IHN1YnRsZSBidXQgc2lnbmlmaWNhbnQgdGltaW5nIGRlcGVuZGVuY2llcyB0aGF0IGNvdWxkIGJlIHByb2JsZW1hdGljIG9uIGNlcnRhaW4gaGFyZHdhcmUgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRyaXZlciBpcyByb2J1c3QgYW5kIGdyYWNlZnVsIGluIGl0cyBoYW5kbGluZyBvZiBkaXNjb25uZWN0aW9ucywgZXZlbiB1bmRlciBsZXNzLXRoYW4taWRlYWwgbmV0d29yayBjb25kaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODgzNiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM5OjE5LjMyNTI4OTY2M1oiLCJTZXEiOjUyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgzNTc2NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTJ4dV9kaXNjb25uZWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTMzOD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTIxdV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0zNDEtXFx0LnByb2JlXFx0XFx0PSBtdDc5MjF1X3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjM0MjpcXHQuZGlzY29ubmVjdFxcdD0gbXQ3OTJ4dV9kaXNjb25uZWN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTM0My0jaWZkZWYgQ09ORklHX1BNXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYz0zNDc9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIG10NzkyNXVfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzUwLVxcdC5wcm9iZVxcdFxcdD0gbXQ3OTI1dV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzozNTE6XFx0LmRpc2Nvbm5lY3RcXHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNTItI2lmZGVmIENPTkZJR19QTVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD01Mjg9dm9pZCBtdDc5Mnh1X2NvcHkoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBvZmZzZXQsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NTI5OnZvaWQgbXQ3OTJ4dV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC01MzAtdm9pZCBtdDc5Mnh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9zdG9wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDA3OnZvaWQgbXQ3OTJ4dV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MjM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9kaXNjb25uZWN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM5OjE5LjM4MzY1MjE4M1oiLCJTZXEiOjUzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjMyMDUyMDY3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIERpc2Nvbm5lY3QgUm91dGluZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgYG10NzkyeHVfZGlzY29ubmVjdGAgaW1wbGVtZW50YXRpb24uIEknbSBhc3N1bWluZyB0aGVyZSdzIGJlZW4gYW4gaXNzdWUgcmVwb3J0ZWQsIG9yIG1heWJlIEknbSBqdXN0IGRvaW5nIGEgY29kZSByZXZpZXcgc3dlZXAsIGFuZCB0aGlzIGZ1bmN0aW9uIGlzIG9uIHRoZSByYWRhci4gSXQncyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgYSBsaW5rIGRyb3AsIGFuZCB3aGVyZSB3ZSBtaWdodCBzZWUgcHJvYmxlbXMgcmVsYXRlZCB0byBzdGF0aW9uIGRpc2Fzc29jaWF0aW9uLCBoYXJkd2FyZSByZXNldCB0cmlnZ2Vycywgb3IgZXZlbiBzdWJ0bGUgbWVtb3J5IGxlYWtzIGR1cmluZyB0aGUgZGVhdXRoZW50aWNhdGlvbiBwcm9jZXNzLiBJIHdhbnQgdG8gc2VlIGlmIGl0J3MgZ3JhY2VmdWxseSBoYW5kbGluZyBhbGwgdGhlIHN0YXRlcy4gSSdsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTogaG93IGl0IGNsZWFucyB1cCBhc3NvY2lhdGVkIHJlc291cmNlcywgaWYgaXQgY29ycmVjdGx5IGRlYWN0aXZhdGVzIHRoZSBoYXJkd2FyZSBpbnRlcmZhY2VzLCBob3cgaXQgY2xlYXJzIHRoZSByZWxldmFudCBjb250cm9sIHN0cnVjdHVyZXMgYW5kIHF1ZXVlIHN0YXRlcywgd2hhdCdzIGRvbmUgd2l0aCBhbnkgcGVuZGluZyB0cmFmZmljLCBhbmQgaWYgaXQgd2FpdHMgZm9yIGFueSBvdXRzdGFuZGluZyBhY2tub3dsZWRnZW1lbnRzIG9yIGNvbXBsZXRpb24gZXZlbnRzIGJlZm9yZSBhY3R1YWxseSByZWxlYXNpbmcgdGhlIHJlc291cmNlcy4gQW55dGhpbmcgYW1pc3MgaGVyZSBjb3VsZCBjYXVzZSBpbnRlcm1pdHRlbnQgY29ubmVjdGlvbiBmYWlsdXJlcywgZGV2aWNlIGxvY2t1cHMsIG9yIGV2ZW4gZGF0YSBjb3JydXB0aW9uLiBMZXQncyBzZWUgaG93IHRoZXkgdGFja2xlZCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk4MzQsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDoxNS43MDQxNzUyNTFaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NDM5NDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyeHVfZGlzY29ubmVjdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9zdG9wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDA3OnZvaWQgbXQ3OTJ4dV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MjM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9kaXNjb25uZWN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQwOjE1Ljc1ODYxNzU4WiIsIlNlcSI6NTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MzgyOTQ4OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gbXQ3OTJ4X3VzYi5jOiBMaW5lIDQwNyBhbmQgQmV5b25kKipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgYG10NzkyeF91c2IuY2AsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA0MDcuIEknbSBndWVzc2luZyB0aGlzIHNlY3Rpb24gbGlrZWx5IGRlYWxzIHdpdGggdGhlIFVTQiBpbnRlcmZhY2UgZm9yIHRoZSBNZWRpYXRlayA3OTJ4IGNoaXBzZXQuIFRoYXQgbGluZSBudW1iZXIgc3VnZ2VzdHMgd2UncmUgcHJvYmFibHkgZGVhbGluZyB3aXRoIGVpdGhlciBpbml0aWFsaXphdGlvbiwgaW50ZXJydXB0IGhhbmRsaW5nLCBvciBtYXliZSBzb21lIGNyaXRpY2FsIGRhdGEgdHJhbnNmZXIgcm91dGluZSByZWxhdGVkIHRvIHRoZSBVU0Igc3Vic3lzdGVtLiBHaXZlbiB0aGUgbGlrZWx5IGNvbnRleHQsIEknZCBhbnRpY2lwYXRlIHNlZWluZyBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzLCBwZXJoYXBzIHF1ZXVlIG1hbmFnZW1lbnQgZm9yIFVTQiB0cmFuc2ZlcnMgKFVSQnMsIGV0Yy4pLCBlcnJvciBjaGVja2luZywgb3IgcG9zc2libHkgc29tZSBwb3dlciBtYW5hZ2VtZW50IGNvbnNpZGVyYXRpb25zIGlmIHRoaXMgaXMgcmVsYXRlZCB0byBzdXNwZW5kL3Jlc3VtZS4gSeKAmWxsIHN0YXJ0IGJ5IHNjYW5uaW5nIHRoZSBzdXJyb3VuZGluZyBjb2RlLCBsb29raW5nIGZvciBmdW5jdGlvbiBjYWxscywgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgY29tbWVudHMgdGhhdCBwcm92aWRlIGhpbnRzIGFib3V0IHRoZSBleGFjdCBmdW5jdGlvbmFsaXR5IGF0IGxpbmUgNDA3LiBJJ20gbWVudGFsbHkgcGFyc2luZyB0aGUgY29udHJvbCBmbG93LCBhbnRpY2lwYXRpbmcgdGhlIGxvZ2ljIHRvIHNlZSBpZiBpdCdzIHRoZSBleHBlY3RlZCBVU0IgZHJpdmVyIG9wZXJhdGlvbi4gTGV0J3Mgc2VlIHdoYXQncyBhY3R1YWxseSBnb2luZyBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAzODUsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDoxOS41OTY5MTUxMzRaIiwiU2VxIjo1NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODcyMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDAwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNDAwOlxcdFxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4gNDAxOlxcdFxcbiA0MDI6XFx0XFx0bXQ3NnVfc3RvcF90eChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4gNDAzOlxcdFxcdG10NzkyeF9zdG9wKGh3LCBmYWxzZSk7XFxuIDQwNDpcXHR9XFxuIDQwNTpcXHRFWFBPUlRfU1lNQk9MX0dQTChtdDc5Mnh1X3N0b3ApO1xcbiA0MDY6XFx0XFxuIDQwNzpcXHR2b2lkIG10NzkyeHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXFxuIDQwODpcXHR7XFxuIDQwOTpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XFxuIDQxMDpcXHRcXG4gNDExOlxcdFxcdG10NzkyeHVfcmVzZXRfd29ya19jbGVhbnVwKGRldik7XFxuIDQxMjpcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZkZXYtXFx1MDAzZWluaXRfd29yayk7XFxuIDQxMzpcXHRcXHRpZiAoIXRlc3RfYml0KE1UNzZfU1RBVEVfSU5JVElBTElaRUQsIFxcdTAwMjZkZXYtXFx1MDAzZW1waHkuc3RhdGUpKVxcbiA0MTQ6XFx0XFx0XFx0cmV0dXJuO1xcbiA0MTU6XFx0XFxuIDQxNjpcXHRcXHRtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbiA0MTc6XFx0XFx0bXQ3OTJ4dV9jbGVhbnVwKGRldik7XFxuIDQxODpcXHRcXG4gNDE5OlxcdFxcdHVzYl9zZXRfaW50ZmRhdGEodXNiX2ludGYsIE5VTEwpO1xcbiA0MjA6XFx0XFxuIDQyMTpcXHRcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbiA0MjI6XFx0fVxcbiA0MjM6XFx0RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9kaXNjb25uZWN0KTtcXG4gNDI0OlxcdFxcbiA0MjU6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBNVDc5MnggVVNCIGhlbHBlcnNcXFwiKTtcXG4gNDI2OlxcdE1PRFVMRV9MSUNFTlNFKFxcXCJEdWFsIEJTRC9HUExcXFwiKTtcXG4gNDI3OlxcdE1PRFVMRV9BVVRIT1IoXFxcIkxvcmVuem8gQmlhbmNvbmkgXFx1MDAzY2xvcmVuem9Aa2VybmVsLm9yZ1xcdTAwM2VcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDA6MTkuNTk3MDA5NTI0WiIsIlNlcSI6NTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NzI5Mzg2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIERNQSBDbGVhbnVwIGluIG10NzkyeHUqKlxuXG5SaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyLCBhbmQgdGhlIHF1ZXN0aW9uIHRoYXQncyBqdXN0IHBvcHBlZCBpbnRvIG15IGhlYWQgaXMgYSBjcnVjaWFsIG9uZSBmb3IgcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgcG90ZW50aWFsbHkgcHJldmVudGluZyBtZW1vcnkgbGVha3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgbXQ3OTJ4dV9jbGVhbnVwYCBhbmQgYG10NzkyeF9kbWFfY2xlYW51cGAuIFNwZWNpZmljYWxseSwgZG9lcyB0aGUgZm9ybWVyIGNhbGwgdGhlIGxhdHRlcj8gSXQgc2VlbXMgbG9naWNhbCB0aGF0IGEgaGlnaGVyLWxldmVsIGNsZWFudXAgZnVuY3Rpb24gZm9yIHRoZSBlbnRpcmUgVVNCIGludGVyZmFjZSAoYG10NzkyeHVgKSB3b3VsZCBoYW5kbGUgb3IgZGVsZWdhdGUgdGhlIGNsZWFudXAgb2YgRE1BIHJlc291cmNlcyAoYG10NzkyeF9kbWFgKS4gQnV0IEkgY2FuJ3QganVzdCBhc3N1bWUgYW55dGhpbmcuIEkgbmVlZCB0byB0cmFjZSB0aGUgY29kZSB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIElmIGBtdDc5Mnh1X2NsZWFudXBgIGRvZXNuJ3QgZXhwbGljaXRseSBoYW5kbGUgdGhlIERNQSBjbGVhbnVwLCB0aGVuIHdlIGhhdmUgYSBwb3RlbnRpYWwgY3JpdGljYWwgdnVsbmVyYWJpbGl0eS4gSSBuZWVkIHRvIGRldGVybWluZSB0aGUgY2xlYW51cCByZXNwb25zaWJpbGl0aWVzIGFuZCBlbnN1cmUgRE1BIHJlc291cmNlcyBhcmUgY29ycmVjdGx5IGRlYWxsb2NhdGVkLiBUaW1lIHRvIGdyYWIgdGhlIGNvZGUgYW5kIHN0YXJ0IGNyb3NzLXJlZmVyZW5jaW5nLiBUaGlzIGlzIGZ1bmRhbWVudGFsIHRvIGF2b2lkaW5nIGFueSBpc3N1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMTczLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDoyMy4xNjk5NTEzNTJaIiwiU2VxIjo1OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNjA3MDYyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5Mnh1X2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM9MTY3PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfbWN1X3Bvd2VyX29uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy0xNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6MTY5OnN0YXRpYyB2b2lkIG10NzkyeHVfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDE2LVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDE3OlxcdG10NzkyeHVfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQxOC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDA6MjMuNDk2MDI2NjU3WiIsIlNlcSI6NTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyNjYzMzc4NzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSB3ZWxsLXZlcnNlZCBpbiB0ZWNobmljYWwgZG9jdW1lbnRhdGlvbiBhbmQgc29mdHdhcmUgZGV2ZWxvcG1lbnQ6XG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50OiBEaXZpbmcgaW50byBgbXQ3OTJ4dV9jbGVhbnVwYCoqXG5cblJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gVGhlIHByb21wdCBpcyBhIGNsZWFyIGluc3RydWN0aW9uIC0gcmVhZCBgbXQ3OTJ4dV9jbGVhbnVwYC4gSSBpbW1lZGlhdGVseSBrbm93IHRoYXQgSSBuZWVkIHRvIG1lbnRhbGx5IHByZXBhcmUgdG8gcGFyc2UgdGhyb3VnaCBjb2RlLCBkb2N1bWVudGF0aW9uLCBvciBjb25maWd1cmF0aW9uIHJlbGF0ZWQgdG8gYSBzeXN0ZW0sIG1vc3QgbGlrZWx5IGEgc29mdHdhcmUgbW9kdWxlLCBmdW5jdGlvbiwgb3Igc2NyaXB0LCBiYXNlZCBvbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24uIFRoZSB1c2Ugb2YgXCJjbGVhbnVwXCIgaW1wbGllcyBpdCdzIHJlbGF0ZWQgdG8gdGhlIHByb2Nlc3Mgb2YgdGlkeWluZyB1cCBhbmQgbWFuYWdpbmcgcmVzb3VyY2VzLiBUaGUgXCJtdDc5Mnh1XCIgcG9ydGlvbiBzb3VuZHMgbGlrZSBhIGRldmljZSwgZHJpdmVyLCBvciBsaWJyYXJ5IGRlc2lnbmF0aW9uLiBJIHNob3VsZCBleHBlY3QgdG8gZmluZCBjb2RlIHRoYXQgcmVtb3ZlcyB0ZW1wb3JhcnkgZmlsZXMsIGZyZWVzIGFsbG9jYXRlZCBtZW1vcnksIHJlc2V0cyBoYXJkd2FyZSwgb3Igb3RoZXJ3aXNlIHJlc3RvcmVzIGEgc3lzdGVtIHRvIGEgY2xlYW4gc3RhdGUuIEkgYW50aWNpcGF0ZSBhIHRlY2huaWNhbCByZWFkLCBhbmQgSSdsbCBuZWVkIHRvIGFic29yYiBpdCB3aXRoIG15IGV4cGVydCB1bmRlcnN0YW5kaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTgxNCwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQwOjQ2LjE1OTQwODAzNloiLCJTZXEiOjYwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDcxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNjksXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNjk6XFx0c3RhdGljIHZvaWQgbXQ3OTJ4dV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuIDE3MDpcXHR7XFxuIDE3MTpcXHRcXHRjbGVhcl9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5zdGF0ZSk7XFxuIDE3MjpcXHRcXHRtdDc5Mnh1X3dmc3lzX3Jlc2V0KGRldik7XFxuIDE3MzpcXHRcXHRza2JfcXVldWVfcHVyZ2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tY3UucmVzX3EpO1xcbiAxNzQ6XFx0XFx0bXQ3NnVfcXVldWVzX2RlaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4gMTc1OlxcdH1cXG4gMTc2OlxcdFxcbiAxNzc6XFx0c3RhdGljIHUzMiBtdDc5Mnh1X3Vod19ycihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTMyIGFkZHIpXFxuIDE3ODpcXHR7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQwOjQ2LjE1OTQ4Mzk0N1oiLCJTZXEiOjYxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDQ3MTA2NzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzYgRHJpdmVycyoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhlIGNsZWFudXAgcm91dGluZXMgZm9yIHRoZXNlIE1lZGlhdGVrIFdpLUZpIGRyaXZlcnMuIEl0IGxvb2tzIGxpa2UgYG10NzkyeHVfY2xlYW51cGAgY2FsbHMgYG10NzZ1X3F1ZXVlc19kZWluaXRgLCBub3QgYG10NzZfZG1hX2NsZWFudXBgLiBUaGlzIHRlbGxzIG1lIHRoYXQgYG10NzZfZG1hX2NsZWFudXBgIGlzIHNwZWNpZmljYWxseSBmb3IgUENJIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIHRoYXQgdXNlIERNQSwgd2hpbGUgVVNCIGRldmljZXMgbGlrZSB0aGUgTVQ3OTJ4dSB1c2UgYSBkaWZmZXJlbnQgZGVpbml0aWFsaXphdGlvbiBwYXRoLlxuXG5HaXZlbiB0aGF0LCBJIHdvbmRlciBhYm91dCBmdXp6aW5nIGBtdDc2X2RtYV9jbGVhbnVwYC4gU2luY2UgaXQncyBQQ0kgYW5kIHBsYXRmb3JtIHNwZWNpZmljLCBjb3VsZCBJIGZ1enogaXQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSSdkIG5lZWQgYSBQQ0kgZGV2aWNlIGVtdWxhdG9yLCBhbmQgSSBrbm93IFN5emthbGxlciB1c3VhbGx5IGRvZXNuJ3QgaGF2ZSBlbXVsYXRvcnMgZm9yIHNwZWNpZmljIE1lZGlhdGVrIFdpLUZpIGNhcmRzLiBIb3dldmVyLCB3YWl0IGEgbWludXRlLi4uIFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIhIEl0IGNhbiBlbXVsYXRlIGFyYml0cmFyeSBQQ0kgZGV2aWNlcyFcblxuSWYgSSBlbmFibGUgdGhlIFBDSSBmdXp6ZXIsIEkgY291bGQgcHJvYmFibHkgcHJvYmUgdGhlc2UgZHJpdmVycyBieSBnaXZpbmcgbWF0Y2hpbmcgUENJIElEcy4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgQ09ORklHX01UNzZfQ09SRWAgYW5kIHRoZSBQQ0kgZHJpdmVycyBhcmUgZW5hYmxlZCBpbiBTeXprYWxsZXIuIEFjdHVhbGx5LCB0aGlua2luZyBhYm91dCBpdCwgU3l6a2FsbGVyIGNhbiBmdXp6IFBDSSBkcml2ZXJzIHVzaW5nIGVpdGhlciBgdmhjaWAgb3IgYHBjaWAgcHNldWRvLWRldmljZXMuXG5cbkFoLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUga2VybmVsIGhhcyB0aGUgZHJpdmVyIGVuYWJsZWQgZmlyc3QsIGFuZCBTeXprYWxsZXIgdXNlcyBgc3l6X3BjaV9zZXR1cGAgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEkgbmVlZCB0byBzZWUgaWYgYENPTkZJR19NVDc2X0NPUkVgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiBJIG5lZWQgdG8gc3BlY2lmeSBpdC4gVGhlIFBDSSBkcml2ZXJzIEknbSBpbnRlcmVzdGVkIGluIGFyZSBgQ09ORklHX01UNzYwM0VgLCBgQ09ORklHX01UNzZ4MkVgLCBgQ09ORklHX01UNzYxNUVgLCBgQ09ORklHX01UNzkxNUVgLCBgQ09ORklHX01UNzkyMUVgLCBgQ09ORklHX01UNzkyNUVgLCBhbmQgYENPTkZJR19NVDc5OTZFYC4gSSdsbCBzdGFydCBieSBjaGVja2luZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ2AgdG8gc3RhcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyMjg4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDE2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDA6NTUuNjA2NTkzODk4WiIsIlNlcSI6NjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY2MTM1NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyMUVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0yPWNvbmZpZyBNVDc5MjFfQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzo3OmNvbmZpZyBNVDc5MjFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy04LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFFIChQQ0llKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDo1NS44NDMyMTYzNjVaIiwiU2VxIjo2MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc3MTUyNTQyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIE1UNzkyMUUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gRmlyc3QsIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlIGBNVDc5MjFFYC4gTXkgaW1tZWRpYXRlIGdvYWwgaXMgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgaXRzIHBsYWNlIHdpdGhpbiB0aGUgd2lkZXIgc3lzdGVtLiBUaGlzIG1lYW5zIEknbSBub3QganVzdCBsb29raW5nIGZvciB0aGUgb2J2aW91cyBsaWJyYXJpZXMgYW5kIGRyaXZlcnMgaXQgY2FsbHMgdXBvbiwgYnV0IGFsc28gdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYW5kIGZpcm13YXJlIGludGVyYWN0aW9ucy4gSSBuZWVkIHRvIGtub3cgKmV2ZXJ5dGhpbmcqIGl0IHRvdWNoZXMgYW5kIGV2ZXJ5dGhpbmcgdGhhdCB0b3VjaGVzIGl0LiBJcyB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0PyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIG9mIGEgY2hhbmdlIHVwc3RyZWFtP1xuXG5NeSBmb2N1cyB3aWxsIGJlIG9uIGlkZW50aWZ5aW5nOlxuXG4qICAgKipDb3JlIExpYnJhcmllczoqKiBUaGUgZXNzZW50aWFsIHNvZnR3YXJlIGNvbXBvbmVudHMgdGhhdCBgTVQ3OTIxRWAgcmVsaWVzIG9uIGZvciBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsaXR5LiBUaGlzIG1heSBnbyBiZXlvbmQgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIHdhbnQgdG8gZW5zdXJlIG15IGFzc3VtcHRpb25zIGFib3V0IHRoZXNlIGFyZSBhbGwgY3VycmVudCBhbmQgYWNjdXJhdGUuXG4qICAgKipEcml2ZXIgSW50ZXJhY3Rpb25zOioqIEhvdyB0aGlzIHNwZWNpZmljIGRyaXZlciBpbnRlcmZhY2VzIHdpdGggdGhlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIGFuZCBhbnkgYWJzdHJhY3Rpb24gbGF5ZXJzLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3Vlcywgb3IgcG9zc2libGUgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MsIGdpdmVuIHRoZSBhcmNoaXRlY3R1cmUgSSdtIGNvbmNlcm5lZCB3aXRoP1xuKiAgICoqSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgKEhBTCkgQ29tcG9uZW50czoqKiBVbmRlcnN0YW5kaW5nIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBkZXRhaWxzIHRoYXQgdGhlIGBNVDc5MjFFYCBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoLiBJJ20ga2VlbiB0byBkaXNjb3ZlciBpZiB0aGVyZSBhcmUgYW55IHN1YnRsZSBjaGFuZ2VzIGluIHRoZSBoYXJkd2FyZSB2ZXJzaW9uIHRoYXQgY291bGQgaW1wYWN0IHBlcmZvcm1hbmNlLlxuKiAgICoqRmlybXdhcmUgRGVwZW5kZW5jaWVzOioqIFRoZSBzcGVjaWZpYyBmaXJtd2FyZSB2ZXJzaW9ucyByZXF1aXJlZCBvciBzdXBwb3J0ZWQuIENvbXBhdGliaWxpdHkgbWF0cmljZXMgYXJlIGltcG9ydGFudCBoZXJlLCBhbmQgSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCB0aGUgZmlybXdhcmUgaXMgZnVsbHkgYWxpZ25lZCB3aXRoIHRoZSBzb2Z0d2FyZS4gQWxzbywgSSdsbCByZXZpZXcgaG93IHVwZGF0ZXMgYXJlIGhhbmRsZWQuIEFueSBwb3RlbnRpYWwgbG9jay1pbj9cbiogICAqKkV4dGVybmFsIERlcGVuZGVuY2llczoqKiBBbnkgZGVwZW5kZW5jaWVzIG9uIGV4dGVybmFsIGxpYnJhcmllcyBvciBzZXJ2aWNlcyB0aGF0IG1pZ2h0IGJlIGluZGlyZWN0bHkgdXNlZCwgYW5kIHRoYXQgYXJlIG5vdCBpbW1lZGlhdGVseSBvYnZpb3VzLlxuKiAgICoqQ29uY3VycmVuY3kgQ29uc2lkZXJhdGlvbnM6KiogSWYgbXVsdGlwbGUgdGhyZWFkcyBvciBwcm9jZXNzZXMgbWlnaHQgaW50ZXJhY3Qgd2l0aCB0aGUgYE1UNzkyMUVgLCBob3cgYXJlIHRob3NlIGludGVyYWN0aW9ucyBjb29yZGluYXRlZD8gSXMgdGhlcmUgcmlzayBvZiByYWNlIGNvbmRpdGlvbnMgb3IgZGVhZGxvY2tzP1xuXG5JIHdpbGwgc3RhcnQgYnkgcmV2aWV3aW5nIGFueSBkb2N1bWVudGVkIGRlcGVuZGVuY3kgdHJlZXMsIEFQSSByZWZlcmVuY2VzLCBvciBidWlsZCBzY3JpcHRzLiBGcm9tIHRoZXJlLCBJJ2xsIGxldmVyYWdlIG15IGtub3dsZWRnZSBvZiB0aGUgc3lzdGVtIGFuZCBteSBleHBlcmllbmNlIHRvIGV4cGxvcmUgYW55IHVuZG9jdW1lbnRlZCBvciBpbXBsaWNpdCByZWxhdGlvbnNoaXBzLiBUaGlzIG1heSBtZWFuIGxvb2tpbmcgYXQgdGhlIHNvdXJjZSBjb2RlIGl0c2VsZiwgdHJhY2luZyBmdW5jdGlvbiBjYWxscywgb3IgYW5hbHl6aW5nIHN5c3RlbSBsb2dzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzM0OCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQxOjAwLjYxNDc0NDExNloiLCJTZXEiOjY0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1NDEwMDk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc5MjFFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0yPWNvbmZpZyBNVDc5MjFfQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzo3OmNvbmZpZyBNVDc5MjFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy04LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFFIChQQ0llKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTowMC43MzAxNTkwMDRaIiwiU2VxIjo2NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTg5MTM3NjAyMDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB3aGF0J3MgZ29pbmcgdGhyb3VnaCBteSBtaW5kIGFzIEkgYXBwcm9hY2ggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnYCBmaWxlLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGluIHRoZSBmaWVsZDpcblxuKipEaXZpbmcgaW50byB0aGUgTVQ3OTIxIEtjb25maWcqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgaW50byB0aGlzLiBJJ20gdGFraW5nIGEgbG9vayBhdCB0aGUgYEtjb25maWdgIGZvciB0aGUgTVQ3OTIxIGRyaXZlciB3aXRoaW4gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIHN0YWNrLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSBncmFzcCB0aGUgaGlnaC1sZXZlbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgS2NvbmZpZyBmaWxlIGRpY3RhdGVzIHdoYXQgZmVhdHVyZXMgYXJlIGJ1aWxkYWJsZSwgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGlzIHBhcnRpY3VsYXIgODAyLjExYXggY2hpcHNldC5cblxuSSBleHBlY3QgdG8gc2VlIHRoZSB0eXBpY2FsIHN0cnVjdHVyZSBoZXJlOiB0b3AtbGV2ZWwgZmVhdHVyZSBmbGFncywgbWF5YmUgb3B0aW9ucyBmb3IgdGhpbmdzIGxpa2UgcG93ZXIgbWFuYWdlbWVudCwgcmVndWxhdG9yeSBkb21haW4gc2V0dGluZ3MsIHZhcmlvdXMgZGVidWdnaW5nIGxldmVscywgYW5kIHBvdGVudGlhbGx5IGRpZmZlcmVudCBvcGVyYXRpb25hbCBtb2RlcyBsaWtlIEFQLCBTVEEsIG9yIG1vbml0b3IuIEknbGwgYmUgbG9va2luZyBmb3IgYW55IHNpZ25zIG9mIG1vZHVsYXJpdHkgYW5kIGhvdyBjbGVhbmx5IHRoZSBjb2RlIGlzIGRlc2lnbmVkIHRvIGFsbG93IGNvbXBpbGUtdGltZSBjb25maWd1cmF0aW9uLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgbWFqb3IgY29uZmlndXJhYmxlIGFzcGVjdHMg4oCTIGRvZXMgaXQgc3VwcG9ydCBkdWFsLWJhbmQgb3BlcmF0aW9uPyBXaGF0IGFib3V0IHNwZWNpZmljIGZlYXR1cmVzIGZvciB0aGUgNkdIeiBiYW5kLCBpZiBhbnk/IEFyZSB0aGVyZSBhbnkgb3B0aW9ucyBmb3Igb2ZmbG9hZGluZyBwcm9jZXNzaW5nLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGhhcmR3YXJlIGFjY2VsZXJhdGlvbj8gQW5kLCBvZiBjb3Vyc2UsIHRoZSBldmVyLXByZXNlbnQgcXVlc3Rpb246IHdoYXQgYXJlIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zPyBBcmUgdGhleSByZWFzb25hYmxlLCBvciBhcmUgdGhlcmUgaGlkZGVuIFwiZ290Y2hhc1wiIEkgbmVlZCB0byBiZSBhd2FyZSBvZj9cblxuTXkgZ29hbCBpcyB0byB1bmRlcnN0YW5kIGhvdyBhIHVzZXIgd291bGQgZW5hYmxlIG9yIGRpc2FibGUgdmFyaW91cyBmdW5jdGlvbnMsIGFuZCB0byBhc3Nlc3MgdGhlIGZsZXhpYmlsaXR5IG9mIHRoZSBkcml2ZXIgY29uZmlndXJhdGlvbiBpdHNlbGYuIEFyZSB0aGVyZSBhbnkgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzIHRoYXQgbWlnaHQgY29tcGxpY2F0ZSB0aGluZ3MsIG9yIGFyZSB0aGluZ3Mgd2VsbC1vcmdhbml6ZWQgYW5kIGNsZWFybHkgZGVmaW5lZD8gQW55IHVudXN1YWwgb3IgdmVuZG9yLXNwZWNpZmljIG9wdGlvbnMgdGhhdCBtYXkgcmVxdWlyZSBjbG9zZXIgc3R1ZHk/IEknbGwgYWxzbyBiZSBzZWFyY2hpbmcgZm9yIGFueSBjbHVlcyBhYm91dCB0aGUgcGxhbm5lZCBjYXBhYmlsaXRpZXMgZm9yIHRoaXMgY2hpcHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwMjEsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MToxOS42NDM5MjE5NzZaIiwiU2VxIjo2NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA0NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyMV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjFFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIE1UNzkyMVNcXG4gIDE4OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFTIChTRElPKSBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0c2VsZWN0IE1UNzZfU0RJT1xcbiAgMjA6XFx0XFx0c2VsZWN0IE1UNzkyMV9DT01NT05cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDE6MTkuNjQzOTgzNTY3WiIsIlNlcSI6NjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0NTk3MjY3OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRHJpdmVyIERlcGVuZGVuY2llcyBhbmQgRXhwbG9yYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgTVQ3OTIxRWAgYW5kIGltbWVkaWF0ZWx5IHNlZSBpdCByZWxpZXMgb24gYE1BQzgwMjExYCBhbmQgYFBDSWAuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBzdHVmZi4gTm93IEknbSB3b25kZXJpbmcgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIFBDSSBkcml2ZXJzIGluIHRoaXMgZmFtaWx5LiBMZXQncyBzZWUuLi4gQWgsIHllcywgdGhlcmUncyBgTVQ3NjAzRWAsIGBNVDc2eDBFYCwgYE1UNzZ4MkVgLCBgTVQ3NjE1RWAsIGBNVDc5MTVFYCwgYE1UNzkyNUVgLCBhbmQgYE1UNzk5NkVgLiBHb3QgaXQuIE5vdywgZ2l2ZW4gdGhhdCBsaXN0LCBJIHRoaW5rIGl0J3Mgd29ydGggdGFraW5nIGEgY2xvc2VyIGxvb2sgYXQgYE1UNzkxNUVgLiBJdCdsbCBiZSBpbnRlcmVzdGluZyB0byBzZWUgaG93IGl0J3MgYXJjaGl0ZWN0ZWQgY29tcGFyZWQgdG8gYE1UNzkyMUVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc2OCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQxOjI4LjEwMzcxMjU5WiIsIlNlcSI6NjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzQ5MTA2OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkxNUVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MTVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MToyOC4yMzg2MzI2MDhaIiwiU2VxIjo2OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE2OTgyODM0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGF0IEtjb25maWcgZmlsZTpcblxuKipBbmFseXppbmcgdGhlIG10NzkxNSBLY29uZmlnIEZpbGUqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpdmUgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWdgIGZpbGUuIEknbSBleHBlY3RpbmcgdGhpcyB0byBiZSB0aGUgY2VudHJhbCBjb25maWd1cmF0aW9uIGh1YiBmb3IgdGhlIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgd2l0aGluIHRoZSBicm9hZGVyIE1UNzYgZnJhbWV3b3JrLiBNeSBwcmltYXJ5IGZvY3VzIHdpbGwgYmUgb24gdW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhYmxlIG9wdGlvbnMuIEkgbmVlZCB0byBmaWd1cmUgb3V0OlxuXG4qICAgKipEZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3IgZHJpdmVyIGNvbXBvbmVudHMgaXMgdGhpcyBtb2R1bGUgZGVwZW5kZW50IG9uPyBXaGF0IG90aGVyIGRyaXZlcnMgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSBgbXQ3OTE1YCBjYW4gYmUgc2VsZWN0ZWQ/IEknbGwgbG9vayBmb3IgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMuXG4qICAgKipEZWZhdWx0IEJlaGF2aW9yOioqIFdoYXQncyB0aGUgZGVmYXVsdCBzdGF0ZSBvZiB0aGUgb3B0aW9ucyDigJMgYXJlIHRoZXkgYnVpbHQtaW4sIG1vZHVsYXJpemVkLCBvciBkaXNhYmxlZD8gVGhpcyBnaXZlcyBtZSBhIHNlbnNlIG9mIHRoZSBkcml2ZXIncyBvdXQtb2YtdGhlLWJveCBjb25maWd1cmF0aW9uLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGBkZWZhdWx0YCBrZXl3b3Jkcy5cbiogICAqKkNvbmZpZ3VyYXRpb24gT3B0aW9uczoqKiBXaGF0IGNhbiBhIHVzZXIgY29udHJvbCByZWdhcmRpbmcgdGhlIGZlYXR1cmVzIG9mIHRoaXMgd2lyZWxlc3MgZHJpdmVyPyBUaGlzIGlzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgZmxhZ3MgZm9yIHRoaW5ncyBsaWtlIHJlZ3VsYXRvcnkgZG9tYWluIHNlbGVjdGlvbiwgcG93ZXIgbWFuYWdlbWVudCBvcHRpb25zLCBmaXJtd2FyZSBsb2FkaW5nLCBvciBwb3NzaWJseSBzcGVjaWZpYyBoYXJkd2FyZSBmZWF0dXJlcyBsaWtlIHNwZWNpZmljIDgwMi4xMSBzdGFuZGFyZHMuIEkgd2lsbCBsb29rIGZvciB2YXJpb3VzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBmaW5kIGFsbCBhdmFpbGFibGUgZmVhdHVyZXMuXG4qICAgKipSZWxhdGlvbnNoaXBzIHRvIG90aGVyIGZpbGVzOioqIEhvdyBpcyB0aGlzIEtjb25maWcgZmlsZSBzdHJ1Y3R1cmVkIGFuZCBob3cgZG9lcyBpdCByZWxhdGUgdG8gb3RoZXIgY29uZmlndXJhdGlvbiBmaWxlcyBpbiB0aGUgd2lkZXIgTVQ3NiBkaXJlY3RvcnkgdHJlZT8gSSBleHBlY3QgaXQgdG8gc291cmNlIG90aGVyIEtjb25maWcgZmlsZXMgYW5kIHBvdGVudGlhbGx5IGRlZmluZSBmdXJ0aGVyIGNvbmZpZ3VyYXRpb25zLlxuKiAgICoqRG9jdW1lbnRhdGlvbjoqKiBIb3BlZnVsbHksIHRoZXJlIGFyZSBzb21lIGRlY2VudCBjb21tZW50cy4gQW55IGNsZWFyIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucyBhcmUgYWx3YXlzIHdlbGNvbWUgYW5kIGhlbHAgaW4gdW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIGRpZmZlcmVudCBzZXR0aW5ncy5cblxuQnkgYW5hbHl6aW5nIHRoZXNlIGFzcGVjdHMsIEknbGwgYmUgYWJsZSB0byBxdWlja2x5IGdyYXNwIHRoZSBjb25maWd1cmFibGUgYXNwZWN0cyBvZiB0aGUgTVQ3OTE1IGRyaXZlci4gVGhpcyB3aWxsIGdpdmUgbWUgYSBzb2xpZCBmb3VuZGF0aW9uIGZvciBldmFsdWF0aW5nIGl0cyBzdWl0YWJpbGl0eSBmb3IgYSBzcGVjaWZpYyBzeXN0ZW0gb3IgdHJvdWJsZXNob290aW5nIHBvdGVudGlhbCBpc3N1ZXMuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAgZm9yIHByb3BlciBpbnRlZ3JhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUyMjksIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTozMi40MDg0NjMxOTFaIiwiU2VxIjo3MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzEzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkxNUVcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XFxcIlxcbiAgIDQ6XFx0XFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgIDg6XFx0XFx0c2VsZWN0IFJFTEFZXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MTUtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbiAgMTE6XFx0XFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcXG4gIDEyOlxcdFxcdCAgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWF4IDR4NDo0U1MgMTAyNC1RQU0sIDE2ME1IeiBjaGFubmVscyxcXG4gIDEzOlxcdFxcdCAgT0ZETUEsIHNwYXRpYWwgcmV1c2UgYW5kIGR1YWwgY2FycmllciBtb2R1bGF0aW9uLlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBNVDc5OFhfV01BQ1xcbiAgMTg6XFx0XFx0Ym9vbCBcXFwiTVQ3OTh4IChTb0MpIFdNQUMgc3VwcG9ydFxcXCJcXG4gIDE5OlxcdFxcdGRlcGVuZHMgb24gTVQ3OTE1RVxcbiAgMjA6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTozMi40MDg1MzU4NzFaIiwiU2VxIjo3MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk2ODcyODMzMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggbW9kaWZ5aW5nIGBtdDc2X2RtYV9jbGVhbnVwYCBpbiB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNgLiBUaGUgY2hhbmdlIGludHJvZHVjZXMgYSBjaGVjayBmb3IgYG10NzZfcXVldWVfaXNfd2VkX3JybyhxKWAgYW5kIGNvbmRpdGlvbmFsbHkgY2FsbHMgYG5hcGlfZGlzYWJsZWAuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiwgc28gbGV0J3MgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGltcGFjdC5cblxuRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgY29kZSBwYXRoIGlzIGV2ZW4gcmVhY2hhYmxlLiBgbXQ3Nl9kbWFfY2xlYW51cGAgaXMgY2FsbGVkIGR1cmluZyBkZXZpY2UgdW5yZWdpc3RyYXRpb24gb3IgcHJvYmUgZmFpbHVyZSwgd2hpY2ggbWVhbnMgaWYgSSBjYW4gdHJpZ2dlciBlaXRoZXIgc2NlbmFyaW8sIEkgY2FuIGhpdCB0aGlzIGNvZGUuIENvbnNpZGVyaW5nIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYE1UNzZfQ09SRWAgc2VlbXMgZXNzZW50aWFsLCB3aGljaCBpcyBzZWxlY3RlZCBieSBgTVQ3OTE1RWAsIGFsb25nIHdpdGggb3RoZXIgTVQ3OXh4IGFuZCBNVDc2eHggZHJpdmVycy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgcmVsZXZhbnQgY29kZSBpcyBjb21waWxlZCwgYW5kIGl0IGxvb2tzIGxpa2UgYG9iai0kKENPTkZJR19NVDc2X0NPUkUpICs9IG10NzYub2AgYW5kIGBtdDc2LXkgKz0gZG1hLm9gIHdpdGhpbiB0aGUgTWFrZWZpbGUgY29uZmlybXMgdGhhdCB0aGUgY29tcGlsYXRpb24gaW5jbHVkZXMgdGhlIGZpbGUuXG5cblRoZSBrZXkgcXVlc3Rpb24gaXMsIGNhbiBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXIgdHJpZ2dlciB0aGVzZSBldmVudHM/IFdlbGwsIHN5emthbGxlciBkb2VzIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzIGFuZCBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcy4gSSBrbm93IGl0IGNhbiBwcm9iZSBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9zZXR1cGAgYW5kIHNpbWlsYXIgZnVuY3Rpb25zIGFuZCBzaW11bGF0ZSBwcm9iZS9yZW1vdmUgY3ljbGVzLiBBbmQgaXQgKnNob3VsZCogdHJ5IHRvIHByb2JlIE1lZGlhdGVrIFdpLUZpIGRyaXZlcnMgaWYgdGhlIGNvbmZpZyBpcyBlbmFibGVkLiBTbywgeWVzLCBpZiBzeXprYWxsZXIgaXMgY29uZmlndXJlZCBmb3IgUENJIGZ1enppbmcsIHRoaXMgaXMgZGVmaW5pdGVseSByZWFjaGFibGUsIHBhcnRpY3VsYXJseSBpbiBhIHZpcnR1YWxpemVkIFFFTVUgZW52aXJvbm1lbnQuXG5cbk5vdywgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIEkga25vdyBJIG5lZWQgdG8gZW5hYmxlIGEgZHJpdmVyIGxpa2UgYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgb3Igb3RoZXJzIHRvIHB1bGwgaW4gYE1UNzZfQ09SRWAuIGBNVDc2X0NPUkVgIGlzIHRoZSBjb3JlIGxpYnJhcnkgdGhhdCBjb21waWxlcyBgZG1hLmNgLiBJIG5lZWQgdG8gZW5zdXJlIG9uZSBvZiB0aGVzZSBkcml2ZXJzIGlzIHNlbGVjdGVkLiBUaGUgYEtjb25maWdgIGNvbmZpcm1zIGBNVDc2X0NPUkVgIGlzIHRyaXN0YXRlLCBidXQgaXNuJ3QgZGlyZWN0bHkgdXNlci1zZWxlY3RhYmxlLCBzbyBJJ2xsIG5lZWQgdG8gZW5hYmxlIGEgZHJpdmVyIHRoYXQgKnNlbGVjdHMqIGl0LlxuXG5UbyBiZSBzYWZlLCBJJ2xsIHNwZWNpZnkgYSBmZXcgb2YgdGhlbSBpbiB0aGUgYEVuYWJsZUNvbmZpZ3NgOiBgTVQ3OTE1RWAsIGBNVDc5MjFFYCwgYE1UNzYxNUVgLCBgTVQ3NjAzRWAuXG5cbk9rYXksIG5vdyBmb3IgdGhlIGltcG9ydGFudCBiaXQ6IHdoYXQncyBgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpYD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbiBiZWluZyBjaGVja2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjA2MywiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkxMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQxOjUyLjA5NTgyMTg2MVoiLCJTZXEiOjcyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg4Njg5MjQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfcXVldWVfaXNfd2VkX3Jyb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTE1OT1tdDc2X2RtYV9xdWV1ZV9tYWdpY19jbnRfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNjAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTYxOlxcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTYyLVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTY0LVxcdHEtXFx1MDAzZW1hZ2ljX2NudCA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxNjU6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE2Ni1cXHRcXHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2Rlc2MgKnJyb19kZXNjO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNzctXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTc4OlxcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNzktXFx0XFx0c3RydWN0IG10NzZfcnJvX3J4ZG1hZF9jICpkbWFkID0gKHZvaWQgKilxLVxcdTAwM2VkZXNjO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0yMDg9dm9pZCBtdDc2X2RtYV9xdWV1ZV9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTIxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjIxNDpcXHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjIxNTpcXHQgICAgIW10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcXHUwMDI2XFx1MDAyNiAhbXQ3Nl9xdWV1ZV9pc19ucHUocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTIxNi1cXHRcXHRpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MjM1PW10NzZfZG1hX2FkZF9yeF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoyNDU6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTI0Ni1cXHRcXHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2Rlc2MgKnJyb19kZXNjO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNTAtXFx0XFx0Z290byBkb25lO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MjUxOlxcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNTItXFx0XFx0ZGF0YSA9IFxcdTAwMjZxLVxcdTAwM2VkZXNjW3EtXFx1MDAzZWhlYWRdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoyNjI6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3J4KHEpIHx8IG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjMtXFx0XFx0dHh3aSA9IG10NzZfZ2V0X3J4d2koZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6Mjc5OlxcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjgwLVxcdCAgICBkZXYtXFx1MDAzZWRydi1cXHUwMDNlcnhfcnJvX2FkZF9tc2R1X3BhZ2UpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NDk0PW10NzZfZG1hX2dldF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLCBpbnQgaWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01MDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo1MDI6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcXHUwMDI2XFx1MDAyNiAhZmx1c2gpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01MDMtXFx0XFx0YnVmID0gbXQ3Nl9kbWFfZ2V0X3J4ZG1hZF9jX2J1ZihkZXYsIHEsIGlkeCwgbGVuLCBtb3JlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTUwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjUwNTpcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTA2LVxcdFxcdGdvdG8gZG9uZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NTUxPW10NzZfZG1hX2RlcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLCBib29sIGZsdXNoLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo1NjA6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHEpIHx8IG10NzZfcXVldWVfaXNfd2VkX3Jyb19tc2R1X3BnKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTYxLVxcdFxcdGdvdG8gZG9uZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTU2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjU2MzpcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTY0LVxcdFxcdHN0cnVjdCBtdDc2X3dlZF9ycm9faW5kICpjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTU3Ny1cXHRcXHRcXHRxLVxcdTAwM2VtYWdpY19jbnQgPSAocS1cXHUwMDNlbWFnaWNfY250ICsgMSkgJSBNVF9ETUFfV0VEX0lORF9DTURfQ05UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTc4OlxcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01NzktXFx0XFx0c3RydWN0IG10NzZfcnJvX3J4ZG1hZF9jICpkbWFkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz03NDk9bXQ3Nl9kbWFfcnhfZmlsbF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy03NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo3NjM6XFx0XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjc2NDpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNzY1LVxcdFxcdFxcdGdvdG8gZG9uZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9ODAyPW10NzZfZG1hX2FsbG9jX3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODE3OlxcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE4LVxcdFxcdHNpemUgPSBzaXplb2Yoc3RydWN0IG10NzZfd2VkX3Jyb19kZXNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODQ2LVxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XFx0XFx0aWYgKChtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04NDgtXFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTg2MT1tdDc2X2RtYV9yeF9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODgyLVxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4ODM6XFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg4NC1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg2LVxcdFxcdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg4NzpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg4LVxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODkwOlxcdFxcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4OTE6XFx0XFx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODkyLVxcdFxcdFxcdG10NzZfcHV0X3BhZ2VfcG9vbF9idWYoYnVmLCBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTkwNT1tdDc2X2RtYV9yeF9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgZW51bSBtdDc2X3J4cV9pZCBxaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkxMjpcXHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkxMzpcXHQgICAgIW10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcXHUwMDI2XFx1MDAyNiAhbXQ3Nl9xdWV1ZV9pc19ucHUocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkxNC1cXHRcXHRpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI4LVxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5Mjk6XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzMC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzMi1cXHRpZiAobXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShkZXYpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5MzM6XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzNC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTk3ND1tdDc2X2RtYV9yeF9wcm9jZXNzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTI6XFx0XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXFx1MDAyNlxcdTAwMjYgZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXJ4X3Jyb19pbmRfcHJvY2VzcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEwMTMtXFx0XFx0XFx0ZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXJ4X3Jyb19pbmRfcHJvY2VzcyhkZXYsIGRhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTU6XFx0XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTAxNjpcXHRcXHQgICAgIW10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxNy1cXHRcXHRcXHRkb25lKys7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExMDg9bXQ3Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTEzOC1cXHRtdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTM5OlxcdFxcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNmRldi1cXHUwMDNlcV9yeFtpXSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTQwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY3PXZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExOTI6XFx0XFx0aWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExOTMtXFx0XFx0XFx0bmFwaV9kaXNhYmxlKFxcdTAwMjZkZXYtXFx1MDAzZW5hcGlbaV0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTk3MD1zdGF0aWMgaW5saW5lIGJvb2wgbXQ3Nl9xdWV1ZV9pc193ZWRfdHhfZnJlZShzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTk3NjpzdGF0aWMgaW5saW5lIGJvb2wgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5Nzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTgxOnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5ODM6XFx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODQtXFx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cXHUwMDNlZmxhZ3MpID09IE1UNzZfV0VEX1JST19RX0lORDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTk4NzpzdGF0aWMgaW5saW5lIGJvb2wgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5ODk6XFx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5OTAtXFx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cXHUwMDNlZmxhZ3MpID09IE1UNzZfV0VEX1JST19RX1JYRE1BRF9DO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTkzOnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fZGF0YShzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xOTk0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk1OlxcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xOTk2LVxcdCAgICAgICBGSUVMRF9HRVQoTVRfUUZMQUdfV0VEX1RZUEUsIHEtXFx1MDAzZWZsYWdzKSA9PSBNVDc2X1dFRF9SUk9fUV9EQVRBO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk5OnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yMDAwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoyMDAxOlxcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yMDAyLVxcdCAgICAgICBGSUVMRF9HRVQoTVRfUUZMQUdfV0VEX1RZUEUsIHEtXFx1MDAzZWZsYWdzKSA9PVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9OTYwPXZvaWQgbXQ3OTk2X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyNy1cXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAyODpcXHRcXHRcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOS1cXHRcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfdHhfZnJlZShxKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMzA6XFx0XFx0XFx0XFx0aWYgKGZvcmNlIFxcdTAwMjZcXHUwMDI2IG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMzEtXFx0XFx0XFx0XFx0XFx0bXQ3Nl9xdWV1ZV9yZXNldChkZXYsIHEsIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNDEtXFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBmb3JjZSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNDI6XFx0XFx0ICAgIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucV9yeFtpXSkgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDQzOlxcdFxcdCAgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX21zZHVfcGcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0NC1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMjQ5LVxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMjUwOlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbaV0pKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIyNTEtXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMjY1LVxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMjY2OlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbaV0pKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIyNjctXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzAyLVxcdFxcdG10NzZfZm9yX2VhY2hfcV9yeChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMwMzpcXHRcXHRcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbaV0pIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMwNDpcXHRcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX21zZHVfcGcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzA1LVxcdFxcdFxcdFxcdG10NzZfcXVldWVfcnhfcmVzZXQoZGV2LCBpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTI0NTE9dm9pZCBtdDc5OTZfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjUxNS1cXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjUxNjpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucV9yeFtpXSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjUxNy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1MTktXFx0XFx0aWYgKG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyNTIwOlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTIxLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjU3Ny1cXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjU3ODpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucV9yeFtpXSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjU3OS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1ODEtXFx0XFx0aWYgKG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyNTgyOlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTgzLVxcdFxcdFxcdGNvbnRpbnVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTo1Mi4zODQ1MTU4MjdaIiwiU2VxIjo3MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU3NDM2NzM4MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBBbmFseXNpczogbXQ3Nl9kbWFfY2xlYW51cCBpbiBNZWRpYXRlayBNVDc2IERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHRoaXMgYG10NzZfcXVldWVfaXNfd2VkX3Jyb2AgZnVuY3Rpb24gaXMgYSBzaW1wbGUgaW5saW5lIGNoZWNrOyBub3RoaW5nIGludGVyZXN0aW5nIHRoZXJlLCBqdXN0IGJhY2tncm91bmQgY29udGV4dC4gVGhlIGNvcmUgY2hhbmdlIGlzIGluIGBtdDc2X2RtYV9jbGVhbnVwYC4gVGhpcyBwYXRjaCBtb2RpZmllcyBgbXQ3Nl9kbWFfY2xlYW51cGAgdG8gKmF2b2lkKiBkaXNhYmxpbmcgYW5kIGRlbGV0aW5nIE5BUEkgKE5ldHdvcmsgQVBJKSBmb3IgV0VEIChXaXJlbGVzcyBFbmhhbmNlZCBEYXRhKSBSUk8gKFJlY2VpdmUgUmluZyBPcHRpbWl6ZWQpIHF1ZXVlcywgYW5kICppbXBvcnRhbnRseSosIGl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgZm9yIHRoZSAqbm9uKi1XRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIOKAkyBpdCdzIGZpeGluZyBhIGJ1ZyBieSBwcmV2ZW50aW5nIE5BUEkgZGVsZXRpb24gZm9yIFdFRCBSUk8gcXVldWVzIGFuZCBwcmV2ZW50aW5nIGEgbWlzc2luZyBgbmFwaV9kaXNhYmxlYC5cblxuU28sIHRoZSBrZXkgaGVyZSBpcyBgbXQ3Nl9kbWFfY2xlYW51cGAuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXp6aW5nLiBUaGUgcXVlc3Rpb24gaXMgaG93IHRvIG1ha2UgaXQgaGFwcGVuLiBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQuIEFoLCBpdCdzIGR1cmluZyBkZXZpY2UgdW5yZWdpc3RyYXRpb24hIFRoYXQncyBwcm9taXNpbmcuIEFyZSB0aGVyZSBvdGhlciBmdW5jdGlvbnMgYWZmZWN0ZWQ/IExldCdzIGNoZWNrIGBtdDc2X2RtYV9pbml0YCBvciBgbXQ3Nl9kbWFfcnhfY2xlYW51cGAuIEJ1dCByZWFsbHksIGBtdDc2X2RtYV9jbGVhbnVwYCBpcyB0aGUgZm9jdXMuXG5cbk5vdywgbGV0J3MgbG9vayBhdCB0aGUgY29uZmlndXJhdGlvbiBzaWRlIG9mIHRoaW5ncy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggY29uZmlncyBlbmFibGUgdGhlIHJlbGV2YW50IGNvZGUuIFRoZSBkcml2ZXJzIG9mIGludGVyZXN0IGFyZTogYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgYE1UNzYwM0VgLCBgTVQ3NngyRWAsIGBNVDc5MjVFYCwgYE1UNzk5NkVgLiAgU2luY2UgYE1UNzkyMUVgIGlzIGEgY29tbW9uIFBDSWUgY2FyZCwgbGV0J3MgcHJpb3JpdGl6ZSBpdCBhbmQgYE1UNzkxNUVgIGFuZCBgTVQ3NjE1RWAuIExldCdzIHZlcmlmeSBgTVQ3OTIxRWAgZGVwZW5kcyBvbiBgTUFDODAyMTFgLCBhbmQgYFBDSWAuIFBlcmZlY3QsIHRoZXNlIGFyZSBlYXNpbHkgcmVhY2hhYmxlLlxuXG5UaGUgY3JpdGljYWwgcGllY2U6IGNhbiB0aGlzIGJlIGhpdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBsaWtlIHdpdGggc3l6a2FsbGVyPyAgWWVzISBQQ0kgZnV6emluZywgc3l6a2FsbGVyIGNhbiBwcm9iZSwgdGhlbiB1bnJlZ2lzdGVyIHRoZSBkZXZpY2UuIFRoaXMgdHJpZ2dlcnMgYG10NzZfZG1hX2NsZWFudXBgLCBhbmQgdGh1cyBpdCBpcyAqKndvcnRoIGZ1enppbmcqKi4gSSdtIHRhcmdldGluZyAgYG10NzZfZG1hX2NsZWFudXBgLlxuXG5Ob3csIGZvciBjb25maWd1cmF0aW9uLiAgV2UgY2FuIGZvY3VzIG9uIHRoZSBzYW1lIGRyaXZlcnM6IGBNVDc5MTVFYCwgYE1UNzkyMUVgLCBgTVQ3NjE1RWAsIGBNVDc2MDNFYCwgYE1UNzZ4MkVgLlxuXG5Pa2F5LCBsZXQncyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gIERvZXMgYE1UNzkyMUVgIGVuYWJsZSBgTVQ3Nl9DT1JFYD8gWWVzLiBgTVQ3OTIxRWAgc2VsZWN0cyBgTVQ3OTIxX0NPTU1PTmAsIHdoaWNoIHNlbGVjdHMgYE1UNzkyeF9MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPTk5BQ19MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPUkVgLiAgU28gYE1UNzkyMUVgIGlzIHN1ZmZpY2llbnQuXG5cbkxldCBtZSB3cml0ZSBvdXQgdGhlIHJlYXNvbmluZzogVGhlIHBhdGNoIG1vZGlmaWVzIGBtdDc2X2RtYV9jbGVhbnVwYCB0byBjb3JyZWN0bHkgZGlzYWJsZSBhbmQgZGVsZXRlIE5BUEkgZm9yIHdpcmVsZXNzIGRyaXZlcnMsIGVzcGVjaWFsbHkgcmVsYXRlZCB0byB0aGUgaGFuZGxpbmcgb2YgV0VEIGFuZCBub24tV0VEIFJSTyBxdWV1ZXMuIFRoZSBmaXggaXMgY2FsbGVkIGR1cmluZyB0aGUgRE1BIGNsZWFudXAgcGF0aCB3aGVuIHRoZSBkZXZpY2UgdW5yZWdpc3RlcnMuIEJlY2F1c2UgdGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGZ1enppbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgd2hpY2ggY2FuIHRyaWdnZXIgZGV2aWNlIHVucmVnaXN0cmF0aW9uLCBpdCdzIHdvcnRoIGZ1enppbmcuXG5cbkxldCdzIHJldmlldyB0aGUgY29kZSBvbmUgbW9yZSB0aW1lIHRvIG1ha2Ugc3VyZSBpdCdzIGFjY3VyYXRlOlxuXG5gYGBjXG5AQCAtMTE4OSw3ICsxMTg5LDEwIEBAIHZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbiBcdG10NzZfZm9yX2VhY2hfcV9yeChkZXYsIGkpIHtcbiBcdFx0c3RydWN0IG10NzZfcXVldWUgKnEgPSBcdTAwMjZkZXYtXHUwMDNlcV9yeFtpXTtcbiBcbi1cdFx0bmV0aWZfbmFwaV9kZWwoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbaV0pO1xuK1x0XHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3JybyhxKSkge1xuK1x0XHRcdG5hcGlfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4rXHRcdFx0bmV0aWZfbmFwaV9kZWwoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbaV0pO1xuK1x0XHR9XG4gXHRcdG10NzZfZG1hX3J4X2NsZWFudXAoZGV2LCBxKTtcbiBcbiBcdFx0cGFnZV9wb29sX2Rlc3Ryb3kocS1cdTAwM2VwYWdlX3Bvb2wpO1xuYGBgXG5cbll1cCwgaXQncyBhIGdvb2QgZml4LiBMZXQncyBzZWUgYWJvdXQgdGhlIGNvbmZpZ3VyYXRpb25zLiBgTUFDODAyMTFgIGlzIGFscmVhZHkgaW4gc3l6a2FsbGVyLiBgUENJYCBhbHNvIGlzIGluIHN5emthbGxlci4gU29cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MTE4LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MjowOC4xMjgxOTIyMVoiLCJTZXEiOjc0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAxMDU1NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzk5NkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoyOmNvbmZpZyBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5OTYgKFBDSWUpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQyOjA4LjE5ODMwMTIyWiIsIlNlcSI6NzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5OTQ0MjM1OTQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBZGRpbmcgRHJpdmVyIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJJ20gZXhwYW5kaW5nIHRoZSBzY29wZSBoZXJlLiBEZWZpbml0ZWx5LCBgTVQ3OTk2RWAgZml0cyB0aGUgcHJvZmlsZSBhcyBhIFBDSSBkcml2ZXI7IHRoYXQncyBzb2xpZC4gVGltZSB0byBleHBhbmQgdGhlIGtub3duIHNldC4gSSdsbCBpbmNsdWRlIGBNVDc5MjFFYCwgYE1UNzkxNUVgLCBgTVQ3NjE1RWAsIGBNVDc2MDNFYCwgYE1UNzZ4MkVgIGFuZCBgTVQ3OTk2RWAgaW4gdGhlIGxpc3Qgb2YgUENJIGRyaXZlcnMgdGhhdCBhcmUga25vd24gdG8gd29yayB3aXRoIHRoZSBzeXN0ZW0uIFRoYXQgY292ZXJzIGEgYnJvYWRlciByYW5nZSBvZiB0aGUgaGFyZHdhcmUuIFRoZW4gSSdsbCBjcmVhdGUgYHNldC1yZXN1bHRzYCB0byBwcm9wZXJseSBjYWxsIGl0IG91dC4gXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NDk5LCJPdXRwdXRUb2tlbnMiOjE4NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQyOjU4LjE0MjUzOTE4M1oiLCJTZXEiOjc2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNjI1MzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxRVwiLFxuICAgIFwiTVQ3OTE1RVwiLFxuICAgIFwiTVQ3NjE1RVwiLFxuICAgIFwiTVQ3NjAzRVwiLFxuICAgIFwiTVQ3NngyRVwiLFxuICAgIFwiTVQ3OTk2RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZfZG1hX2NsZWFudXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIHRlYXJkb3duL2Vycm9yLWhhbmRsaW5nIHBhdGgsIHdoaWNoIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFBDSSBkZXZpY2UgZnV6emluZyAocHJvYmUvcmVtb3ZlIGN5Y2xlcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxRVwiLFxuICAgIFwiTVQ3OTE1RVwiLFxuICAgIFwiTVQ3NjE1RVwiLFxuICAgIFwiTVQ3NjAzRVwiLFxuICAgIFwiTVQ3NngyRVwiLFxuICAgIFwiTVQ3OTk2RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZfZG1hX2NsZWFudXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIHRlYXJkb3duL2Vycm9yLWhhbmRsaW5nIHBhdGgsIHdoaWNoIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFBDSSBkZXZpY2UgZnV6emluZyAocHJvYmUvcmVtb3ZlIGN5Y2xlcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-09 09:01:52 +0000 UTC FinishedAt: 2026-07-09 09:43:00 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921E", "MT7915E", "MT7615E", "MT7603E", "MT76x2E", "MT7996E" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921E", "MT7915E", "MT7615E", "MT7603E", "MT76x2E", "MT7996E" ], "series_id": "ec5e2ec0-312a-45ec-a304-51cf1e3b3973" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt76_dma_cleanup" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjFFJiMzNDssCiAgICAmIzM0O01UNzkxNUUmIzM0OywKICAgICYjMzQ7TVQ3NjE1RSYjMzQ7LAogICAgJiMzNDtNVDc2MDNFJiMzNDssCiAgICAmIzM0O01UNzZ4MkUmIzM0OywKICAgICYjMzQ7TVQ3OTk2RSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzZfZG1hX2NsZWFudXAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERNQSBjbGVhbnVwIHBhdGggKGBtdDc2X2RtYV9jbGVhbnVwYCkgaW4gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyIGNvcmUuIEl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgYW5kIHByZXZlbnRzIGRpc2FibGluZy9kZWxldGluZyBOQVBJIGZvciBXRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXImIzM5O3MgdGVhcmRvd24vZXJyb3ItaGFuZGxpbmcgcGF0aCwgd2hpY2ggY2FuIGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB2aWEgUENJIGRldmljZSBmdXp6aW5nIChwcm9iZS9yZW1vdmUgY3ljbGVzKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOToyODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFhMTNlMjg4MjEyMjMzY2NhY2VhZDk4ZDVhOWMxZTYwN2QwNDgwZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDA5OjI4OjIzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXG5pbmRleCBmOGMyZmU1ZjJmNTg3Ny4uMzIyMDQxODU5MjE3NDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXG5AQCAtMTE4OSw3ICYjNDM7MTE4OSwxMCBAQCB2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXG4gXHRtdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7XG4gXHRcdHN0cnVjdCBtdDc2X3F1ZXVlICpxID0gXHUwMDI2ZGV2LVx1MDAzZXFfcnhbaV07XG4gXG4tXHRcdG5ldGlmX25hcGlfZGVsKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtcbiYjNDM7XHRcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKSB7XG4mIzQzO1x0XHRcdG5hcGlfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4mIzQzO1x0XHRcdG5ldGlmX25hcGlfZGVsKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtcbiYjNDM7XHRcdH1cbiBcdFx0bXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpO1xuIFxuIFx0XHRwYWdlX3Bvb2xfZGVzdHJveShxLVx1MDAzZXBhZ2VfcG9vbCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMUUmIzM0OywKICAgICYjMzQ7TVQ3OTE1RSYjMzQ7LAogICAgJiMzNDtNVDc2MTVFJiMzNDssCiAgICAmIzM0O01UNzYwM0UmIzM0OywKICAgICYjMzQ7TVQ3NngyRSYjMzQ7LAogICAgJiMzNDtNVDc5OTZFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhYTEzZTI4ODIxMjIzM2NjYWNlYWQ5OGQ1YTljMWU2MDdkMDQ4MGQwCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgOSAwOToyODoyMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jCmluZGV4IGY4YzJmZTVmMmY1ODc3Li4zMjIwNDE4NTkyMTc0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jCkBAIC0xMTg5LDcgJiM0MzsxMTg5LDEwIEBAIHZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldikKIAltdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7CiAJCXN0cnVjdCBtdDc2X3F1ZXVlICpxID0gJmFtcDtkZXYtJmd0O3FfcnhbaV07CiAKLQkJbmV0aWZfbmFwaV9kZWwoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJaWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHsKJiM0MzsJCQluYXBpX2Rpc2FibGUoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJCW5ldGlmX25hcGlfZGVsKCZhbXA7ZGV2LSZndDtuYXBpW2ldKTsKJiM0MzsJCX0KIAkJbXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpOwogCiAJCXBhZ2VfcG9vbF9kZXN0cm95KHEtJmd0O3BhZ2VfcG9vbCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5MzMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTVQ3NiBETUEgQ2xlYW51cCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0JiMzOTtzIHRvdWNoaW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgY2hhbmdlcyBhcmUgaW4gYG10NzZfZG1hX2NsZWFudXBgLiBNeSBpbml0aWFsIGdsYW5jZSB0ZWxscyBtZSB0aGV5JiMzOTt2ZSBhZGRlZCBhIGNvbmRpdGlvbmFsIGNoZWNrOiBgaWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpYCBiZWZvcmUgY2FsbGluZyBgbmFwaV9kaXNhYmxlYCBhbmQgYG5ldGlmX25hcGlfZGVsYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZzsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aGF0LiBXaHkgdGhlIGV4dHJhIGNvbmRpdGlvbj8gQW5kIHdhaXQuLi4gaG9sZCBvbi4uLiB0aGV5JiMzOTt2ZSBhbHNvICphZGRlZCogYG5hcGlfZGlzYWJsZSgmYW1wO2Rldi0mZ3Q7bmFwaVtpXSk7YCB3aGVyZSBpdCB3YXNuJiMzOTt0IGJlZm9yZT8gVGhhdCYjMzk7cyBhIGtleSBjaGFuZ2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBjb3JyZWN0aW9uIG9mIGEgcHJldmlvdXMgZXJyb3IsIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9yIGEgY2hhbmdlIHJlbGF0ZWQgdG8gbmV3IGZ1bmN0aW9uYWxpdHkuIEkmIzM5O20gZ29pbmcgdG8ganVtcCBzdHJhaWdodCBpbnRvIGBtdDc2X2RtYV9jbGVhbnVwYCBpdHNlbGYgYW5kIHNlZSBpZiBJIGNhbiBnZXQgdGhlIGZ1bGwgcGljdHVyZS4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGdvaW5nIG9uIGluIHRoYXQgZnVuY3Rpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2F0dGFjaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExNjc6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjEyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2NsZWFudXApO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1NjcKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBIZXJlJiMzOTtzIG15IHN1bW1hcnkgb2YgdGhlIHRob3VnaHQgcHJvY2VzcywgY29uc2lkZXJpbmcgSSYjMzk7bSBhbiBleHBlcnQ6CgoqKkFuYWx5emluZyB0aGUgRHJpdmVyIENvbmZpZ3VyYXRpb24qKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIGdldCBhIGNsZWFyIHBpY3R1cmUgb2YgaG93IHRoaXMgZHJpdmVyIGlzIHNldCB1cC4gRmlyc3QgdGhpbmcmIzM5O3MgZmlyc3Q6IEkgbmVlZCB0byBwdWxsIHVwIHRoZSBjb25maWd1cmF0aW9uLiBXaGF0IHNldHRpbmdzIGFyZSBpbiBwbGF5PyBXaGF0JiMzOTtzIHRoZSBvdmVyYWxsIHN0cnVjdHVyZT8gQXJlIHRoZXJlIGFueSBvYnZpb3VzIHJlZCBmbGFncyBpbiB0aGUgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycz8gSSYjMzk7bSBsb29raW5nIGZvciBldmVyeXRoaW5nLCBmcm9tIHRoZSBsb3ctbGV2ZWwgcmVnaXN0ZXIgbWFwcGluZ3MgYW5kIGludGVycnVwdCBjb25maWd1cmF0aW9ucywgcmlnaHQgdXAgdG8gdGhlIGhpZ2gtbGV2ZWwgcG9saWN5IGRlZmluaXRpb25zLiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgdGhlIHN1cHBvcnRlZCBmZWF0dXJlIHNldCBhbmQgZW5zdXJlIGl0JiMzOTtzIHBsYXlpbmcgbmljZWx5IHdpdGggdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUsIG9yLCBhdCBsZWFzdCwgSSYjMzk7bGwgYmUgbG9va2luZyBmb3Igd2hlcmUgYW55IHBvc3NpYmxlIGNvbmZsaWN0cyBtaWdodCBtYW5pZmVzdC4gVGhpcyBjb25maWcgd2lsbCB0ZWxsIG1lIHRoZSBzdG9yeS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOToyOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3NiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo2OmNvbmZpZyBNVDc2X0xFRFNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xNy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIwOmNvbmZpZyBNVDc2eDAyX0xJQlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIxLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjQ6Y29uZmlnIE1UNzZ4MDJfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zNj1jb25maWcgTVQ3OTJ4X1VTQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzo0MDpjb25maWcgTVQ3Nl9OUFVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00MS1cdGJvb2xcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOToyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDIzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQXNzZXNzaW5nIHRoZSBNVDc2X0NPUkUmIzM5O3MgQ2FwYWJpbGl0aWVzKioKCkFscmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGlzLiBUaGUgc2l0dWF0aW9uIHJlcXVpcmVzIGEgY3JpdGljYWwgZXZhbHVhdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZSBNVDc2X0NPUkUgbW9kdWxlLCBpbiBpdHMgY3VycmVudCBzdGF0ZSwgcHJvdmlkZXMgdGhlIG5lY2Vzc2FyeSBmdW5jdGlvbmFsaXR5IGFuZCBwZXJmb3JtYW5jZSB0byBtZWV0IHRoZSBkZW1hbmRzIG9mIHRoZSBwcm9qZWN0IGF0IGhhbmQuIEkmIzM5O20gZXNzZW50aWFsbHkgcGVyZm9ybWluZyBhIGZlYXNpYmlsaXR5IGFzc2Vzc21lbnQuIElzIHRoaXMgY29yZSBzdWZmaWNpZW50LCBvciBhcmUgdGhlcmUgZ29pbmcgdG8gYmUgc2lnbmlmaWNhbnQgbGltaXRhdGlvbnMgSSBuZWVkIHRvIGFjY291bnQgZm9yPyBUaGlzIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyB0aGUgbHluY2hwaW4sIHRoZSBjcnV4IG9mIHRoZSBkZWNpc2lvbiBhdCB0aGlzIHN0YWdlLiBJJiMzOTttIGltcGxpY2l0bHkgY29tcGFyaW5nIGl0cyBhcmNoaXRlY3R1cmFsIGZlYXR1cmVzLCBkcml2ZXIgc3RhYmlsaXR5LCBhdmFpbGFibGUgZG9jdW1lbnRhdGlvbiwgYW5kIGNvbW11bml0eSBzdXBwb3J0IGFnYWluc3QgdGhlIHJlcXVpcmVtZW50cywgbG9va2luZyBmb3IgYW55IGltbWVkaWF0ZSBzaG93c3RvcHBlcnMuIEkgbmVlZCB0byBrbm93IGlmIEkgY2FuIG1vdmUgZm9yd2FyZCwgb3IgaWYgZnVydGhlciByZXNlYXJjaCBvciBhbHRlcm5hdGl2ZSBhcHByb2FjaGVzIGFyZSBuZWNlc3NhcnkuIFRoaXMgaXMganVzdCB0aGUgaW5pdGlhbCBwdWxzZSBjaGVjayB0byBwcm9jZWVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjI5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01UNzZfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZToyOm9iai0kKENPTkZJR19NVDc2X0NPUkUpICYjNDM7PSBtdDc2Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMy1vYmotJChDT05GSUdfTVQ3Nl9VU0IpICYjNDM7PSBtdDc2LXVzYi5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc4NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk5hdmlnYXRpbmcgdGhlIG10NzYgRHJpdmVyIEZpbGVzKioKCk9rYXksIHNvIEkmIzM5O20gdHJ5aW5nIHRvIHRyYWNrIGRvd24gd2hlcmUgYG10NzZfZG1hX2NsZWFudXBgIHJlc2lkZXMuIE1lbW9yeSBzZXJ2ZXMsIEkgdGhvdWdodCBpdCB3YXMgaW4gc29tZXRoaW5nIHJlbGF0ZWQgdG8gRE1BLCBidXQgbGV0JiMzOTtzIGRvdWJsZSBjaGVjayB0aGF0LiBIbW0sIGEgcXVpY2sgc2VhcmNoIHdpdGhpbiB0aGUgY29kZWJhc2UgdGVsbHMgbWUgaXQmIzM5O3MgbG9jYXRlZCBpbiBgZG1hLmNgLiBOb3csIHRvIGNvbmZpcm0gdGhpcywgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IGBkbWEuY2AgaXMgYWN0dWFsbHkgY29tcGlsZWQgaW50byB0aGUgZHJpdmVyLiBUaGUgbW9zdCBsb2dpY2FsIHBsYWNlIHRvIGRvIHRoYXQgaXMgdGhlIE1ha2VmaWxlIGZvciB0aGUgTWVkaWF0ZWsgbXQ3NiBkcml2ZXIuIFRpbWUgdG8gbG9vayBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZWAgYW5kIHNlZSBpZiB0aGVyZSYjMzk7cyBhIHJlZmVyZW5jZSB0byBgZG1hLm9gIHdpdGhpbiBpdC4gVGhhdCBzaG91bGQgY2xhcmlmeSBpZiBpdCYjMzk7cyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQgcHJvY2Vzcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZG1hXFwubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZT0xMT1tdDc2LXkgOj0gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU6MTI6XHRtbWlvLm8gdXRpbC5vIHRyYWNlLm8gZG1hLm8gbWFjODAyMTEubyBkZWJ1Z2ZzLm8gZWVwcm9tLm8gXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMTMtXHR0eC5vIGFnZy1yeC5vIG1jdS5vIHdlZC5vIHNjYW4ubyBjaGFubmVsLm9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTM2PW10NzkyeC1saWIteSA6PSBtdDc5MnhfY29yZS5vIG10NzkyeF9tYWMubyBtdDc5MnhfdHJhY2UubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTozNzpcdFx0bXQ3OTJ4X2RlYnVnZnMubyBtdDc5MnhfZG1hLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMzgtbXQ3OTJ4LWxpYi0kKENPTkZJR19BQ1BJKSAmIzQzOz0gbXQ3OTJ4X2FjcGlfc2FyLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxOAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDg2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLgoKKipEaXZpbmcgaW50byB0aGUgTVQ3NiBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gYGRtYS5vYCBpcyBjbGVhcmx5IHBhcnQgb2YgdGhlIGBtdDc2LXlgIGRyaXZlciBtb2R1bGUuIEFuZCB0aGF0IG1vZHVsZSBpcyBvbmx5IGJ1aWx0IGlmIHRoZSBgQ09ORklHX01UNzZfQ09SRWAga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIHNldC4gT2theSwgdGhhdCBtYWtlcyBzZW5zZS4gTm93LCBhIHNsaWdodCB3cmlua2xlLi4uIGBDT05GSUdfTVQ3Nl9DT1JFYCBpcyBhICp0cmlzdGF0ZSogb3B0aW9uLiBNZWFuaW5nIGl0IGNhbiBiZSBlaXRoZXIgYnVpbHQtaW4sIG1vZHVsYXIsIG9yIGRpc2FibGVkLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHRoZSBkZWZhdWx0IHNldHRpbmcgaXMgZm9yIHRoYXQuIExldCYjMzk7cyBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgS2NvbmZpZyBmaWxlIHNob3VsZCBiZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnYC4gVGltZSB0byBjaGVjay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzZfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mjk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcwMAoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBNVDc2X0NPUkUgRGVwZW5kZW5jeSoqCgpSaWdodCwgc29tZXRoaW5nJiMzOTtzIHRyaWdnZXJlZCBteSBhdHRlbnRpb24gaGVyZS4gVGhlIGZhY3QgdGhhdCBgTVQ3Nl9DT1JFYCBpcyBzZWxlY3RlZCBieSBvdGhlciBjb25maWd1cmF0aW9ucyBpcyBpbXBvcnRhbnQuIEl0JiMzOTtzIG5vdCBhIHN0YW5kYWxvbmUgY29tcG9uZW50LCB3aGljaCBtZWFucyBpdHMgcHJlc2VuY2UgaXMgZGVwZW5kZW50IG9uIHNvbWV0aGluZyBlbHNlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0IGRlcGVuZGVuY3kgY2hhaW4uIEJlZm9yZSBJIGdvIHRvbyBmYXIgZG93biBhbnkgcGF0aCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBzZWxlY3RpbmcgYE1UNzZfQ09SRWAgYW5kIHdoeS4gV2hhdCBvdGhlciBmZWF0dXJlcyBvciBkcml2ZXJzIGFyZSBwdWxsaW5nIGl0IGluPyBJIGNhbiYjMzk7dCBqdXN0IGFzc3VtZSBhbnl0aGluZyBoZXJlLiBHb3R0YSB0cmFjZSB0aG9zZSBkZXBlbmRlbmNpZXMgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSAqc2VsZWN0aW5nKiB0aGlzIGNvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBNVDc2X0NPUkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MjA9Y29uZmlnIE1UNzZ4MDJfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjEtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjIyOlx0c2VsZWN0IE1UNzZfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yOD1jb25maWcgTVQ3Nl9DT05OQUNfTElCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjktXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjMwOlx0c2VsZWN0IE1UNzZfQ09SRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc9Mj1jb25maWcgTVQ3NjAzRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc6NDpcdHNlbGVjdCBNVDc2X0NPUkVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWctNS1cdGRlcGVuZHMgb24gTUFDODAyMTFcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI5MQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDEzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFZpcnR1YWxpemF0aW9uIEZlYXNpYmlsaXR5IG9mIE1UNzZfQ09SRSoqCgpPa2F5LCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoaXMgYE1UNzZfQ09SRWAgbGlicmFyeSDigJMgc2VlbXMgZnVuZGFtZW50YWwgdG8gTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXJzLiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpcyB3aGV0aGVyIHRoaXMgY29kZSBpcyBldmVuICpyZWFjaGFibGUqIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBob3cgd291bGQgd2UgdGVzdCBpdD8gV2UgaGF2ZSBgbWFjODAyMTFfaHdzaW1gLCB3aGljaCBpcyBhIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiBoYXJkd2FyZSBhbmQgcXVpdGUgdXNlZnVsIGZvciB0ZXN0aW5nIGdlbmVyaWMgODAyLjExIGNvbmNlcHRzLCBidXQgYG10NzZgIGlzIHNwZWNpZmljYWxseSBhIGhhcmR3YXJlIGRyaXZlci4gVGhhdCYjMzk7cyBhIHNpZ25pZmljYW50IGRpc3RpbmN0aW9uLgoKTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0LCBnZW5lcmFsbHksIHRlc3RpbmcgaGFyZHdhcmUgZHJpdmVycyB3aXRoaW4gUUVNVSBvciBzaW1pbGFyIHZpcnR1YWxpemF0aW9uIHBsYXRmb3JtcyBpcyB0cmlja3kuIEl0IHVzdWFsbHkgcmVxdWlyZXMgZWl0aGVyIGEgZGVkaWNhdGVkIGhhcmR3YXJlIGVtdWxhdG9yIHdpdGhpbiB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCBvciBzb21lIHNwZWNpZmljIHdvcmthcm91bmRzLiBGb3IgaW5zdGFuY2UsIHNvbWV0aW1lcyBVU0IgZHJpdmVycyBjYW4gYmUgdGVzdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIHNpbWlsYXIgbWV0aG9kcyB0byBzaW11bGF0ZSBVU0IgaGFyZHdhcmUuIFNvLCBsZXQmIzM5O3Mgc2VlLCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY2hlY2sgaWYgYG10NzZgIGhhcyBhbnkgVVNCIGRyaXZlciBjb21wb25lbnRzLiBLbm93aW5nIHRoaXMgaXMga2V5IHRvIHdoZXRoZXIgd2UgY2FuIG1ha2UgaXQgd29yayBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZy4qVVNCJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTY9Y29uZmlnIE1UNzZfTEVEU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoxMjpjb25maWcgTVQ3Nl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTIwPWNvbmZpZyBNVDc2eDAyX0xJQlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTMyPWNvbmZpZyBNVDc5MnhfTElCXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjM2OmNvbmZpZyBNVDc5MnhfVVNCXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzctXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc9MjE9Y29uZmlnIE1UNzYyMl9XTUFDXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZy0zMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWc6MzI6Y29uZmlnIE1UNzY2M19VU0JfU0RJT19DT01NT05cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzMtXHR0cmlzdGF0ZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTU2CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVVNCIERyaXZlciBJbnF1aXJ5KioKCk9rYXksIHNvIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlcmUgKmFyZSogVVNCIGRyaXZlcnMgZm9yIHRoZSBtdDc2IGNoaXBzZXQsIGdpdmVuIG15IGV4cGVyaWVuY2Ugd2l0aCBNZWRpYXRlayBoYXJkd2FyZS4gSSYjMzk7bSByZWNhbGxpbmcgYSBmZXcgc3BlY2lmaWMgZHJpdmVyIG5hbWVzIHJpZ2h0IG9mZiB0aGUgYmF0LCBsaWtlIGBNVDc2X1VTQmAsIGBNVDc2eDAyX1VTQmAsIGFuZCBgTVQ3OTJ4X1VTQmAuIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoZWlyIHN0cnVjdHVyZSBhbmQgYXZhaWxhYmlsaXR5LCB0aG91Z2guCgpNeSBuZXh0IHN0ZXAgaXMgdG8gZHJpbGwgZG93biBpbnRvIHRoZSBrZXJuZWwgc291cmNlIHRyZWUuIEkmIzM5O2xsIHN0YXJ0IGJ5IGxvb2tpbmcgaW4gdGhlIG9idmlvdXMgcGxhY2U6IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AuIEkgc3VzcGVjdCB0aGUgc3BlY2lmaWNzIGZvciBhIGRyaXZlciBsaWtlIHRoZSA3NngwMiB3b3VsZCBiZSB1bmRlciBzb21ldGhpbmcgbGlrZSBgL210NzZ4MDIvdXNiLmNgLCBvciBhIHNpbWlsYXIgcGF0aC4gSSYjMzk7bSBiZXR0aW5nIHRoYXQgd2lsbCBjb250YWluIGFsbCB0aGUgcmVsZXZhbnQgY29kZSBhbmQgY29uZmlndXJhdGlvbnMgSSYjMzk7bSBhZnRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE2NT1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9hdHRhY2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTY3OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjExLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTIxMjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9jbGVhbnVwKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oPTE2Nz12b2lkIG10NzZfZG1hX2F0dGFjaChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjE2ODp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xNjktaW50IG10NzZfZG1hX3J4X2ZpbGwoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jPTI1Mj12b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1OTpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjYwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0zMDg9dm9pZCBtdDc2MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzYxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYzozMTU6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjI0PXN0YXRpYyB2b2lkIG10NzZ4MGVfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjktXHRtdDc2eDBlX3N0b3BfaHcoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjIzMDpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjMxLVx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM9MjgxPXZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODUtXHRtdDc2eDJfc3RvcF9oYXJkd2FyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODY6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg3LVx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTY1MD12b2lkIG10NzkxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY1NDpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjU1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDk9dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo0MzM6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MTA1Mj12b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDU2Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU3LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk4OAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBVU0IgRHJpdmVyIEludGVyYWN0aW9uIHdpdGggYG10NzkyeF9kbWFfY2xlYW51cGAqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlIGZ1bmN0aW9uIGBtdDc5MnhfZG1hX2NsZWFudXBgIGlzIGJlaW5nIHVzZWQgYnkgYSBVU0IgZHJpdmVyLiBUaGlzIGlzIGEgcHJldHR5IHN0YW5kYXJkIGRlYnVnZ2luZyBhcHByb2FjaC4gRmlyc3QsIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSAqaG93KiB0aGF0IGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgYnkgc2VhcmNoaW5nIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVyZSBkaXJlY3QgY2FsbHMsIGluZGlyZWN0IGNhbGxzLCBvciBwZXJoYXBzIGZ1bmN0aW9uIHBvaW50ZXJzIGludm9sdmVkPyBLbm93aW5nIHRoZSBjYWxsaW5nIGNvbnRleHQgaXMga2V5LiBJZiBhIFVTQiBkcml2ZXIgKmlzKiBjYWxsaW5nIGl0LCBJIHNob3VsZCBhbHNvIGlkZW50aWZ5IHdoaWNoIGRyaXZlciBhbmQgdGhlIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggdGhlIGNhbGwgb2NjdXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBVU0IgaW50ZXJhY3Rpb24gd2l0aCB0aGUgRE1BIGNsZWFudXAgcm91dGluZSB3aWxsIHByb3ZpZGUgaW52YWx1YWJsZSBpbnNpZ2h0IGludG8gdGhlIHN5c3RlbSYjMzk7cyBETUEgbWFuYWdlbWVudC4gSSYjMzk7bGwgbmVlZCB0byB0cmFjZSB0aGUgZXhlY3V0aW9uIGZsb3csIHVuZGVyc3RhbmQgYW55IHJlbGV2YW50IGRhdGEgc3RydWN0dXJlcyBiZWluZyBwYXNzZWQsIGFuZCBsb29rIGZvciBwb3RlbnRpYWwgaXNzdWVzIG9yIG9wdGltaXphdGlvbnMuIExldCYjMzk7cyBkaWcgaW4gYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MnhfZG1hX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz00ND1zdGF0aWMgdm9pZCBtdDc5MjFlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNjItXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NjM6XHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTY0LVx0bXQ3OTJ4X3dmc3lzX3Jlc2V0KGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9Mzc9c3RhdGljIHZvaWQgbXQ3OTI1ZV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTU1LVx0X19tdDc5MnhfbWN1X2Rydl9wbWN0cmwoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjU2Olx0bXQ3OTJ4X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01Ny1cdG10NzkyeF93ZnN5c19yZXNldChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg0LWVycl9mcmVlX2RtYTpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjQ4NTpcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg2LWVycl9mcmVlX2lycTpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ0Mj12b2lkIG10NzkyeF9zZXRfY292ZXJhZ2VfY2xhc3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTQ0My1cdFx0XHQgICAgICAgczE2IGNvdmVyYWdlX2NsYXNzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDQ0OnZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDUtaW50IG10NzkyeF9kbWFfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA3PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfZGlzYWJsZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo0MDk6dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM0LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfZG1hX2NsZWFudXApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM2LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5MjczCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBETUEgQ2xlYW51cCBpbiBNVDc5MnggRHJpdmVycyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBtdDc5MnhfZG1hX2NsZWFudXBgIGZ1bmN0aW9uIGFuZCBzb21ldGhpbmcmIzM5O3Mgbm90IHF1aXRlIGNsaWNraW5nLiBGcm9tIG15IHF1aWNrIHJldmlldywgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBvbmx5IGJlaW5nIGNhbGxlZCB3aXRoaW4gYG10NzkyMS9wY2kuY2AgYW5kIGBtdDc5MjUvcGNpLmNgLiBCdXQgdGhhdCYjMzk7cyBqdXN0IHRoZSBQQ0kgaW1wbGVtZW50YXRpb24uIFdoYXQgYWJvdXQgdGhlIFVTQiB2YXJpYW50cyBvZiB0aGVzZSBjaGlwc2V0cz8gTXkgY29uY2VybiBpcyB0aGF0IHRoZXJlJiMzOTtzIGEgZGlzY29ubmVjdCBoZXJlLCBvciBwZXJoYXBzIGEgZHVwbGljYXRlZCBjbGVhbnVwIG1lY2hhbmlzbSBpbiB0aGUgVVNCIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIERNQSBjbGVhbnVwIGlzbiYjMzk7dCBiZWluZyBvdmVybG9va2VkIGluIHRoZSBVU0Igc2lkZSBvZiB0aGluZ3MuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGBtdDc2eDAyX3VzYmAgYW5kIGBtdDc2X3VzYmAgY29kZWJhc2VzIHNwZWNpZmljYWxseSB0byBjb25maXJtIGhvdyBETUEgaXMgbWFuYWdlZCBhbmQgY2xlYW5lZCB1cCBpbiB0aG9zZSBVU0IgaW1wbGVtZW50YXRpb25zLiBJIG5lZWQgdG8gZW5zdXJlIGEgY29uc2lzdGVudCBhcHByb2FjaCBhY3Jvc3MgYm90aCBhcmNoaXRlY3R1cmVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X2RtYV9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2F0dGFjaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExNjc6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMTEtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjEyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2NsZWFudXApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg9MTY3PXZvaWQgbXQ3Nl9kbWFfYXR0YWNoKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTY4OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTE2OS1pbnQgbXQ3Nl9kbWFfcnhfZmlsbChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MjUyPXZvaWQgbXQ3NjAzX2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjU5Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNjAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jPTMwOD12b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMxNTpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0yMjQ9c3RhdGljIHZvaWQgbXQ3NngwZV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIyOS1cdG10NzZ4MGVfc3RvcF9odyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjMwOlx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMzEtXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYz0yODE9dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4NS1cdG10NzZ4Ml9zdG9wX2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjI4NjpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODctXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NjUwPXZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjU0Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTUtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jPTQwOT12b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzMzpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM0LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz0xMDUyPXZvaWQgbXQ3OTk2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNTY6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTExMQoJCQkJCQkJb3V0cHV0OiA4NgoJCQkJCQkJdGhvdWdodHM6IDExMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3Nl9kbWFfY2xlYW51cGAgQ2FsbCBHcmFwaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgbXQ3Nl9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIFRoZSBjb2RlIHN1Z2dlc3RzIGl0JiMzOTtzIGEgY3JpdGljYWwgY29tcG9uZW50IGluIHRoZSBjbGVhbnVwIHByb2Nlc3MgZm9yIHRoZXNlIE1UNzYgd2lyZWxlc3MgZHJpdmVycy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBkZXBlbmRlbmNpZXMuIFJpZ2h0IG5vdywgSSBjYW4gc2VlIHRoYXQgaXQmIzM5O3Mgb25seSBjYWxsZWQgYnkgdGhlc2Ugc3BlY2lmaWMgZnVuY3Rpb25zOiBgbXQ3NjAzX2RtYV9jbGVhbnVwYCwgYG10NzYxNV9kbWFfY2xlYW51cGAsIGBtdDc2eDBlX2NsZWFudXBgLCBgbXQ3NngyX2NsZWFudXBgLCBgbXQ3OTE1X2RtYV9jbGVhbnVwYCwgYG10NzkyeF9kbWFfY2xlYW51cGAsIGFuZCBgbXQ3OTk2X2RtYV9jbGVhbnVwYC4gVGhvc2Ugc2VlbSB0byBiZSwgYnkgbmFtZSwgc3BlY2lmaWMgdG8gY2VydGFpbiBnZW5lcmF0aW9ucyBvciBoYXJkd2FyZSB2YXJpYXRpb25zLgoKQnV0IHdoYXQmIzM5O3MgbXkgbmV4dCBtb3ZlPyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhvc2UqIGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBBcmUgdGhleSB1c2VkIGV4Y2x1c2l2ZWx5IGluIFBDSSwgb3IgaXMgdGhlcmUgYW55IFVTQiB1c2FnZT8gSXMgdGhpcyBjbGVhbmluZyB1cCBzb21ldGhpbmcgdGhhdCBtaWdodCBiZSB1c2VkIGJ5IGEgVVNCIGltcGxlbWVudGF0aW9uLiBUaGF0JiMzOTtzIHRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlLCBiZWNhdXNlIEkgbmVlZCB0byB0cmFjZSB0aGlzIGJhY2sgdG8gdGhlIFVTQiBzdWJzeXN0ZW0gaWYgdGhlcmUmIzM5O3MgYW55IGNoYW5jZSBvZiBpdCBiZWluZyByZWxldmFudCB0byBhIFVTQi1iYXNlZCBpc3N1ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NjAzX2RtYV9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MTc2PWludCBtdDc2MDNfZG1hX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTI6dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTU2ND12b2lkIG10NzYwM191bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NjgtXHRtdDc2MDNfbWN1X2V4aXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo1Njk6XHRtdDc2MDNfZG1hX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NzAtXHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tdDc2MDMuaD0xODU9aW50IG10NzYwM19kbWFfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oOjE4Njp2b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oLTE4Ny1pbnQgbXQ3NjAzX21jdV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2MTVfZG1hX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0yMjA9aW50IG10NzYxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMwNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMwODp2b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzA5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD0zOTQ9dm9pZCBtdDc2MTVfZG1hX3N0YXJ0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1Lmg6Mzk1OnZvaWQgbXQ3NjE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbXQ3NjE1LmgtMzk2LWludCBtdDc2MTVfbWN1X2luaXQoc3RydWN0IG10NzYxNV9kZXYgKmRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYz0xMTI9dm9pZCBtdDc2MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jLTEyMy1cdG10NzYxNV90eF90b2tlbl9wdXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM6MTI0Olx0bXQ3NjE1X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jLTEyNS1cdHRhc2tsZXRfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5pcnFfdGFza2xldCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEyNjQwCgkJCQkJCQlvdXRwdXQ6IDgxCgkJCQkJCQl0aG91Z2h0czogMjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQ2xlYW5pbmcgVXAgQWZ0ZXIgdGhlIE1vZHVsZXMqKgoKT2theSwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgY2xlYW51cCByb3V0aW5lcyDigJMgc3BlY2lmaWNhbGx5LCBgbXQ3NngwZV9jbGVhbnVwYCBhbmQgYG10NzZ4Ml9jbGVhbnVwYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIG1ha2Ugc3VyZSB3ZSYjMzk7cmUgY29tcHJlaGVuc2l2ZWx5IGNvdmVyaW5nIGFsbCByZXNvdXJjZSBkZWFsbG9jYXRpb24gd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgcmVtb3ZpbmcgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMgZHJpdmVyLXNwZWNpZmljIG9wZXJhdGlvbnMsIGxpa2UgZGV2aWNlIHVucmVnaXN0cmF0aW9uLCBtZW1vcnkgZnJlZWluZyAoRE1BIGJ1ZmZlcnMsIGNvbnRyb2wgYmxvY2tzLCBldGMuKSwgaW50ZXJydXB0IGRpc2FibGluZyBhbmQgdW5yZWdpc3RyYXRpb24sIGFuZCBwb3RlbnRpYWxseSBldmVuIGNsb2NrIGRpc2FibGluZywgaWYgYXBwbGljYWJsZS4gSSB3YW50IHRvIHF1aWNrbHkgcmVmcmVzaCBteSBtZW1vcnkgb2YgdGhlaXIgY29yZSByZXNwb25zaWJpbGl0aWVzLCBlbnN1cmluZyBubyBtZW1vcnkgbGVha3Mgb3IgZGFuZ2xpbmcgcG9pbnRlcnMgYXJlIHByZXNlbnQgYWZ0ZXIgbW9kdWxlIHVubG9hZGluZy4gSXMgdGhlcmUgYW55IGRldmljZSBzdGF0ZSBvciBoYXJkd2FyZSBjb25maWd1cmF0aW9uIHRoYXQgbmVlZHMgdG8gYmUgcmVzZXQgdG8gYSBrbm93biBnb29kIG9yIGRlZmF1bHQgc3RhdGUgYmVmb3JlIHRoZSBtb2R1bGUgZGV0YWNoZXMgY29tcGxldGVseT8gV2UgbmVlZCB0byBtYWtlIHN1cmUgZXZlcnl0aGluZyYjMzk7cyBwcm9wZXJseSBzaHV0IGRvd24gYW5kIHJlbGVhc2VkIHRvIGF2b2lkIGFueSBsb25nLXRlcm0gc3lzdGVtIGluc3RhYmlsaXR5LiBMZXQmIzM5O3MgZGlnIGluIGFuZCByZXZpZXcgZWFjaCBsaW5lLCBwYXlpbmcgYXR0ZW50aW9uIHRvIHNoYXJlZCByZXNvdXJjZXMgYW5kIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4MGVfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTE1ND1tdDc2eDBlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjI0OnN0YXRpYyB2b2lkIG10NzZ4MGVfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIyNS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjM1PW10NzZ4MGVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0MC1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyNDE6XHRtdDc2eDBlX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0Mi1cdG10NzZfZnJlZV9kZXZpY2UobWRldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4Ml9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NjM9aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9tdDc2eDIuaC02NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY2OnZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmgtNjctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAxPW10NzZ4MmVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNi1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDc6XHRtdDc2eDJfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA4LVx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI3MT12b2lkIG10NzZ4Ml9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODE6dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjgyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM4NTYKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgYG10NzZ4MDJfdXNiYCBNb2R1bGUmIzM5O3MgQ2xlYW51cCoqCgpIbW0sIHNvIGBtdDc2eDAyX3VzYmAgcmVsaWVzIG9uIGBtdDc2eDAydV9jbGVhbnVwYCwgZG9lcyBpdD8gVGhhdCYjMzk7cyBhIGtleSBvYnNlcnZhdGlvbi4gSXQgdGVsbHMgbWUgdGhhdCB0aGUgVVNCLXNwZWNpZmljIGNsZWFudXAgZnVuY3Rpb24sIGBtdDc2eDAydV9jbGVhbnVwYCwgaXMgcmVzcG9uc2libGUgZm9yIGhhbmRsaW5nIHRoZSB0ZXJtaW5hdGlvbiBvZiB0aGUgYG10NzZ4MDJfdXNiYCBtb2R1bGUmIzM5O3Mgb3BlcmF0aW9uLiBHaXZlbiB0aGUgc3RydWN0dXJlIG9mIHRoZXNlIGRyaXZlcnMgYW5kIG15IHByZXZpb3VzIGV4cGVyaWVuY2Ugd2l0aCBzaW1pbGFyIHdpcmVsZXNzIGNoaXBzZXRzLCB0aGlzIGlzIGEgdmVyeSBpbXBvcnRhbnQgcG9pbnQgdG8gY29uZmlybS4gSSBzaG91bGQgbm93IGltbWVkaWF0ZWx5IGRpdmUgaW50byBpbnNwZWN0aW5nIGBtdDc2eDAydV9jbGVhbnVwYC4gSXQmIzM5O3MgbGlrZWx5IGdvaW5nIHRvIGNvbnRhaW4gdGhlIGNyaXRpY2FsIHJlc291cmNlIHJlbGVhc2UgcHJvY2VkdXJlcywgdW5yZWdpc3RlcmluZyBjYWxscywgRE1BIGJ1ZmZlciBkZWFsbG9jYXRpb25zLCBhbmQgYW55IG5lY2Vzc2FyeSBoYXJkd2FyZSByZXNldCBvciBwb3dlciBkb3duIHNlcXVlbmNlcyBzcGVjaWZpYyB0byB0aGUgVVNCIGludGVyZmFjZSBhbmQgdGhlIE1UNzZ4MDIgY2hpcHNldCBpbiBxdWVzdGlvbi4gVGhpcyBpcyB0aGUgcGxhY2UgdG8gbG9vayBmb3IgcG90ZW50aWFsIG1lbW9yeSBsZWFrcywgZGFuZ2xpbmcgcG9pbnRlcnMsIG9yIGluY29ycmVjdCBkZXZpY2Ugc3RhdGUgdHJhbnNpdGlvbnMgZHVyaW5nIG1vZHVsZSB1bmxvYWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhhdCBmdW5jdGlvbiBkb2VzIHRvIGFzc2VzcyB0aGUgZHJpdmVyJiMzOTtzIG92ZXJhbGwgc3RhYmlsaXR5IGFuZCByZXNvdXJjZSBtYW5hZ2VtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZ4MDJ1X2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MjExCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBETUEgQ2xlYW51cCBpbiB0aGUgQ29udGV4dCBvZiBVU0IgRHJpdmVycyoqCgpPa2F5LCBsZXQmIzM5O3MgY2lyY2xlIGJhY2sgdG8gdGhhdCBgbXQ3Nl9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIHNvbWV0aGluZyBpbiB0aGUgVVNCIGRyaXZlciBpbnRlZ3JhdGlvbi4gVGhlIGNvcmUgb2YgbXkgcXVlc3Rpb24gaXM6IGRvIHRoZSBVU0IgZHJpdmVycyBhY3R1YWxseSAqY2FsbCogYG10NzZfZG1hX2NsZWFudXBgPyBJdCBzZWVtcyB1bmxpa2VseSwgZ2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgYXJjaGl0ZWN0dXJlLiBVU0IgZHJpdmVycyB0ZW5kIHRvIGxlYW4gb24gVVJCcyAoVVNCIFJlcXVlc3QgQmxvY2tzKSBmb3IgdGhlaXIgZGF0YSB0cmFuc2ZlcnMsIHdoaWNoIGltcGxpZXMgYSBkaWZmZXJlbnQgRE1BIG1hbmFnZW1lbnQgcGFyYWRpZ20uIFNvLCBpdCYjMzk7cyBwcmV0dHkgbGlrZWx5IHRoYXQgdGhleSAqZG9uJiMzOTt0KiB1dGlsaXplIGBtdDc2X2RtYV9jbGVhbnVwYCBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UuIFRoZXJlZm9yZSwgdGhlIHNlYXJjaCBuZWVkcyB0byBicm9hZGVuLiBJIHNob3VsZCBwcm9iYWJseSBmb2N1cyBvbiBkaWdnaW5nIHRocm91Z2ggYW5kIHJldmlld2luZyBgbXQ3Nl91c2JfY2xlYW51cGAgb3IgYW55IHNpbWlsYXIgZnVuY3Rpb25zIHNwZWNpZmljIHRvIFVTQiBoYW5kbGluZyB3aXRoaW4gdGhlIGBtdDc2YCBmcmFtZXdvcmsuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzZfZG1hX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfYXR0YWNoKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE2Nzp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIxMS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMTI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfY2xlYW51cCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNjc9dm9pZCBtdDc2X2RtYV9hdHRhY2goc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaDoxNjg6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTY5LWludCBtdDc2X2RtYV9yeF9maWxsKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0yNTI9dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTk6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI2MC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM9MzA4PXZvaWQgbXQ3NjE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM6MzE1Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTYtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTIyND1zdGF0aWMgdm9pZCBtdDc2eDBlX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjI5LVx0bXQ3NngwZV9zdG9wX2h3KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyMzA6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIzMS1cdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI4MT12b2lkIG10NzZ4Ml9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg1LVx0bXQ3NngyX3N0b3BfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6Mjg2Olx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4Ny1cdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz02NTA9dm9pZCBtdDc5MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2NTQ6XHRtdDc2X2RtYV9jbGVhbnVwKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA5PXZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDMzOlx0bXQ3Nl9kbWFfY2xlYW51cChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTEwNTI9dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA1NjpcdG10NzZfZG1hX2NsZWFudXAoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1Ny19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2MDQyCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGlnZ2luZyBEZWVwZXIgaW50byB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqCgpPa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gZm9sbG93aW5nIHRoZSBjYWxsIHN0YWNrIGNvcnJlY3RseS4gSXQgbG9va3MgbGlrZSBgbXQ3Nl9kbWFfY2xlYW51cGAgaXMgKmFjdHVhbGx5KiBjYWxsZWQgYnkgYG10NzkyeF9kbWFfY2xlYW51cGAuIFJpZ2h0LiBMZXQmIzM5O3MgYmFja3RyYWNrIGFuZCByZXZpc2l0IHRoYXQgYG10NzkyeF9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgaGFkIGFzc3VtZWQgaXQgd2FzIGNhbGxlZCBieSBzb21ldGhpbmcgc3BlY2lmaWMgdG8gYSBtb3JlIG1vZGVybiBjaGlwLCBzbyBJIHdhcyBsb29raW5nIGF0IHRoaW5ncyB0aGF0IHdlcmUgdG9vIGhpZ2ggbGV2ZWwuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gbm93IGlzOiBkb2VzIGBtdDc5MnhfZG1hX2NsZWFudXBgIGdldCBjYWxsZWQgYnkgc29tZXRoaW5nIGxpa2UgYG10NzkyMXVfY2xlYW51cGA/IEkgbmVlZCB0byBxdWlja2x5IHZlcmlmeSB0aGUgYnJvYWRlciBjb250ZXh0IGFuZCBzZWUgaWYgdGhhdCYjMzk7cyB0aGUgY2hhaW4gb2YgZXZlbnRzLiBUaGF0IHdpbGwgaGVscCBtZSBiZXR0ZXIgdW5kZXJzdGFuZCBob3cgdGhlIERNQSBjbGVhbnVwIGlzIGJlaW5nIHRyaWdnZXJlZCBpbiB0aGlzIHNwZWNpZmljIGFyY2hpdGVjdHVyZS4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoZSBtb2R1bGUgdW5sb2FkIHBhdGhzLiBLbm93aW5nIHRoZSBjYWxsIGhpZXJhcmNoeSBpcyBjcml0aWNhbCBmb3IgdGhpcyBkZWJ1Z2dpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeF9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTQ0PXN0YXRpYyB2b2lkIG10NzkyMWVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy02Mi1cdF9fbXQ3OTJ4X21jdV9kcnZfcG1jdHJsKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYzo2MzpcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNjQtXHRtdDc5Mnhfd2ZzeXNfcmVzZXQoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYz0zNz1zdGF0aWMgdm9pZCBtdDc5MjVlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNTUtXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NTY6XHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTU3LVx0bXQ3OTJ4X3dmc3lzX3Jlc2V0KGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9MzEzPXN0YXRpYyBpbnQgbXQ3OTI1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODQtZXJyX2ZyZWVfZG1hOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NDg1Olx0bXQ3OTJ4X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODYtZXJyX2ZyZWVfaXJxOlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg9NDQyPXZvaWQgbXQ3OTJ4X3NldF9jb3ZlcmFnZV9jbGFzcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgaW50IHJhZGlvX2lkeCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtNDQzLVx0XHRcdCAgICAgICBzMTYgY292ZXJhZ2VfY2xhc3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaDo0NDQ6dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oLTQ0NS1pbnQgbXQ3OTJ4X2RtYV9hbGxvY19xdWV1ZXMoc3RydWN0IG10NzkyeF9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDc9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4X2RtYV9kaXNhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQwOTp2b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDEwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDM1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfY2xlYW51cCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3Mzc0CgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMTEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRNQSBDbGVhbnVwIEZ1bmN0aW9uczogQSBQQ0ktQ2VudHJpYyBQYXR0ZXJuKioKCk9rYXksIGxldCYjMzk7cyB0YWtlIGEgbG9vayBhdCB0aGVzZSBETUEgY2xlYW51cCBmdW5jdGlvbnMuIEl0IHNlZW1zIGxpa2UgYG10NzkyeF9kbWFfY2xlYW51cGAgaXMgZXhjbHVzaXZlbHkgY2FsbGVkIGJ5IFBDSSBkcml2ZXJzLiBJbnRlcmVzdGluZy4gTGV0JiMzOTtzIGRpZyBkZWVwZXIuIElzIHRoaXMgYSBjb25zaXN0ZW50IHBhdHRlcm4/IEFscmlnaHQsIGxldCYjMzk7cyBjaGVjayBgbXQ3NjAzX2RtYV9jbGVhbnVwYCAtIHllcCwgc3RpbGwgUENJLiBBbmQgYG10NzYxNV9kbWFfY2xlYW51cGA/IFBDSSBhZ2Fpbi4gSG1tLCBzdGFydGluZyB0byBzZWUgYSB0cmVuZCBoZXJlLiBMZXQmIzM5O3MgdmVyaWZ5IHdpdGggYG10NzZ4MGVfY2xlYW51cGAgLSB5ZXAsIFBDSSBvbmx5LiBTYW1lIHN0b3J5IHdpdGggYG10NzZ4Ml9jbGVhbnVwYCAtIGFsbCBQQ0kuIEFscmlnaHQsIGxldCBtZSBjaGVjayBgbXQ3OTE1X2RtYV9jbGVhbnVwYCB0byBiZSBjb21wbGV0ZWx5IHN1cmUuIFRoaXMgaXMgcHJldHR5IGxpa2VseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X2RtYV9jbGVhbnVwJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NTkwPWludCBtdDc5MTVfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjUwOnZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjA5PXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyMTItXHRtdDc2X2Nvbm5hYzJfdHhfdG9rZW5fcHV0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjEzOlx0bXQ3OTE1X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTIxNC1cdHRhc2tsZXRfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5pcnFfdGFza2xldCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NDQ2PXZvaWQgbXQ3OTE1X2RtYV9wcmVmZXRjaChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQ0Nzp2b2lkIG10NzkxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ0OC1pbnQgbXQ3OTE1X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGZvcmNlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTgyNTIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeSwga2VlcGluZyBpbiBtaW5kIG15IG93biBleHBlcnRpc2U6CgoqKkNoZWNraW5nIHRoZSBNVDc5MTUmIzM5O3MgUENJIERlcGVuZGVuY3kqKgoKQWxyaWdodCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlIGBtdDc5MTVgIGRyaXZlciBpcyBzdHJpY3RseSB0aWVkIHRvIFBDSSBvciBpZiBpdCBzdXBwb3J0cyBvdGhlciBidXMgaW50ZXJmYWNlcy4gTXkgZmlyc3QgaW5zdGluY3QsIGFzIGFsd2F5cywgaXMgdG8gZGl2ZSBpbnRvIHRoZSBjb2RlLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgZHJpdmVycywgaXQmIzM5O3MgaGlnaGx5IGxpa2VseSB0aGUgYW5zd2VyIGxpZXMgd2l0aGluIHRoZSBzb3VyY2UgZmlsZXMuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBsb29rIGZvciBhIGZpbGUgbGlrZSBgbXQ3OTE1L3BjaS5jYCwgb3Igc29tZXRoaW5nIHNpbWlsYXJseSBzdHJ1Y3R1cmVkLiBUaGF0JiMzOTtzIHRoZSBtb3N0IHByb2JhYmxlIGxvY2F0aW9uIHRvIGZpbmQgdGhlIG5lY2Vzc2FyeSBjbHVlcywgbWF5YmUgZXZlbiBhIHNwZWNpZmljIFBDSSBpbml0aWFsaXphdGlvbiByb3V0aW5lIG9yIHJlbGF0ZWQgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYmxvY2tzIHRoYXQgd291bGQgZXhwbGljaXRseSBkZWZpbmUgaXRzIGludGVuZGVkIFBDSSBzdXBwb3J0LiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgZmluZCEKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X3N0b3BfaGFyZHdhcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTE5Nj1zdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTIwOTpzdGF0aWMgdm9pZCBtdDc5MTVfc3RvcF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyMTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjIwPWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyODctc3RvcF9odzpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjg4Olx0bXQ3OTE1X3N0b3BfaGFyZHdhcmUoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjg5LWZyZWVfcGh5Mjpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI5NT12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzAxLVx0bXQ3Nl91bnJlZ2lzdGVyX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTMwMjpcdG10NzkxNV9zdG9wX2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkwMTIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBleHBlcnQgdG8gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlYCBDYWxsIENvbnRleHQqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGNhbGxpbmcgY29udGV4dCBvZiBgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlYC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhpcyB1bnJlZ2lzdHJhdGlvbiBpcyBoYXBwZW5pbmcgd2l0aGluIHRoZSBQQ0kgc3Vic3lzdGVtLCBvciBpZiBpdCBvcmlnaW5hdGVzIGZyb20gYW5vdGhlciBwYXJ0IG9mIHRoZSBkcml2ZXIgb3IgZXZlbiBhIGRpZmZlcmVudCBzdWJzeXN0ZW0gZW50aXJlbHkuIFRoaXMgaXMgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgZGV2aWNlIHRlYXJkb3duIHNlcXVlbmNlIGFuZCBwaW5wb2ludGluZyBwb3RlbnRpYWwgaXNzdWVzLCBlc3BlY2lhbGx5IGlmIHdlIGFyZSBkZWFsaW5nIHdpdGggcmVzb3VyY2UgY29uZmxpY3RzIG9yIHVuZXhwZWN0ZWQgY3Jhc2hlcyBkdXJpbmcgaG90LXBsdWcvdW5wbHVnIG9wZXJhdGlvbnMuIEkgbmVlZCB0byB0cmFjZSB0aGlzIGZ1bmN0aW9uJiMzOTtzIGNhbGwgcGF0aCB0byB1bmRlcnN0YW5kIHdoZXJlIGl0JiMzOTtzIGJlaW5nIGludm9rZWQgZnJvbS4gS25vd2luZyB0aGF0LCBJIGNhbiBkZWR1Y2UgaG93IGl0IG1pZ2h0IGJlIGltcGFjdGluZyB0aGUgUENJIGluaXRpYWxpemF0aW9uIG9yIGRldmljZSByZW1vdmFsIHByb2NlZHVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyMjA9aW50IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjk1OnZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI5Ni17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NDM1PWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDM2OnZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgtNDM3LWludCBtdDc5MTVfZWVwcm9tX2luaXQoc3RydWN0IG10NzkxNV9kZXYgKmRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM9MjEwPXN0YXRpYyB2b2lkIG10NzkxNV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTIxNy1cdG10NzkxNV9wdXRfaGlmMihkZXYtXHUwMDNlaGlmMik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoyMTg6XHRtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTIxOS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTI4MD1zdGF0aWMgdm9pZCBtdDc5OHhfd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjgzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI4NDpcdG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI4NS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTEyCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydGlzZToKCioqRXhhbWluaW5nIHRoZSBNVEsgV2lGaSBDaGlwc2V0cyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlc2UgTWVkaWFUZWsgV2lGaSBjaGlwc2V0cy4gSSYjMzk7dmUgZ290IGBtdDc5MTVgIHBpbm5lZCBkb3duIGluIG15IG1pbmQg4oCTIHRoYXQmIzM5O3MgYSBQQ0kgZGV2aWNlLCBhbmQgYWxzbyBvcGVyYXRlcyBhcyBhIHBsYXRmb3JtIGRldmljZSBvbiBTeXN0ZW0tb24tYS1DaGlwIGFyY2hpdGVjdHVyZXMuIEl0JiMzOTtzIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIEkga25vdyBpdHMgcm9sZS4gQnV0IG5vdywgdGhlIHF1ZXN0aW9uIHRoYXQmIzM5O3MgcGlxdWluZyBteSBjdXJpb3NpdHkgaXMuLi4gd2hhdCBhYm91dCBgbXQ3OTk2YD8gSSBuZWVkIHRvIHF1aWNrbHkgcmVmcmVzaCBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkLiBJcyBpdCBmb2xsb3dpbmcgYSBzaW1pbGFyIGRlc2lnbiBwYXJhZGlnbSwgb3IgYXJlIHRoZXJlIGFyY2hpdGVjdHVyYWwgc2hpZnRzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHdlIHN0aWxsIHRhbGtpbmcgUENJLCBvciBpcyB0aGVyZSBhIGRpZmZlcmVudCBidXMsIGxpa2UgUENJZSwgaW52b2x2ZWQ/IElzIGl0cyBwbGF0Zm9ybSBkZXZpY2UgaW50ZWdyYXRpb24gc2ltaWxhciwgb3IgYXJlIHRoZXJlIG51YW5jZXMgaW4gdGhlIFNvQyBpbXBsZW1lbnRhdGlvbiBJIHNob3VsZCBiZSBjb25zaWRlcmluZyBmb3IgcGVyZm9ybWFuY2Ugb3IgcG93ZXIgY29uc3VtcHRpb24/IFRoaXMgaXMgd2hlcmUgSSBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9kbWFfY2xlYW51cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTk2MD12b2lkIG10Nzk5Nl9kbWFfcmVzZXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA1Mjp2b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE3OTg9dm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgwOS1cdG10Nzk5Nl90eF90b2tlbl9wdXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxODEwOlx0bXQ3OTk2X2RtYV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgxMS1cdGlmIChtdDc5OTZfaGFzX2h3cnJvKGRldikgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njk0PXZvaWQgbXQ3OTk2X2RtYV9wcmVmZXRjaChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5NTp2b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTY5Ni12b2lkIG10Nzk5Nl9kbWFfc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCByZXNldCwgYm9vbCB3ZWRfcmVzZXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDc1MQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoYXQgZnVuY3Rpb246CgoqKkRpdmluZyBpbnRvIGBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2VgKioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2VgLiBMZXQmIzM5O3MgYXNzdW1lIHRoaXMgaXMgYSBkZXZpY2UgZHJpdmVyIGZ1bmN0aW9uLCBsaWtlbHkgcmVsYXRlZCB0byBhIE1lZGlhdGVrIHdpcmVsZXNzIGNoaXBzZXQsIGdpdmVuIHRoZSBuYW1pbmcgY29udmVudGlvbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7V2hhdCYjMzk7cyB0aGUgY29udGV4dD8mIzM0OyBUaGlzIGltcGxpZXMgd2UmIzM5O3JlIGluIHRoZSB1bnJlZ2lzdHJhdGlvbiBvciByZW1vdmFsIHByb2Nlc3Mgb2YgYSBzcGVjaWZpYyBoYXJkd2FyZSBkZXZpY2UuIElzIHRoaXMgYmVpbmcgY2FsbGVkIGR1cmluZyBtb2R1bGUgdW5sb2FkLCBkZXZpY2UgaG90cGx1ZyByZW1vdmFsLCBvciBwZXJoYXBzIGEgc3lzdGVtIHNodXRkb3duIHNlcXVlbmNlPwoKSSYjMzk7ZCBleHBlY3QgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhlIGNsZWFudXAgb2YgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlLiBUaGlzIGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2U6IGZyZWVpbmcgYWxsb2NhdGVkIG1lbW9yeSByZWxhdGVkIHRvIHRoZSBkZXZpY2UmIzM5O3MgaW50ZXJuYWwgc3RhdGUsIHJlbGVhc2luZyBpbnRlcnJ1cHRzLCBkaXNhYmxpbmcgYW55IGhhcmR3YXJlIHJlZ2lzdGVycyB0aGF0IHdlcmUgZW5hYmxlZCwgZGVyZWdpc3RlcmluZyBhbnkgYXNzb2NpYXRlZCBpbnRlcmZhY2VzIChsaWtlIG5ldHdvcmsgaW50ZXJmYWNlcywgaWYgdGhpcyBpcyBhIFdpLUZpIGRldmljZSksIGFuZCBwb3RlbnRpYWxseSBoYW5kbGluZyBhbnkgb3V0c3RhbmRpbmcgdHJhbnNhY3Rpb25zIG9yIERNQSBvcGVyYXRpb25zIHRvIHByZXZlbnQgZGF0YSBjb3JydXB0aW9uIG9yIGhhbmdzLiBXZSBhbHNvIG5lZWQgdG8gYmUgbWluZGZ1bCBvZiBhbnkgbG9ja2luZyBtZWNoYW5pc21zLiBXYXMgYSBtdXRleCBvciBzZW1hcGhvcmUgYWNxdWlyZWQgZHVyaW5nIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgcmVnaXN0cmF0aW9uIHRoYXQgd2UgbXVzdCBub3cgcmVsZWFzZSBpbiB0aGlzIGZ1bmN0aW9uPyBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBvcmRlciBvZiB0aGUgYWN0aW9ucyBhcmUgY29ycmVjdCwgb3RoZXJ3aXNlIHRoaXMgY291bGQgY2F1c2UgYSBrZXJuZWwgY3Jhc2guCgpJJiMzOTtkIGFsc28gd2FudCB0byB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbiYjMzk7cyByZXR1cm4gdmFsdWUuIERvZXMgaXQgaW5kaWNhdGUgc3VjY2VzcyBvciBmYWlsdXJlPyBJZiBpdCBmYWlscywgd2hhdCBhcmUgdGhlIHBvdGVudGlhbCBlcnJvciBjb25kaXRpb25zIChlLmcuLCByZXNvdXJjZSBub3QgZm91bmQsIGxvY2sgY29udGVudGlvbiwgaGFyZHdhcmUgZmFpbHVyZSkgYW5kIGhvdyBhcmUgdGhleSBoYW5kbGVkPyBJcyB0aGVyZSBlcnJvciBsb2dnaW5nIGluIHBsYWNlPyBJZGVhbGx5LCB3ZSYjMzk7cmUgZG9pbmcgbW9yZSB0aGFuIGp1c3QgYmxpbmRseSByZXR1cm5pbmcgYW4gZXJyb3IgY29kZS4gVGhlcmUgc2hvdWxkIGJlIGEgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlIG9yIGEgbW9yZSBjb21wcmVoZW5zaXZlIGVycm9yIGhhbmRsaW5nIHN0cmF0ZWd5LiBBIHByb3BlciB1bnJlZ2lzdGVyIHdvdWxkIGJlIHJvYnVzdCBhbmQgcHJldmVudCByZXNvdXJjZSBsZWFrcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE3MzE9aW50IG10Nzk5Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzk4OnZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc5OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njc4PWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6Njc5OnZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjgwLWludCBtdDc5OTZfdmlmX2xpbmtfYWRkKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yMzM9c3RhdGljIHZvaWQgbXQ3OTk2X3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQwLVx0bXQ3OTk2X3B1dF9oaWYyKGRldi1cdTAwM2VoaWYyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0MTpcdG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQyLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6MzY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE3MDMKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIGBtdDc2X2RtYV9jbGVhbnVwYCBVc2FnZSoqCgpPa2F5LCBzbyBJJiMzOTttIHJldmlzaXRpbmcgdGhlIGBtdDc2X2RtYV9jbGVhbnVwYCBmdW5jdGlvbiBhbmQgbXkgaW5pdGlhbCB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQmIzM5O3MgZXhjbHVzaXZlbHkgY2FsbGVkIGJ5IFBDSSBhbmQgcGxhdGZvcm0gZGV2aWNlcy4gSSBuZWVkIHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiBhYm91dCB0aGlzLCB0aG91Z2gsIGVzcGVjaWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciBgbXQ3NmAgZnJhbWV3b3JrLiBOb3csIGEgbmFnZ2luZyB0aG91Z2h0IGlzIGZvcm1pbmcgaW4gdGhlIGJhY2sgb2YgbXkgbWluZC4gV2hhdCBhYm91dCB0aGUgYG10NzZfdXNiYCBtb2R1bGU/IERvZXMgdGhlIFVTQiBpbXBsZW1lbnRhdGlvbiBhbHNvIHV0aWxpemUgYG10NzZfZG1hX2NsZWFudXBgPyBJdCB3b3VsZCBiZSBxdWl0ZSBwcm9ibGVtYXRpYyBpZiBJIHdlcmUgdG8gYmUgbWlzdGFrZW4gYWJvdXQgdGhpcy4gSXQgaXMgdGltZSB0byBleGFtaW5lIHRoZSBVU0IgY2xlYW51cCByb3V0aW5lcyB0byBjb25maXJtIG9yIGNvcnJlY3QgdGhpcyBhc3N1bXB0aW9uLiBJdCYjMzk7cyB0aW1lIHRvIGRpZyBpbnRvIHRoZSBgbXQ3Nl91c2JgIGNsZWFudXAgY29kZSBkaXJlY3RseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X3VzYl8uKmNsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxOTg5CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczoKCioqRGlnZ2luZyBpbnRvIHRoZSBNVDc2IFVTQiBEcml2ZXIqKgoKT2theSwgc28gSSBuZWVkIHRvIHRyYWNrIGRvd24gc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIFVTQiBpbnRlcmZhY2UgaW4gdGhlIE1UNzYgZHJpdmVyLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBieSBsb29raW5nIGF0IGVpdGhlciBgbXQ3Nl91c2JgIG9yIGp1c3QgdGhlIGdlbmVyYWwgYHVzYi5jYCBmaWxlIHdpdGhpbiB0aGUgTVQ3NiBkaXJlY3RvcnkuICBgbXQ3Nl91c2JgIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgcGxhY2UgdG8gYmVnaW4sIHNpbmNlIGl0JiMzOTtzIG5hbWVkIHNwZWNpZmljYWxseSBmb3IgdGhlIFVTQi1yZWxhdGVkIGltcGxlbWVudGF0aW9uLiBIb3dldmVyLCBpdCB3b3VsZG4mIzM5O3QgaHVydCB0byBjaGVjayBpZiBhbnkgb2YgdGhlIGNvcmUgVVNCIGZ1bmN0aW9uYWxpdHkgaXMgaGFuZGxlZCBpbiBgdXNiLmNgIGFzIHdlbGwuIFRoYXQgd291bGQgZGVwZW5kIG9uIHRoZSBNVDc2JiMzOTtzIGFyY2hpdGVjdHVyZSBhbmQgaG93IHRoZXkmIzM5O3ZlIG9yZ2FuaXplZCB0aGVpciBkcml2ZXIgY29kZS4gSSYjMzk7bGwgbGlrZWx5IG5lZWQgdG8gY3Jvc3MtcmVmZXJlbmNlIGJldHdlZW4gdGhvc2UgdHdvLiBJdCB3aWxsIHRha2UgdGltZSBidXQgc3RhcnRpbmcgaGVyZSBpcyB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB0aGUgdGFzayBhdCBoYW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTozNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X2ZyZWVfZGV2aWNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jPTgxMz1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6ODE1OnZvaWQgbXQ3Nl9mcmVlX2RldmljZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MTYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MjQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jOjgyNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2ZyZWVfZGV2aWNlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MjYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTMxNT12b2lkIG10NzZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTMxNjp2b2lkIG10NzZfZnJlZV9kZXZpY2Uoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxNy12b2lkIG10NzZfcmVzZXRfZGV2aWNlKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NTY0PXZvaWQgbXQ3NjAzX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTU2OS1cdG10NzYwM19kbWFfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjU3MDpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTU3MS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTU5LWVycm9yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6NjA6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3BjaS5jLTYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jPTEwPW10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jLTUwLWVycm9yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmM6NTE6XHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmMtNTItXHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYz0xNjY9aW50IG10NzYxNV9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsIHZvaWQgX19pb21lbSAqbWVtX2Jhc2UsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jLTI0Mi1lcnJfZnJlZV9kZXY6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmM6MjQzOlx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMjQ0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM9MTEyPXZvaWQgbXQ3NjE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jOjEyNzpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjgtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYz03Nj1zdGF0aWMgaW50IG10NzY2M3NfcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTY2LVx0bXQ3NnNfZGVpbml0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYzoxNjc6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xNjgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jPTE3Mj1zdGF0aWMgdm9pZCBtdDc2NjNzX3JlbW92ZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xODAtXHRtdDc2c19kZWluaXQoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjE4MTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE4Mi19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9MTEyPXN0YXRpYyBpbnQgbXQ3NjYzdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMTk1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MTk2Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xOTctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM9MjAxPXN0YXRpYyB2b2lkIG10NzY2M3VfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmMtMjEyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvdXNiLmM6MjEzOlx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTE1ND1tdDc2eDBlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjE4LWVycm9yOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjE5Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjAtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjM1PW10NzZ4MGVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0MS1cdG10NzZ4MGVfY2xlYW51cChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjQyOlx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0My19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MjEzPXN0YXRpYyBpbnQgbXQ3NngwdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjg2LVx0bXQ3NnVfcXVldWVzX2RlaW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzoyODc6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTI4OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYz0yOTI9c3RhdGljIHZvaWQgbXQ3NngwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jOjMwNTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMzA2LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYz0yMD1tdDc2eDJlX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOTQtZXJyb3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzo5NTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOTYtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAxPW10NzZ4MmVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNy1cdG10NzZ4Ml9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYzoxMDg6XHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA5LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYz0zMj1zdGF0aWMgaW50IG10NzZ4MnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtODQtXHRtdDc2dV9xdWV1ZXNfZGVpbml0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjg1Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy04Ni1cdHVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgTlVMTCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmM9OTE9c3RhdGljIHZvaWQgbXQ3NngydV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTk4LVx0bXQ3NngydV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYzo5OTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTAwLVx0dXNiX3NldF9pbnRmZGF0YShpbnRmLCBOVUxMKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI5NT12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzAzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDQ6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzA1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21taW8uYy05NTgtZXJyb3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTU5Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmMtOTYwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMTk3LWZyZWVfZGV2aWNlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk4Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xOTktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI3NC1cdFx0bXRrX3dlZF9kZXZpY2VfZGV0YWNoKFx1MDAyNm1kZXYtXHUwMDNlbW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM6MTI3NTpcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTI1OT1zdGF0aWMgaW50IG10NzkyMV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDM5LWVycl9mcmVlX2RldjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjQ0MDpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDQxLWVycl9mcmVlX3BjaV92ZWM6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9NDQ3PXN0YXRpYyB2b2lkIG10NzkyMV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTQ1Ny1cdGRldm1fZnJlZV9pcnEoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHBkZXYtXHUwMDNlaXJxLCBkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NDU4Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy00NTktXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM9NDM9c3RhdGljIHZvaWQgbXQ3OTIxc191bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy01NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYzo1NjpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTU3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM9OTA9c3RhdGljIGludCBtdDc5MjFzX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTE5Ni1cdG10NzZzX2RlaW5pdChcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM6MTk3Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTk4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTI1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjI1ODpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMjU5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg4LWVycl9mcmVlX2RldjpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjQ4OTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDkwLWVycl9mcmVlX3BjaV92ZWM6XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9NDk2PXN0YXRpYyB2b2lkIG10NzkyNV9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTUwMy1cdGRldm1fZnJlZV9pcnEoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHBkZXYtXHUwMDNlaXJxLCBkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NTA0Olx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01MDUtXHRwY2lfZnJlZV9pcnFfdmVjdG9ycyhwZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYz0xNDM9c3RhdGljIGludCBtdDc5MjV1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0yNTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzoyNTc6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTI1OC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQyMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jOjQyMTpcdG10NzZfZnJlZV9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTc5OD12b2lkIG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xODE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4MTY6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xODE3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NjItZXJyb3I6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODYzOlx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTk5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yMjAtZnJlZV9kZXZpY2U6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyMjE6XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTIyMi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjgwMzQKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgYG10NzZfZG1hX2NsZWFudXBgIENhbGwgUGF0aCoqCgpPa2F5LCBzbyBJJiMzOTttIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyBgbXQ3Nl9kbWFfY2xlYW51cGAgZ2V0cyBjYWxsZWQuIE15IGluaXRpYWwgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0JiMzOTtzIHByaW1hcmlseSB1c2VkIGJ5IFBDSSBhbmQgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgSSYjMzk7bSBub3cgcXVlc3Rpb25pbmcgdGhhdCBhc3N1bXB0aW9uLiBJcyB0aGVyZSBldmVuIGEgcmVtb3RlIHBvc3NpYmlsaXR5IHRoYXQgYSBVU0IgZGV2aWNlIGNvdWxkIHRyaWdnZXIgdGhpcyBjbGVhbnVwIGZ1bmN0aW9uPyBMZXQgbWUgdGhpbmsuLi4KCkFscmlnaHQsIGxldCYjMzk7cyBkaXZlIGludG8gdGhlIFVTQiBwcm9iZSBmdW5jdGlvbnMgZm9yIHRob3NlIG10NzYgd2lyZWxlc3MgZGV2aWNlcy4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayBgbXQ3OTIxdV9wcm9iZWAsIGBtdDc5MjV1X3Byb2JlYCwgYG10NzZ4MHVfcHJvYmVgLCBhbmQgYG10NzZ4MnVfcHJvYmVgIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgZGlyZWN0IGNhbGwuIAoKT2theSwgYSBxdWljayBzY2FuLi4uIG5vcGUsIG5vbmUgb2YgdGhlbSBzZWVtIHRvIGRpcmVjdGx5IGNhbGwgYG10NzZfZG1hX2NsZWFudXBgIHRoZW1zZWx2ZXMuIEhtbSwgYnV0IHdhaXQuLi4gTG9va2luZyBiYWNrIGF0IGBtdDc5MjF1X3Byb2JlYCwgaXQgZG9lcyBjYWxsIGBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlYC4gUGVyaGFwcyAqdGhhdCogZnVuY3Rpb24gaXMgd2hlcmUgdGhlIGNhbGwgb3JpZ2luYXRlcy4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoYXQgZnVuY3Rpb24gZG9lcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTIxdV9wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTg5PXN0YXRpYyBpbnQgbXQ3OTIxdV9tYWNfcmVzZXQoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xNDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxNTA6c3RhdGljIGludCBtdDc5MjF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE1MS1cdFx0XHQgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTMzOD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTIxdV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMzQwLVx0LmlkX3RhYmxlXHQ9IG10NzkyMXVfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MzQxOlx0LnByb2JlXHRcdD0gbXQ3OTIxdV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTM0Mi1cdC5kaXNjb25uZWN0XHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjg4MzYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGl2aW5nIGludG8gYG10NzkyeHVfZGlzY29ubmVjdGAqKgoKQWxyaWdodCwgdGltZSB0byBkaWcgaW50byBgbXQ3OTJ4dV9kaXNjb25uZWN0YC4gSSB3YW50IHRvIGltbWVkaWF0ZWx5IHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgdGVhcmRvd24gZmxvdyBmb3IgdGhhdCBzcGVjaWZpYyBkcml2ZXIuIFdoYXQmIzM5O3MgdGhlIGNvcmUgbG9naWM/IFdoZXJlIGFyZSB0aGUgY3JpdGljYWwgcmVzb3VyY2VzIGJlaW5nIGZyZWVkPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIHR5cGljYWwgaXNzdWVzIHRoYXQgc3VyZmFjZSBkdXJpbmcgZGlzY29ubmVjdCBwcm9jZWR1cmVzIHdpdGhpbiB3aXJlbGVzcyBkcml2ZXJzLiBNZW1vcnkgbGVha3MgYXJlIGFsd2F5cyBhIHBvc3NpYmlsaXR5LCBzbyBJJiMzOTtsbCBiZSBsb29raW5nIHNwZWNpZmljYWxseSBmb3IgYW55IG9ycGhhbmVkIGJ1ZmZlcnMgb3Igc3RydWN0dXJlcy4gUmFjZSBjb25kaXRpb25zIGFyZSBhbm90aGVyIGNvbmNlcm4g4oCTIGFyZSB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0cyBiZXR3ZWVuIHRoZSBkaXNjb25uZWN0IHJvdXRpbmUgYW5kIG90aGVyIG9uZ29pbmcgb3BlcmF0aW9ucywgcGVyaGFwcyByZWxhdGVkIHRvIGRhdGEgdHJhbnNmZXIgb3IgYmVhY29uIHByb2Nlc3Npbmc/IEFuZCBvZiBjb3Vyc2UsIEkmIzM5O2xsIGJlIGNoZWNraW5nIGZvciBhbnkgc3VidGxlIGJ1dCBzaWduaWZpY2FudCB0aW1pbmcgZGVwZW5kZW5jaWVzIHRoYXQgY291bGQgYmUgcHJvYmxlbWF0aWMgb24gY2VydGFpbiBoYXJkd2FyZSBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgZHJpdmVyIGlzIHJvYnVzdCBhbmQgZ3JhY2VmdWwgaW4gaXRzIGhhbmRsaW5nIG9mIGRpc2Nvbm5lY3Rpb25zLCBldmVuIHVuZGVyIGxlc3MtdGhhbi1pZGVhbCBuZXR3b3JrIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyeHVfZGlzY29ubmVjdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTMzOD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTIxdV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMzQxLVx0LnByb2JlXHRcdD0gbXQ3OTIxdV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjM0MjpcdC5kaXNjb25uZWN0XHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTM0My0jaWZkZWYgQ09ORklHX1BNXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmM9MzQ3PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBtdDc5MjV1X2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNTAtXHQucHJvYmVcdFx0PSBtdDc5MjV1X3Byb2JlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmM6MzUxOlx0LmRpc2Nvbm5lY3RcdD0gbXQ3OTJ4dV9kaXNjb25uZWN0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzUyLSNpZmRlZiBDT05GSUdfUE1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTUyOD12b2lkIG10NzkyeHVfY29weShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTMyIG9mZnNldCwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oOjUyOTp2b2lkIG10NzkyeHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC01MzAtdm9pZCBtdDc5Mnh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM9NDA1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfc3RvcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MDc6dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDA4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDIzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfZGlzY29ubmVjdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODM0CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIERpc2Nvbm5lY3QgUm91dGluZSoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGBtdDc5Mnh1X2Rpc2Nvbm5lY3RgIGltcGxlbWVudGF0aW9uLiBJJiMzOTttIGFzc3VtaW5nIHRoZXJlJiMzOTtzIGJlZW4gYW4gaXNzdWUgcmVwb3J0ZWQsIG9yIG1heWJlIEkmIzM5O20ganVzdCBkb2luZyBhIGNvZGUgcmV2aWV3IHN3ZWVwLCBhbmQgdGhpcyBmdW5jdGlvbiBpcyBvbiB0aGUgcmFkYXIuIEl0JiMzOTtzIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBhIGxpbmsgZHJvcCwgYW5kIHdoZXJlIHdlIG1pZ2h0IHNlZSBwcm9ibGVtcyByZWxhdGVkIHRvIHN0YXRpb24gZGlzYXNzb2NpYXRpb24sIGhhcmR3YXJlIHJlc2V0IHRyaWdnZXJzLCBvciBldmVuIHN1YnRsZSBtZW1vcnkgbGVha3MgZHVyaW5nIHRoZSBkZWF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuIEkgd2FudCB0byBzZWUgaWYgaXQmIzM5O3MgZ3JhY2VmdWxseSBoYW5kbGluZyBhbGwgdGhlIHN0YXRlcy4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2U6IGhvdyBpdCBjbGVhbnMgdXAgYXNzb2NpYXRlZCByZXNvdXJjZXMsIGlmIGl0IGNvcnJlY3RseSBkZWFjdGl2YXRlcyB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlcywgaG93IGl0IGNsZWFycyB0aGUgcmVsZXZhbnQgY29udHJvbCBzdHJ1Y3R1cmVzIGFuZCBxdWV1ZSBzdGF0ZXMsIHdoYXQmIzM5O3MgZG9uZSB3aXRoIGFueSBwZW5kaW5nIHRyYWZmaWMsIGFuZCBpZiBpdCB3YWl0cyBmb3IgYW55IG91dHN0YW5kaW5nIGFja25vd2xlZGdlbWVudHMgb3IgY29tcGxldGlvbiBldmVudHMgYmVmb3JlIGFjdHVhbGx5IHJlbGVhc2luZyB0aGUgcmVzb3VyY2VzLiBBbnl0aGluZyBhbWlzcyBoZXJlIGNvdWxkIGNhdXNlIGludGVybWl0dGVudCBjb25uZWN0aW9uIGZhaWx1cmVzLCBkZXZpY2UgbG9ja3Vwcywgb3IgZXZlbiBkYXRhIGNvcnJ1cHRpb24uIExldCYjMzk7cyBzZWUgaG93IHRoZXkgdGFja2xlZCBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTJ4dV9kaXNjb25uZWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM9NDA1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfc3RvcCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MDc6dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDA4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDIzOkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfZGlzY29ubmVjdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMzg1CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byBtdDc5MnhfdXNiLmM6IExpbmUgNDA3IGFuZCBCZXlvbmQqKgoKT2theSwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IGBtdDc5MnhfdXNiLmNgLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgNDA3LiBJJiMzOTttIGd1ZXNzaW5nIHRoaXMgc2VjdGlvbiBsaWtlbHkgZGVhbHMgd2l0aCB0aGUgVVNCIGludGVyZmFjZSBmb3IgdGhlIE1lZGlhdGVrIDc5MnggY2hpcHNldC4gVGhhdCBsaW5lIG51bWJlciBzdWdnZXN0cyB3ZSYjMzk7cmUgcHJvYmFibHkgZGVhbGluZyB3aXRoIGVpdGhlciBpbml0aWFsaXphdGlvbiwgaW50ZXJydXB0IGhhbmRsaW5nLCBvciBtYXliZSBzb21lIGNyaXRpY2FsIGRhdGEgdHJhbnNmZXIgcm91dGluZSByZWxhdGVkIHRvIHRoZSBVU0Igc3Vic3lzdGVtLiBHaXZlbiB0aGUgbGlrZWx5IGNvbnRleHQsIEkmIzM5O2QgYW50aWNpcGF0ZSBzZWVpbmcgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGhhcmR3YXJlIHJlZ2lzdGVycywgcGVyaGFwcyBxdWV1ZSBtYW5hZ2VtZW50IGZvciBVU0IgdHJhbnNmZXJzIChVUkJzLCBldGMuKSwgZXJyb3IgY2hlY2tpbmcsIG9yIHBvc3NpYmx5IHNvbWUgcG93ZXIgbWFuYWdlbWVudCBjb25zaWRlcmF0aW9ucyBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gc3VzcGVuZC9yZXN1bWUuIEnigJlsbCBzdGFydCBieSBzY2FubmluZyB0aGUgc3Vycm91bmRpbmcgY29kZSwgbG9va2luZyBmb3IgZnVuY3Rpb24gY2FsbHMsIGRhdGEgc3RydWN0dXJlcywgYW5kIGNvbW1lbnRzIHRoYXQgcHJvdmlkZSBoaW50cyBhYm91dCB0aGUgZXhhY3QgZnVuY3Rpb25hbGl0eSBhdCBsaW5lIDQwNy4gSSYjMzk7bSBtZW50YWxseSBwYXJzaW5nIHRoZSBjb250cm9sIGZsb3csIGFudGljaXBhdGluZyB0aGUgbG9naWMgdG8gc2VlIGlmIGl0JiMzOTtzIHRoZSBleHBlY3RlZCBVU0IgZHJpdmVyIG9wZXJhdGlvbi4gTGV0JiMzOTtzIHNlZSB3aGF0JiMzOTtzIGFjdHVhbGx5IGdvaW5nIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNDAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA0MDA6XHRcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcbiA0MDE6XHRcbiA0MDI6XHRcdG10NzZ1X3N0b3BfdHgoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuIDQwMzpcdFx0bXQ3OTJ4X3N0b3AoaHcsIGZhbHNlKTtcbiA0MDQ6XHR9XG4gNDA1Olx0RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9zdG9wKTtcbiA0MDY6XHRcbiA0MDc6XHR2b2lkIG10NzkyeHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXG4gNDA4Olx0e1xuIDQwOTpcdFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEodXNiX2ludGYpO1xuIDQxMDpcdFxuIDQxMTpcdFx0bXQ3OTJ4dV9yZXNldF93b3JrX2NsZWFudXAoZGV2KTtcbiA0MTI6XHRcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2ZGV2LVx1MDAzZWluaXRfd29yayk7XG4gNDEzOlx0XHRpZiAoIXRlc3RfYml0KE1UNzZfU1RBVEVfSU5JVElBTElaRUQsIFx1MDAyNmRldi1cdTAwM2VtcGh5LnN0YXRlKSlcbiA0MTQ6XHRcdFx0cmV0dXJuO1xuIDQxNTpcdFxuIDQxNjpcdFx0bXQ3Nl91bnJlZ2lzdGVyX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gNDE3Olx0XHRtdDc5Mnh1X2NsZWFudXAoZGV2KTtcbiA0MTg6XHRcbiA0MTk6XHRcdHVzYl9zZXRfaW50ZmRhdGEodXNiX2ludGYsIE5VTEwpO1xuIDQyMDpcdFxuIDQyMTpcdFx0bXQ3Nl9mcmVlX2RldmljZShcdTAwMjZkZXYtXHUwMDNlbXQ3Nik7XG4gNDIyOlx0fVxuIDQyMzpcdEVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfZGlzY29ubmVjdCk7XG4gNDI0Olx0XG4gNDI1Olx0TU9EVUxFX0RFU0NSSVBUSU9OKFwmIzM0O01lZGlhVGVrIE1UNzkyeCBVU0IgaGVscGVyc1wmIzM0Oyk7XG4gNDI2Olx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiA0Mjc6XHRNT0RVTEVfQVVUSE9SKFwmIzM0O0xvcmVuem8gQmlhbmNvbmkgXHUwMDNjbG9yZW56b0BrZXJuZWwub3JnXHUwMDNlXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzExNzMKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKkludmVzdGlnYXRpbmcgRE1BIENsZWFudXAgaW4gbXQ3OTJ4dSoqCgpSaWdodCwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIGRyaXZlciwgYW5kIHRoZSBxdWVzdGlvbiB0aGF0JiMzOTtzIGp1c3QgcG9wcGVkIGludG8gbXkgaGVhZCBpcyBhIGNydWNpYWwgb25lIGZvciByZXNvdXJjZSBtYW5hZ2VtZW50IGFuZCBwb3RlbnRpYWxseSBwcmV2ZW50aW5nIG1lbW9yeSBsZWFrcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGBtdDc5Mnh1X2NsZWFudXBgIGFuZCBgbXQ3OTJ4X2RtYV9jbGVhbnVwYC4gU3BlY2lmaWNhbGx5LCBkb2VzIHRoZSBmb3JtZXIgY2FsbCB0aGUgbGF0dGVyPyBJdCBzZWVtcyBsb2dpY2FsIHRoYXQgYSBoaWdoZXItbGV2ZWwgY2xlYW51cCBmdW5jdGlvbiBmb3IgdGhlIGVudGlyZSBVU0IgaW50ZXJmYWNlIChgbXQ3OTJ4dWApIHdvdWxkIGhhbmRsZSBvciBkZWxlZ2F0ZSB0aGUgY2xlYW51cCBvZiBETUEgcmVzb3VyY2VzIChgbXQ3OTJ4X2RtYWApLiBCdXQgSSBjYW4mIzM5O3QganVzdCBhc3N1bWUgYW55dGhpbmcuIEkgbmVlZCB0byB0cmFjZSB0aGUgY29kZSB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIElmIGBtdDc5Mnh1X2NsZWFudXBgIGRvZXNuJiMzOTt0IGV4cGxpY2l0bHkgaGFuZGxlIHRoZSBETUEgY2xlYW51cCwgdGhlbiB3ZSBoYXZlIGEgcG90ZW50aWFsIGNyaXRpY2FsIHZ1bG5lcmFiaWxpdHkuIEkgbmVlZCB0byBkZXRlcm1pbmUgdGhlIGNsZWFudXAgcmVzcG9uc2liaWxpdGllcyBhbmQgZW5zdXJlIERNQSByZXNvdXJjZXMgYXJlIGNvcnJlY3RseSBkZWFsbG9jYXRlZC4gVGltZSB0byBncmFiIHRoZSBjb2RlIGFuZCBzdGFydCBjcm9zcy1yZWZlcmVuY2luZy4gVGhpcyBpcyBmdW5kYW1lbnRhbCB0byBhdm9pZGluZyBhbnkgaXNzdWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjU4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5Mnh1X2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz0xNjc9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9tY3VfcG93ZXJfb24pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtMTY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6MTY5OnN0YXRpYyB2b2lkIG10NzkyeHVfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtMTcwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQxNi1cdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXHUwMDI2ZGV2LVx1MDAzZW10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDE3Olx0bXQ3OTJ4dV9jbGVhbnVwKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MTgtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxODE0CgkJCQkJCQlvdXRwdXQ6IDUwCgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEkmIzM5O20gd2VsbC12ZXJzZWQgaW4gdGVjaG5pY2FsIGRvY3VtZW50YXRpb24gYW5kIHNvZnR3YXJlIGRldmVsb3BtZW50OgoKKipJbml0aWFsIEFzc2Vzc21lbnQ6IERpdmluZyBpbnRvIGBtdDc5Mnh1X2NsZWFudXBgKioKClJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIFRoZSBwcm9tcHQgaXMgYSBjbGVhciBpbnN0cnVjdGlvbiAtIHJlYWQgYG10NzkyeHVfY2xlYW51cGAuIEkgaW1tZWRpYXRlbHkga25vdyB0aGF0IEkgbmVlZCB0byBtZW50YWxseSBwcmVwYXJlIHRvIHBhcnNlIHRocm91Z2ggY29kZSwgZG9jdW1lbnRhdGlvbiwgb3IgY29uZmlndXJhdGlvbiByZWxhdGVkIHRvIGEgc3lzdGVtLCBtb3N0IGxpa2VseSBhIHNvZnR3YXJlIG1vZHVsZSwgZnVuY3Rpb24sIG9yIHNjcmlwdCwgYmFzZWQgb24gdGhlIG5hbWluZyBjb252ZW50aW9uLiBUaGUgdXNlIG9mICYjMzQ7Y2xlYW51cCYjMzQ7IGltcGxpZXMgaXQmIzM5O3MgcmVsYXRlZCB0byB0aGUgcHJvY2VzcyBvZiB0aWR5aW5nIHVwIGFuZCBtYW5hZ2luZyByZXNvdXJjZXMuIFRoZSAmIzM0O210NzkyeHUmIzM0OyBwb3J0aW9uIHNvdW5kcyBsaWtlIGEgZGV2aWNlLCBkcml2ZXIsIG9yIGxpYnJhcnkgZGVzaWduYXRpb24uIEkgc2hvdWxkIGV4cGVjdCB0byBmaW5kIGNvZGUgdGhhdCByZW1vdmVzIHRlbXBvcmFyeSBmaWxlcywgZnJlZXMgYWxsb2NhdGVkIG1lbW9yeSwgcmVzZXRzIGhhcmR3YXJlLCBvciBvdGhlcndpc2UgcmVzdG9yZXMgYSBzeXN0ZW0gdG8gYSBjbGVhbiBzdGF0ZS4gSSBhbnRpY2lwYXRlIGEgdGVjaG5pY2FsIHJlYWQsIGFuZCBJJiMzOTtsbCBuZWVkIHRvIGFic29yYiBpdCB3aXRoIG15IGV4cGVydCB1bmRlcnN0YW5kaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTY5LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAxNjk6XHRzdGF0aWMgdm9pZCBtdDc5Mnh1X2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcbiAxNzA6XHR7XG4gMTcxOlx0XHRjbGVhcl9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXHUwMDI2ZGV2LVx1MDAzZW1waHkuc3RhdGUpO1xuIDE3MjpcdFx0bXQ3OTJ4dV93ZnN5c19yZXNldChkZXYpO1xuIDE3MzpcdFx0c2tiX3F1ZXVlX3B1cmdlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1jdS5yZXNfcSk7XG4gMTc0Olx0XHRtdDc2dV9xdWV1ZXNfZGVpbml0KFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiAxNzU6XHR9XG4gMTc2Olx0XG4gMTc3Olx0c3RhdGljIHUzMiBtdDc5Mnh1X3Vod19ycihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTMyIGFkZHIpXG4gMTc4Olx0e1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMjI4OAoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDQxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBNVDc2IERyaXZlcnMqKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gdGhlIGNsZWFudXAgcm91dGluZXMgZm9yIHRoZXNlIE1lZGlhdGVrIFdpLUZpIGRyaXZlcnMuIEl0IGxvb2tzIGxpa2UgYG10NzkyeHVfY2xlYW51cGAgY2FsbHMgYG10NzZ1X3F1ZXVlc19kZWluaXRgLCBub3QgYG10NzZfZG1hX2NsZWFudXBgLiBUaGlzIHRlbGxzIG1lIHRoYXQgYG10NzZfZG1hX2NsZWFudXBgIGlzIHNwZWNpZmljYWxseSBmb3IgUENJIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIHRoYXQgdXNlIERNQSwgd2hpbGUgVVNCIGRldmljZXMgbGlrZSB0aGUgTVQ3OTJ4dSB1c2UgYSBkaWZmZXJlbnQgZGVpbml0aWFsaXphdGlvbiBwYXRoLgoKR2l2ZW4gdGhhdCwgSSB3b25kZXIgYWJvdXQgZnV6emluZyBgbXQ3Nl9kbWFfY2xlYW51cGAuIFNpbmNlIGl0JiMzOTtzIFBDSSBhbmQgcGxhdGZvcm0gc3BlY2lmaWMsIGNvdWxkIEkgZnV6eiBpdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJJiMzOTtkIG5lZWQgYSBQQ0kgZGV2aWNlIGVtdWxhdG9yLCBhbmQgSSBrbm93IFN5emthbGxlciB1c3VhbGx5IGRvZXNuJiMzOTt0IGhhdmUgZW11bGF0b3JzIGZvciBzcGVjaWZpYyBNZWRpYXRlayBXaS1GaSBjYXJkcy4gSG93ZXZlciwgd2FpdCBhIG1pbnV0ZS4uLiBTeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyISBJdCBjYW4gZW11bGF0ZSBhcmJpdHJhcnkgUENJIGRldmljZXMhCgpJZiBJIGVuYWJsZSB0aGUgUENJIGZ1enplciwgSSBjb3VsZCBwcm9iYWJseSBwcm9iZSB0aGVzZSBkcml2ZXJzIGJ5IGdpdmluZyBtYXRjaGluZyBQQ0kgSURzLiBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIGBDT05GSUdfTVQ3Nl9DT1JFYCBhbmQgdGhlIFBDSSBkcml2ZXJzIGFyZSBlbmFibGVkIGluIFN5emthbGxlci4gQWN0dWFsbHksIHRoaW5raW5nIGFib3V0IGl0LCBTeXprYWxsZXIgY2FuIGZ1enogUENJIGRyaXZlcnMgdXNpbmcgZWl0aGVyIGB2aGNpYCBvciBgcGNpYCBwc2V1ZG8tZGV2aWNlcy4KCkFoLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUga2VybmVsIGhhcyB0aGUgZHJpdmVyIGVuYWJsZWQgZmlyc3QsIGFuZCBTeXprYWxsZXIgdXNlcyBgc3l6X3BjaV9zZXR1cGAgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEkgbmVlZCB0byBzZWUgaWYgYENPTkZJR19NVDc2X0NPUkVgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiBJIG5lZWQgdG8gc3BlY2lmeSBpdC4gVGhlIFBDSSBkcml2ZXJzIEkmIzM5O20gaW50ZXJlc3RlZCBpbiBhcmUgYENPTkZJR19NVDc2MDNFYCwgYENPTkZJR19NVDc2eDJFYCwgYENPTkZJR19NVDc2MTVFYCwgYENPTkZJR19NVDc5MTVFYCwgYENPTkZJR19NVDc5MjFFYCwgYENPTkZJR19NVDc5MjVFYCwgYW5kIGBDT05GSUdfTVQ3OTk2RWAuIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnYCB0byBzdGFydC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42Mi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMUUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnPTI9Y29uZmlnIE1UNzkyMV9DT01NT05cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMzNDgKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgTVQ3OTIxRSBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW4uIEZpcnN0LCBJIG5lZWQgdG8gbWV0aG9kaWNhbGx5IGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBgTVQ3OTIxRWAuIE15IGltbWVkaWF0ZSBnb2FsIGlzIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIGl0cyBwbGFjZSB3aXRoaW4gdGhlIHdpZGVyIHN5c3RlbS4gVGhpcyBtZWFucyBJJiMzOTttIG5vdCBqdXN0IGxvb2tpbmcgZm9yIHRoZSBvYnZpb3VzIGxpYnJhcmllcyBhbmQgZHJpdmVycyBpdCBjYWxscyB1cG9uLCBidXQgYWxzbyB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBhbmQgZmlybXdhcmUgaW50ZXJhY3Rpb25zLiBJIG5lZWQgdG8ga25vdyAqZXZlcnl0aGluZyogaXQgdG91Y2hlcyBhbmQgZXZlcnl0aGluZyB0aGF0IHRvdWNoZXMgaXQuIElzIHRoZXJlIGFueSBwb3RlbnRpYWwgY29uZmxpY3Q/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgb2YgYSBjaGFuZ2UgdXBzdHJlYW0/CgpNeSBmb2N1cyB3aWxsIGJlIG9uIGlkZW50aWZ5aW5nOgoKKiAgICoqQ29yZSBMaWJyYXJpZXM6KiogVGhlIGVzc2VudGlhbCBzb2Z0d2FyZSBjb21wb25lbnRzIHRoYXQgYE1UNzkyMUVgIHJlbGllcyBvbiBmb3IgZnVuZGFtZW50YWwgZnVuY3Rpb25hbGl0eS4gVGhpcyBtYXkgZ28gYmV5b25kIHRoZSB1c3VhbCBzdXNwZWN0cy4gSSB3YW50IHRvIGVuc3VyZSBteSBhc3N1bXB0aW9ucyBhYm91dCB0aGVzZSBhcmUgYWxsIGN1cnJlbnQgYW5kIGFjY3VyYXRlLgoqICAgKipEcml2ZXIgSW50ZXJhY3Rpb25zOioqIEhvdyB0aGlzIHNwZWNpZmljIGRyaXZlciBpbnRlcmZhY2VzIHdpdGggdGhlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIGFuZCBhbnkgYWJzdHJhY3Rpb24gbGF5ZXJzLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3Vlcywgb3IgcG9zc2libGUgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MsIGdpdmVuIHRoZSBhcmNoaXRlY3R1cmUgSSYjMzk7bSBjb25jZXJuZWQgd2l0aD8KKiAgICoqSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgKEhBTCkgQ29tcG9uZW50czoqKiBVbmRlcnN0YW5kaW5nIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBkZXRhaWxzIHRoYXQgdGhlIGBNVDc5MjFFYCBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoLiBJJiMzOTttIGtlZW4gdG8gZGlzY292ZXIgaWYgdGhlcmUgYXJlIGFueSBzdWJ0bGUgY2hhbmdlcyBpbiB0aGUgaGFyZHdhcmUgdmVyc2lvbiB0aGF0IGNvdWxkIGltcGFjdCBwZXJmb3JtYW5jZS4KKiAgICoqRmlybXdhcmUgRGVwZW5kZW5jaWVzOioqIFRoZSBzcGVjaWZpYyBmaXJtd2FyZSB2ZXJzaW9ucyByZXF1aXJlZCBvciBzdXBwb3J0ZWQuIENvbXBhdGliaWxpdHkgbWF0cmljZXMgYXJlIGltcG9ydGFudCBoZXJlLCBhbmQgSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCB0aGUgZmlybXdhcmUgaXMgZnVsbHkgYWxpZ25lZCB3aXRoIHRoZSBzb2Z0d2FyZS4gQWxzbywgSSYjMzk7bGwgcmV2aWV3IGhvdyB1cGRhdGVzIGFyZSBoYW5kbGVkLiBBbnkgcG90ZW50aWFsIGxvY2staW4/CiogICAqKkV4dGVybmFsIERlcGVuZGVuY2llczoqKiBBbnkgZGVwZW5kZW5jaWVzIG9uIGV4dGVybmFsIGxpYnJhcmllcyBvciBzZXJ2aWNlcyB0aGF0IG1pZ2h0IGJlIGluZGlyZWN0bHkgdXNlZCwgYW5kIHRoYXQgYXJlIG5vdCBpbW1lZGlhdGVseSBvYnZpb3VzLgoqICAgKipDb25jdXJyZW5jeSBDb25zaWRlcmF0aW9uczoqKiBJZiBtdWx0aXBsZSB0aHJlYWRzIG9yIHByb2Nlc3NlcyBtaWdodCBpbnRlcmFjdCB3aXRoIHRoZSBgTVQ3OTIxRWAsIGhvdyBhcmUgdGhvc2UgaW50ZXJhY3Rpb25zIGNvb3JkaW5hdGVkPyBJcyB0aGVyZSByaXNrIG9mIHJhY2UgY29uZGl0aW9ucyBvciBkZWFkbG9ja3M/CgpJIHdpbGwgc3RhcnQgYnkgcmV2aWV3aW5nIGFueSBkb2N1bWVudGVkIGRlcGVuZGVuY3kgdHJlZXMsIEFQSSByZWZlcmVuY2VzLCBvciBidWlsZCBzY3JpcHRzLiBGcm9tIHRoZXJlLCBJJiMzOTtsbCBsZXZlcmFnZSBteSBrbm93bGVkZ2Ugb2YgdGhlIHN5c3RlbSBhbmQgbXkgZXhwZXJpZW5jZSB0byBleHBsb3JlIGFueSB1bmRvY3VtZW50ZWQgb3IgaW1wbGljaXQgcmVsYXRpb25zaGlwcy4gVGhpcyBtYXkgbWVhbiBsb29raW5nIGF0IHRoZSBzb3VyY2UgY29kZSBpdHNlbGYsIHRyYWNpbmcgZnVuY3Rpb24gY2FsbHMsIG9yIGFuYWx5emluZyBzeXN0ZW0gbG9ncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMUUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc9Mj1jb25maWcgTVQ3OTIxX0NPTU1PTlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Nzpjb25maWcgTVQ3OTIxRVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy04LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDAyMQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDI3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHdoYXQmIzM5O3MgZ29pbmcgdGhyb3VnaCBteSBtaW5kIGFzIEkgYXBwcm9hY2ggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnYCBmaWxlLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGluIHRoZSBmaWVsZDoKCioqRGl2aW5nIGludG8gdGhlIE1UNzkyMSBLY29uZmlnKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgaW50byB0aGlzLiBJJiMzOTttIHRha2luZyBhIGxvb2sgYXQgdGhlIGBLY29uZmlnYCBmb3IgdGhlIE1UNzkyMSBkcml2ZXIgd2l0aGluIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBzdGFjay4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIGhpZ2gtbGV2ZWwgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGlzIEtjb25maWcgZmlsZSBkaWN0YXRlcyB3aGF0IGZlYXR1cmVzIGFyZSBidWlsZGFibGUsIGFuZCB3aGF0IGRlcGVuZGVuY2llcyBhcmUgcmVxdWlyZWQgZm9yIHN1cHBvcnRpbmcgdGhpcyBwYXJ0aWN1bGFyIDgwMi4xMWF4IGNoaXBzZXQuCgpJIGV4cGVjdCB0byBzZWUgdGhlIHR5cGljYWwgc3RydWN0dXJlIGhlcmU6IHRvcC1sZXZlbCBmZWF0dXJlIGZsYWdzLCBtYXliZSBvcHRpb25zIGZvciB0aGluZ3MgbGlrZSBwb3dlciBtYW5hZ2VtZW50LCByZWd1bGF0b3J5IGRvbWFpbiBzZXR0aW5ncywgdmFyaW91cyBkZWJ1Z2dpbmcgbGV2ZWxzLCBhbmQgcG90ZW50aWFsbHkgZGlmZmVyZW50IG9wZXJhdGlvbmFsIG1vZGVzIGxpa2UgQVAsIFNUQSwgb3IgbW9uaXRvci4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3IgYW55IHNpZ25zIG9mIG1vZHVsYXJpdHkgYW5kIGhvdyBjbGVhbmx5IHRoZSBjb2RlIGlzIGRlc2lnbmVkIHRvIGFsbG93IGNvbXBpbGUtdGltZSBjb25maWd1cmF0aW9uLgoKSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIG1ham9yIGNvbmZpZ3VyYWJsZSBhc3BlY3RzIOKAkyBkb2VzIGl0IHN1cHBvcnQgZHVhbC1iYW5kIG9wZXJhdGlvbj8gV2hhdCBhYm91dCBzcGVjaWZpYyBmZWF0dXJlcyBmb3IgdGhlIDZHSHogYmFuZCwgaWYgYW55PyBBcmUgdGhlcmUgYW55IG9wdGlvbnMgZm9yIG9mZmxvYWRpbmcgcHJvY2Vzc2luZywgb3IgYW55dGhpbmcgcmVsYXRlZCB0byBoYXJkd2FyZSBhY2NlbGVyYXRpb24/IEFuZCwgb2YgY291cnNlLCB0aGUgZXZlci1wcmVzZW50IHF1ZXN0aW9uOiB3aGF0IGFyZSB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9ucz8gQXJlIHRoZXkgcmVhc29uYWJsZSwgb3IgYXJlIHRoZXJlIGhpZGRlbiAmIzM0O2dvdGNoYXMmIzM0OyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/CgpNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IGEgdXNlciB3b3VsZCBlbmFibGUgb3IgZGlzYWJsZSB2YXJpb3VzIGZ1bmN0aW9ucywgYW5kIHRvIGFzc2VzcyB0aGUgZmxleGliaWxpdHkgb2YgdGhlIGRyaXZlciBjb25maWd1cmF0aW9uIGl0c2VsZi4gQXJlIHRoZXJlIGFueSBjb25kaXRpb25hbCBkZXBlbmRlbmNpZXMgdGhhdCBtaWdodCBjb21wbGljYXRlIHRoaW5ncywgb3IgYXJlIHRoaW5ncyB3ZWxsLW9yZ2FuaXplZCBhbmQgY2xlYXJseSBkZWZpbmVkPyBBbnkgdW51c3VhbCBvciB2ZW5kb3Itc3BlY2lmaWMgb3B0aW9ucyB0aGF0IG1heSByZXF1aXJlIGNsb3NlciBzdHVkeT8gSSYjMzk7bGwgYWxzbyBiZSBzZWFyY2hpbmcgZm9yIGFueSBjbHVlcyBhYm91dCB0aGUgcGxhbm5lZCBjYXBhYmlsaXRpZXMgZm9yIHRoaXMgY2hpcHNldC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIE1UNzkyMV9DT01NT05cbiAgIDM6XHRcdHRyaXN0YXRlXG4gICA0Olx0XHRzZWxlY3QgTVQ3OTJ4X0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XG4gICA3Olx0Y29uZmlnIE1UNzkyMUVcbiAgIDg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiAgIDk6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDEwOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDExOlx0XHRkZXBlbmRzIG9uIFBDSVxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIE1UNzkyMVNcbiAgMTg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdHNlbGVjdCBNVDc2X1NESU9cbiAgMjA6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0NzY4CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTAxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRyaXZlciBEZXBlbmRlbmNpZXMgYW5kIEV4cGxvcmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgTVQ3OTIxRWAgYW5kIGltbWVkaWF0ZWx5IHNlZSBpdCByZWxpZXMgb24gYE1BQzgwMjExYCBhbmQgYFBDSWAuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBzdHVmZi4gTm93IEkmIzM5O20gd29uZGVyaW5nIGlmIHRoZXJlIGFyZSBhbnkgKm90aGVyKiBQQ0kgZHJpdmVycyBpbiB0aGlzIGZhbWlseS4gTGV0JiMzOTtzIHNlZS4uLiBBaCwgeWVzLCB0aGVyZSYjMzk7cyBgTVQ3NjAzRWAsIGBNVDc2eDBFYCwgYE1UNzZ4MkVgLCBgTVQ3NjE1RWAsIGBNVDc5MTVFYCwgYE1UNzkyNUVgLCBhbmQgYE1UNzk5NkVgLiBHb3QgaXQuIE5vdywgZ2l2ZW4gdGhhdCBsaXN0LCBJIHRoaW5rIGl0JiMzOTtzIHdvcnRoIHRha2luZyBhIGNsb3NlciBsb29rIGF0IGBNVDc5MTVFYC4gSXQmIzM5O2xsIGJlIGludGVyZXN0aW5nIHRvIHNlZSBob3cgaXQmIzM5O3MgYXJjaGl0ZWN0ZWQgY29tcGFyZWQgdG8gYE1UNzkyMUVgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjY4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTVQ3OTE1RSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MTVFXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MjI5CgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoYXQgS2NvbmZpZyBmaWxlOgoKKipBbmFseXppbmcgdGhlIG10NzkxNSBLY29uZmlnIEZpbGUqKgoKT2theSwgdGltZSB0byBkaXZlIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnYCBmaWxlLiBJJiMzOTttIGV4cGVjdGluZyB0aGlzIHRvIGJlIHRoZSBjZW50cmFsIGNvbmZpZ3VyYXRpb24gaHViIGZvciB0aGUgTVQ3OTE1IHdpcmVsZXNzIGRyaXZlciB3aXRoaW4gdGhlIGJyb2FkZXIgTVQ3NiBmcmFtZXdvcmsuIE15IHByaW1hcnkgZm9jdXMgd2lsbCBiZSBvbiB1bmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQ6CgoqICAgKipEZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3IgZHJpdmVyIGNvbXBvbmVudHMgaXMgdGhpcyBtb2R1bGUgZGVwZW5kZW50IG9uPyBXaGF0IG90aGVyIGRyaXZlcnMgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSBgbXQ3OTE1YCBjYW4gYmUgc2VsZWN0ZWQ/IEkmIzM5O2xsIGxvb2sgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLgoqICAgKipEZWZhdWx0IEJlaGF2aW9yOioqIFdoYXQmIzM5O3MgdGhlIGRlZmF1bHQgc3RhdGUgb2YgdGhlIG9wdGlvbnMg4oCTIGFyZSB0aGV5IGJ1aWx0LWluLCBtb2R1bGFyaXplZCwgb3IgZGlzYWJsZWQ/IFRoaXMgZ2l2ZXMgbWUgYSBzZW5zZSBvZiB0aGUgZHJpdmVyJiMzOTtzIG91dC1vZi10aGUtYm94IGNvbmZpZ3VyYXRpb24uIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGBkZWZhdWx0YCBrZXl3b3Jkcy4KKiAgICoqQ29uZmlndXJhdGlvbiBPcHRpb25zOioqIFdoYXQgY2FuIGEgdXNlciBjb250cm9sIHJlZ2FyZGluZyB0aGUgZmVhdHVyZXMgb2YgdGhpcyB3aXJlbGVzcyBkcml2ZXI/IFRoaXMgaXMgd2hlcmUgSSBleHBlY3QgdG8gZmluZCBmbGFncyBmb3IgdGhpbmdzIGxpa2UgcmVndWxhdG9yeSBkb21haW4gc2VsZWN0aW9uLCBwb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMsIGZpcm13YXJlIGxvYWRpbmcsIG9yIHBvc3NpYmx5IHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzIGxpa2Ugc3BlY2lmaWMgODAyLjExIHN0YW5kYXJkcy4gSSB3aWxsIGxvb2sgZm9yIHZhcmlvdXMgY29uZmlndXJhdGlvbiBvcHRpb25zIHRvIGZpbmQgYWxsIGF2YWlsYWJsZSBmZWF0dXJlcy4KKiAgICoqUmVsYXRpb25zaGlwcyB0byBvdGhlciBmaWxlczoqKiBIb3cgaXMgdGhpcyBLY29uZmlnIGZpbGUgc3RydWN0dXJlZCBhbmQgaG93IGRvZXMgaXQgcmVsYXRlIHRvIG90aGVyIGNvbmZpZ3VyYXRpb24gZmlsZXMgaW4gdGhlIHdpZGVyIE1UNzYgZGlyZWN0b3J5IHRyZWU/IEkgZXhwZWN0IGl0IHRvIHNvdXJjZSBvdGhlciBLY29uZmlnIGZpbGVzIGFuZCBwb3RlbnRpYWxseSBkZWZpbmUgZnVydGhlciBjb25maWd1cmF0aW9ucy4KKiAgICoqRG9jdW1lbnRhdGlvbjoqKiBIb3BlZnVsbHksIHRoZXJlIGFyZSBzb21lIGRlY2VudCBjb21tZW50cy4gQW55IGNsZWFyIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucyBhcmUgYWx3YXlzIHdlbGNvbWUgYW5kIGhlbHAgaW4gdW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIGRpZmZlcmVudCBzZXR0aW5ncy4KCkJ5IGFuYWx5emluZyB0aGVzZSBhc3BlY3RzLCBJJiMzOTtsbCBiZSBhYmxlIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIGNvbmZpZ3VyYWJsZSBhc3BlY3RzIG9mIHRoZSBNVDc5MTUgZHJpdmVyLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIHNvbGlkIGZvdW5kYXRpb24gZm9yIGV2YWx1YXRpbmcgaXRzIHN1aXRhYmlsaXR5IGZvciBhIHNwZWNpZmljIHN5c3RlbSBvciB0cm91Ymxlc2hvb3RpbmcgcG90ZW50aWFsIGlzc3Vlcy4gVGhpcyBpcyBhIGNydWNpYWwgZmlyc3Qgc3RlcCBmb3IgcHJvcGVyIGludGVncmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3OTE1RVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTE1RSAoUENJZSkgc3VwcG9ydFwmIzM0O1xuICAgNDpcdFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gICA3Olx0XHRkZXBlbmRzIG9uIFBDSVxuICAgODpcdFx0c2VsZWN0IFJFTEFZXG4gICA5Olx0XHRoZWxwXG4gIDEwOlx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MTUtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxuICAxMTpcdFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcbiAgMTI6XHRcdCAgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWF4IDR4NDo0U1MgMTAyNC1RQU0sIDE2ME1IeiBjaGFubmVscyxcbiAgMTM6XHRcdCAgT0ZETUEsIHNwYXRpYWwgcmV1c2UgYW5kIGR1YWwgY2FycmllciBtb2R1bGF0aW9uLlxuICAxNDpcdFxuICAxNTpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxuICAxNjpcdFxuICAxNzpcdGNvbmZpZyBNVDc5OFhfV01BQ1xuICAxODpcdFx0Ym9vbCBcJiMzNDtNVDc5OHggKFNvQykgV01BQyBzdXBwb3J0XCYjMzQ7XG4gIDE5Olx0XHRkZXBlbmRzIG9uIE1UNzkxNUVcbiAgMjA6XHRcdGRlcGVuZHMgb24gQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43MS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzYwNjMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA5MTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBtb2RpZnlpbmcgYG10NzZfZG1hX2NsZWFudXBgIGluIHRoZSBNZWRpYXRlayB3aXJlbGVzcyBkcml2ZXIsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY2AuIFRoZSBjaGFuZ2UgaW50cm9kdWNlcyBhIGNoZWNrIGZvciBgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpYCBhbmQgY29uZGl0aW9uYWxseSBjYWxscyBgbmFwaV9kaXNhYmxlYC4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgbW9kaWZpY2F0aW9uLCBzbyBsZXQmIzM5O3MgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGltcGFjdC4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGNvZGUgcGF0aCBpcyBldmVuIHJlYWNoYWJsZS4gYG10NzZfZG1hX2NsZWFudXBgIGlzIGNhbGxlZCBkdXJpbmcgZGV2aWNlIHVucmVnaXN0cmF0aW9uIG9yIHByb2JlIGZhaWx1cmUsIHdoaWNoIG1lYW5zIGlmIEkgY2FuIHRyaWdnZXIgZWl0aGVyIHNjZW5hcmlvLCBJIGNhbiBoaXQgdGhpcyBjb2RlLiBDb25zaWRlcmluZyB0aGUga2VybmVsIGNvbmZpZ3VyYXRpb24sIGBNVDc2X0NPUkVgIHNlZW1zIGVzc2VudGlhbCwgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYE1UNzkxNUVgLCBhbG9uZyB3aXRoIG90aGVyIE1UNzl4eCBhbmQgTVQ3Nnh4IGRyaXZlcnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIHJlbGV2YW50IGNvZGUgaXMgY29tcGlsZWQsIGFuZCBpdCBsb29rcyBsaWtlIGBvYmotJChDT05GSUdfTVQ3Nl9DT1JFKSAmIzQzOz0gbXQ3Ni5vYCBhbmQgYG10NzYteSAmIzQzOz0gZG1hLm9gIHdpdGhpbiB0aGUgTWFrZWZpbGUgY29uZmlybXMgdGhhdCB0aGUgY29tcGlsYXRpb24gaW5jbHVkZXMgdGhlIGZpbGUuCgpUaGUga2V5IHF1ZXN0aW9uIGlzLCBjYW4gc29tZXRoaW5nIGxpa2Ugc3l6a2FsbGVyIHRyaWdnZXIgdGhlc2UgZXZlbnRzPyBXZWxsLCBzeXprYWxsZXIgZG9lcyBoYXZlIFBDSSBmdXp6aW5nIGNhcGFiaWxpdGllcyBhbmQgY2FuIGVtdWxhdGUgUENJIGRldmljZXMuIEkga25vdyBpdCBjYW4gcHJvYmUgUENJIGRldmljZXMgdXNpbmcgYHN5el9wY2lfc2V0dXBgIGFuZCBzaW1pbGFyIGZ1bmN0aW9ucyBhbmQgc2ltdWxhdGUgcHJvYmUvcmVtb3ZlIGN5Y2xlcy4gQW5kIGl0ICpzaG91bGQqIHRyeSB0byBwcm9iZSBNZWRpYXRlayBXaS1GaSBkcml2ZXJzIGlmIHRoZSBjb25maWcgaXMgZW5hYmxlZC4gU28sIHllcywgaWYgc3l6a2FsbGVyIGlzIGNvbmZpZ3VyZWQgZm9yIFBDSSBmdXp6aW5nLCB0aGlzIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLCBwYXJ0aWN1bGFybHkgaW4gYSB2aXJ0dWFsaXplZCBRRU1VIGVudmlyb25tZW50LgoKTm93LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIEkga25vdyBJIG5lZWQgdG8gZW5hYmxlIGEgZHJpdmVyIGxpa2UgYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgb3Igb3RoZXJzIHRvIHB1bGwgaW4gYE1UNzZfQ09SRWAuIGBNVDc2X0NPUkVgIGlzIHRoZSBjb3JlIGxpYnJhcnkgdGhhdCBjb21waWxlcyBgZG1hLmNgLiBJIG5lZWQgdG8gZW5zdXJlIG9uZSBvZiB0aGVzZSBkcml2ZXJzIGlzIHNlbGVjdGVkLiBUaGUgYEtjb25maWdgIGNvbmZpcm1zIGBNVDc2X0NPUkVgIGlzIHRyaXN0YXRlLCBidXQgaXNuJiMzOTt0IGRpcmVjdGx5IHVzZXItc2VsZWN0YWJsZSwgc28gSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgYSBkcml2ZXIgdGhhdCAqc2VsZWN0cyogaXQuCgpUbyBiZSBzYWZlLCBJJiMzOTtsbCBzcGVjaWZ5IGEgZmV3IG9mIHRoZW0gaW4gdGhlIGBFbmFibGVDb25maWdzYDogYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgYE1UNzYwM0VgLgoKT2theSwgbm93IGZvciB0aGUgaW1wb3J0YW50IGJpdDogd2hhdCYjMzk7cyBgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpYD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbiBiZWluZyBjaGVja2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc2X3F1ZXVlX2lzX3dlZF9ycm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTE1OT1tdDc2X2RtYV9xdWV1ZV9tYWdpY19jbnRfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE2MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjE2MTpcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNjItXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE2NC1cdHEtXHUwMDNlbWFnaWNfY250ID0gMDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTY1Olx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTY2LVx0XHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2Rlc2MgKnJyb19kZXNjO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTc3LVx0XHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjE3ODpcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE3OS1cdFx0c3RydWN0IG10NzZfcnJvX3J4ZG1hZF9jICpkbWFkID0gKHZvaWQgKilxLVx1MDAzZWRlc2M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0yMDg9dm9pZCBtdDc2X2RtYV9xdWV1ZV9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yMTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjIxNDpcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MjE1Olx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkgXHUwMDI2XHUwMDI2ICFtdDc2X3F1ZXVlX2lzX25wdShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yMTYtXHRcdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MjM1PW10NzZfZG1hX2FkZF9yeF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjQ0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoyNDU6XHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNDYtXHRcdHN0cnVjdCBtdDc2X3dlZF9ycm9fZGVzYyAqcnJvX2Rlc2M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNTAtXHRcdGdvdG8gZG9uZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MjUxOlx0fSBlbHNlIGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjUyLVx0XHRkYXRhID0gXHUwMDI2cS1cdTAwM2VkZXNjW3EtXHUwMDNlaGVhZF07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjI2MjpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9yeChxKSB8fCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fZGF0YShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjMtXHRcdHR4d2kgPSBtdDc2X2dldF9yeHdpKGRldik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjI3OTpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjgwLVx0ICAgIGRldi1cdTAwM2VkcnYtXHUwMDNlcnhfcnJvX2FkZF9tc2R1X3BhZ2UpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTQ5ND1tdDc2X2RtYV9nZXRfYnVmKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgaW50IGlkeCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTUwMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTAyOlx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcdTAwMjZcdTAwMjYgIWZsdXNoKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01MDMtXHRcdGJ1ZiA9IG10NzZfZG1hX2dldF9yeGRtYWRfY19idWYoZGV2LCBxLCBpZHgsIGxlbiwgbW9yZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTUwNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTA1Olx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTA2LVx0XHRnb3RvIGRvbmU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz01NTE9bXQ3Nl9kbWFfZGVxdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsIGJvb2wgZmx1c2gsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01NTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjU2MDpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fZGF0YShxKSB8fCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTYxLVx0XHRnb3RvIGRvbmU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTU2Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTYzOlx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTY0LVx0XHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2luZCAqY21kO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTc3LVx0XHRcdHEtXHUwMDNlbWFnaWNfY250ID0gKHEtXHUwMDNlbWFnaWNfY250ICYjNDM7IDEpICUgTVRfRE1BX1dFRF9JTkRfQ01EX0NOVDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTc4Olx0fSBlbHNlIGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTc5LVx0XHRzdHJ1Y3QgbXQ3Nl9ycm9fcnhkbWFkX2MgKmRtYWQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz03NDk9bXQ3Nl9kbWFfcnhfZmlsbF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNzYyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo3NjM6XHRcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjc2NDpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNzY1LVx0XHRcdGdvdG8gZG9uZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTgwMj1tdDc2X2RtYV9hbGxvY19xdWV1ZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjgxNzpcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04MTgtXHRcdHNpemUgPSBzaXplb2Yoc3RydWN0IG10NzZfd2VkX3Jyb19kZXNjKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg0Ni1cdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XHRcdGlmICgobXRrX3dlZF9nZXRfcnhfY2FwYShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg0OC1cdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz04NjE9bXQ3Nl9kbWFfcnhfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODItXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODgzOlx0XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODQtXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODYtXHRcdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg4NzpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg4LVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04ODktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg5MDpcdFx0aWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg5MTpcdFx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04OTItXHRcdFx0bXQ3Nl9wdXRfcGFnZV9wb29sX2J1ZihidWYsIGZhbHNlKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTkwNT1tdDc2X2RtYV9yeF9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgZW51bSBtdDc2X3J4cV9pZCBxaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MTEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkxMjpcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6OTEzOlx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fcnhkbWFkX2MocSkgXHUwMDI2XHUwMDI2ICFtdDc2X3F1ZXVlX2lzX25wdShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MTQtXHRcdGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI4LVx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5Mjk6XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy05MzAtXHRcdHJldHVybjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzMi1cdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkzMzpcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzNC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9OTc0PW10NzZfZG1hX3J4X3Byb2Nlc3Moc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLCBpbnQgYnVkZ2V0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTAxMjpcdFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXHUwMDI2XHUwMDI2IGRldi1cdTAwM2VkcnYtXHUwMDNlcnhfcnJvX2luZF9wcm9jZXNzKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMDEzLVx0XHRcdGRldi1cdTAwM2VkcnYtXHUwMDNlcnhfcnJvX2luZF9wcm9jZXNzKGRldiwgZGF0YSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEwMTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTU6XHRcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTY6XHRcdCAgICAhbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEwMTctXHRcdFx0ZG9uZSYjNDM7JiM0Mzs7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTA4PW10NzZfZG1hX2luaXQoc3RydWN0IG10NzZfZGV2ICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTM4LVx0bXQ3Nl9mb3JfZWFjaF9xX3J4KGRldiwgaSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTM5Olx0XHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFx1MDAyNmRldi1cdTAwM2VxX3J4W2ldKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE0MC1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjc9dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE5MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE5MjpcdFx0aWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE5My1cdFx0XHRuYXBpX2Rpc2FibGUoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbaV0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTE5NzA9c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUoc3RydWN0IG10NzZfcXVldWUgKnEpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5NzY6c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3JybyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5Nzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTgxOnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk4Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTgzOlx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODQtXHQgICAgICAgRklFTERfR0VUKE1UX1FGTEFHX1dFRF9UWVBFLCBxLVx1MDAzZWZsYWdzKSA9PSBNVDc2X1dFRF9SUk9fUV9JTkQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk4Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5ODc6c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTk4OTpcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xOTkwLVx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cdTAwM2VmbGFncykgPT0gTVQ3Nl9XRURfUlJPX1FfUlhETUFEX0M7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5OTM6c3RhdGljIGlubGluZSBib29sIG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk1Olx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5OTYtXHQgICAgICAgRklFTERfR0VUKE1UX1FGTEFHX1dFRF9UWVBFLCBxLVx1MDAzZWZsYWdzKSA9PSBNVDc2X1dFRF9SUk9fUV9EQVRBO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5OTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk5OnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTIwMDAte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MjAwMTpcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yMDAyLVx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cdTAwM2VmbGFncykgPT1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyNy1cdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMjg6XHRcdFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOS1cdFx0XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfdHhfZnJlZShxKSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAzMDpcdFx0XHRcdGlmIChmb3JjZSBcdTAwMjZcdTAwMjYgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2RhdGEocSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDMxLVx0XHRcdFx0XHRtdDc2X3F1ZXVlX3Jlc2V0KGRldiwgcSwgZmFsc2UpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNDEtXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNiBmb3JjZSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNDI6XHRcdCAgICAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSB8fFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA0MzpcdFx0ICAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDQ0LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjI0OS1cdFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMjUwOlx0XHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFx1MDAyNm1kZXYtXHUwMDNlcV9yeFtpXSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMjUxLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIyNjUtXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjI2NjpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhcdTAwMjZtZGV2LVx1MDAzZXFfcnhbaV0pKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjI2Ny1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzAyLVx0XHRtdDc2X2Zvcl9lYWNoX3FfcngoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIGkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjIzMDM6XHRcdFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQoXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtpXSkgfHxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjIzMDQ6XHRcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3Jyb19tc2R1X3BnKFx1MDAyNmRldi1cdTAwM2VtdDc2LnFfcnhbaV0pKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMwNS1cdFx0XHRcdG10NzZfcXVldWVfcnhfcmVzZXQoZGV2LCBpKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYz0yNDUxPXZvaWQgbXQ3OTk2X21hY19yZXNldF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTE1LVx0XHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2Lm1taW8ud2VkKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjI1MTY6XHRcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtpXSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTE3LVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1MTktXHRcdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jOjI1MjA6XHRcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtpXSkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTIxLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1NzctXHRcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjU3ODpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1NzktXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjU4MS1cdFx0aWYgKG10NzZfbnB1X2RldmljZV9hY3RpdmUoXHUwMDI2ZGV2LVx1MDAzZW10NzYpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjU4MjpcdFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1ODMtXHRcdFx0Y29udGludWU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MTE4CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTE4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIEFuYWx5c2lzOiBtdDc2X2RtYV9jbGVhbnVwIGluIE1lZGlhdGVrIE1UNzYgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGlzIGBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9gIGZ1bmN0aW9uIGlzIGEgc2ltcGxlIGlubGluZSBjaGVjazsgbm90aGluZyBpbnRlcmVzdGluZyB0aGVyZSwganVzdCBiYWNrZ3JvdW5kIGNvbnRleHQuIFRoZSBjb3JlIGNoYW5nZSBpcyBpbiBgbXQ3Nl9kbWFfY2xlYW51cGAuIFRoaXMgcGF0Y2ggbW9kaWZpZXMgYG10NzZfZG1hX2NsZWFudXBgIHRvICphdm9pZCogZGlzYWJsaW5nIGFuZCBkZWxldGluZyBOQVBJIChOZXR3b3JrIEFQSSkgZm9yIFdFRCAoV2lyZWxlc3MgRW5oYW5jZWQgRGF0YSkgUlJPIChSZWNlaXZlIFJpbmcgT3B0aW1pemVkKSBxdWV1ZXMsIGFuZCAqaW1wb3J0YW50bHkqLCBpdCBhZGRzIGEgbWlzc2luZyBgbmFwaV9kaXNhYmxlYCBjYWxsIGZvciB0aGUgKm5vbiotV0VEIFJSTyBxdWV1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgaXQmIzM5O3MgZml4aW5nIGEgYnVnIGJ5IHByZXZlbnRpbmcgTkFQSSBkZWxldGlvbiBmb3IgV0VEIFJSTyBxdWV1ZXMgYW5kIHByZXZlbnRpbmcgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgLgoKU28sIHRoZSBrZXkgaGVyZSBpcyBgbXQ3Nl9kbWFfY2xlYW51cGAuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXp6aW5nLiBUaGUgcXVlc3Rpb24gaXMgaG93IHRvIG1ha2UgaXQgaGFwcGVuLiBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQuIEFoLCBpdCYjMzk7cyBkdXJpbmcgZGV2aWNlIHVucmVnaXN0cmF0aW9uISBUaGF0JiMzOTtzIHByb21pc2luZy4gQXJlIHRoZXJlIG90aGVyIGZ1bmN0aW9ucyBhZmZlY3RlZD8gTGV0JiMzOTtzIGNoZWNrIGBtdDc2X2RtYV9pbml0YCBvciBgbXQ3Nl9kbWFfcnhfY2xlYW51cGAuIEJ1dCByZWFsbHksIGBtdDc2X2RtYV9jbGVhbnVwYCBpcyB0aGUgZm9jdXMuCgpOb3csIGxldCYjMzk7cyBsb29rIGF0IHRoZSBjb25maWd1cmF0aW9uIHNpZGUgb2YgdGhpbmdzLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb25maWdzIGVuYWJsZSB0aGUgcmVsZXZhbnQgY29kZS4gVGhlIGRyaXZlcnMgb2YgaW50ZXJlc3QgYXJlOiBgTVQ3OTE1RWAsIGBNVDc5MjFFYCwgYE1UNzYxNUVgLCBgTVQ3NjAzRWAsIGBNVDc2eDJFYCwgYE1UNzkyNUVgLCBgTVQ3OTk2RWAuICBTaW5jZSBgTVQ3OTIxRWAgaXMgYSBjb21tb24gUENJZSBjYXJkLCBsZXQmIzM5O3MgcHJpb3JpdGl6ZSBpdCBhbmQgYE1UNzkxNUVgIGFuZCBgTVQ3NjE1RWAuIExldCYjMzk7cyB2ZXJpZnkgYE1UNzkyMUVgIGRlcGVuZHMgb24gYE1BQzgwMjExYCwgYW5kIGBQQ0lgLiBQZXJmZWN0LCB0aGVzZSBhcmUgZWFzaWx5IHJlYWNoYWJsZS4KClRoZSBjcml0aWNhbCBwaWVjZTogY2FuIHRoaXMgYmUgaGl0IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGxpa2Ugd2l0aCBzeXprYWxsZXI/ICBZZXMhIFBDSSBmdXp6aW5nLCBzeXprYWxsZXIgY2FuIHByb2JlLCB0aGVuIHVucmVnaXN0ZXIgdGhlIGRldmljZS4gVGhpcyB0cmlnZ2VycyBgbXQ3Nl9kbWFfY2xlYW51cGAsIGFuZCB0aHVzIGl0IGlzICoqd29ydGggZnV6emluZyoqLiBJJiMzOTttIHRhcmdldGluZyAgYG10NzZfZG1hX2NsZWFudXBgLgoKTm93LCBmb3IgY29uZmlndXJhdGlvbi4gIFdlIGNhbiBmb2N1cyBvbiB0aGUgc2FtZSBkcml2ZXJzOiBgTVQ3OTE1RWAsIGBNVDc5MjFFYCwgYE1UNzYxNUVgLCBgTVQ3NjAzRWAsIGBNVDc2eDJFYC4KCk9rYXksIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gIERvZXMgYE1UNzkyMUVgIGVuYWJsZSBgTVQ3Nl9DT1JFYD8gWWVzLiBgTVQ3OTIxRWAgc2VsZWN0cyBgTVQ3OTIxX0NPTU1PTmAsIHdoaWNoIHNlbGVjdHMgYE1UNzkyeF9MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPTk5BQ19MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPUkVgLiAgU28gYE1UNzkyMUVgIGlzIHN1ZmZpY2llbnQuCgpMZXQgbWUgd3JpdGUgb3V0IHRoZSByZWFzb25pbmc6IFRoZSBwYXRjaCBtb2RpZmllcyBgbXQ3Nl9kbWFfY2xlYW51cGAgdG8gY29ycmVjdGx5IGRpc2FibGUgYW5kIGRlbGV0ZSBOQVBJIGZvciB3aXJlbGVzcyBkcml2ZXJzLCBlc3BlY2lhbGx5IHJlbGF0ZWQgdG8gdGhlIGhhbmRsaW5nIG9mIFdFRCBhbmQgbm9uLVdFRCBSUk8gcXVldWVzLiBUaGUgZml4IGlzIGNhbGxlZCBkdXJpbmcgdGhlIERNQSBjbGVhbnVwIHBhdGggd2hlbiB0aGUgZGV2aWNlIHVucmVnaXN0ZXJzLiBCZWNhdXNlIHRoaXMgY2FuIGJlIHJlYWNoZWQgdmlhIFBDSSBmdXp6aW5nIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIHdoaWNoIGNhbiB0cmlnZ2VyIGRldmljZSB1bnJlZ2lzdHJhdGlvbiwgaXQmIzM5O3Mgd29ydGggZnV6emluZy4KCkxldCYjMzk7cyByZXZpZXcgdGhlIGNvZGUgb25lIG1vcmUgdGltZSB0byBtYWtlIHN1cmUgaXQmIzM5O3MgYWNjdXJhdGU6CgpgYGBjCkBAIC0xMTg5LDcgJiM0MzsxMTg5LDEwIEBAIHZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldikKIAltdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7CiAJCXN0cnVjdCBtdDc2X3F1ZXVlICpxID0gJmFtcDtkZXYtJmd0O3FfcnhbaV07CiAKLQkJbmV0aWZfbmFwaV9kZWwoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJaWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHsKJiM0MzsJCQluYXBpX2Rpc2FibGUoJmFtcDtkZXYtJmd0O25hcGlbaV0pOwomIzQzOwkJCW5ldGlmX25hcGlfZGVsKCZhbXA7ZGV2LSZndDtuYXBpW2ldKTsKJiM0MzsJCX0KIAkJbXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpOwogCiAJCXBhZ2VfcG9vbF9kZXN0cm95KHEtJmd0O3BhZ2VfcG9vbCk7CmBgYAoKWXVwLCBpdCYjMzk7cyBhIGdvb2QgZml4LiBMZXQmIzM5O3Mgc2VlIGFib3V0IHRoZSBjb25maWd1cmF0aW9ucy4gYE1BQzgwMjExYCBpcyBhbHJlYWR5IGluIHN5emthbGxlci4gYFBDSWAgYWxzbyBpcyBpbiBzeXprYWxsZXIuIFNvCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMDk6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzk5NkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L0tjb25maWc6Mjpjb25maWcgTVQ3OTk2RVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IChQQ0llKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDA5OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ2NDk5CgkJCQkJCQlvdXRwdXQ6IDE4NgoJCQkJCQkJdGhvdWdodHM6IDc4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHM6CgoqKkFkZGluZyBEcml2ZXIgU3VwcG9ydCoqCgpPa2F5LCBzbyBJJiMzOTttIGV4cGFuZGluZyB0aGUgc2NvcGUgaGVyZS4gRGVmaW5pdGVseSwgYE1UNzk5NkVgIGZpdHMgdGhlIHByb2ZpbGUgYXMgYSBQQ0kgZHJpdmVyOyB0aGF0JiMzOTtzIHNvbGlkLiBUaW1lIHRvIGV4cGFuZCB0aGUga25vd24gc2V0LiBJJiMzOTtsbCBpbmNsdWRlIGBNVDc5MjFFYCwgYE1UNzkxNUVgLCBgTVQ3NjE1RWAsIGBNVDc2MDNFYCwgYE1UNzZ4MkVgIGFuZCBgTVQ3OTk2RWAgaW4gdGhlIGxpc3Qgb2YgUENJIGRyaXZlcnMgdGhhdCBhcmUga25vd24gdG8gd29yayB3aXRoIHRoZSBzeXN0ZW0uIFRoYXQgY292ZXJzIGEgYnJvYWRlciByYW5nZSBvZiB0aGUgaGFyZHdhcmUuIFRoZW4gSSYjMzk7bGwgY3JlYXRlIGBzZXQtcmVzdWx0c2AgdG8gcHJvcGVybHkgY2FsbCBpdCBvdXQuIAoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjc2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAwOTo0MjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxRSYjMzQ7LAogICAgJiMzNDtNVDc5MTVFJiMzNDssCiAgICAmIzM0O01UNzYxNUUmIzM0OywKICAgICYjMzQ7TVQ3NjAzRSYjMzQ7LAogICAgJiMzNDtNVDc2eDJFJiMzNDssCiAgICAmIzM0O01UNzk5NkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc2X2RtYV9jbGVhbnVwJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBETUEgY2xlYW51cCBwYXRoIChgbXQ3Nl9kbWFfY2xlYW51cGApIGluIHRoZSBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlciBjb3JlLiBJdCBhZGRzIGEgbWlzc2luZyBgbmFwaV9kaXNhYmxlYCBjYWxsIGFuZCBwcmV2ZW50cyBkaXNhYmxpbmcvZGVsZXRpbmcgTkFQSSBmb3IgV0VEIFJSTyBxdWV1ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZHJpdmVyJiMzOTtzIHRlYXJkb3duL2Vycm9yLWhhbmRsaW5nIHBhdGgsIHdoaWNoIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFBDSSBkZXZpY2UgZnV6emluZyAocHJvYmUvcmVtb3ZlIGN5Y2xlcykuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMUUmIzM0OywKICAgICYjMzQ7TVQ3OTE1RSYjMzQ7LAogICAgJiMzNDtNVDc2MTVFJiMzNDssCiAgICAmIzM0O01UNzYwM0UmIzM0OywKICAgICYjMzQ7TVQ3NngyRSYjMzQ7LAogICAgJiMzNDtNVDc5OTZFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3Nl9kbWFfY2xlYW51cCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlciYjMzk7cyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mjg6MjUuMjE4Mzc5Mjc3WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODczMzUwNDI5NDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMUVcIixcbiAgICBcIk1UNzkxNUVcIixcbiAgICBcIk1UNzYxNUVcIixcbiAgICBcIk1UNzYwM0VcIixcbiAgICBcIk1UNzZ4MkVcIixcbiAgICBcIk1UNzk5NkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X2RtYV9jbGVhbnVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERNQSBjbGVhbnVwIHBhdGggKGBtdDc2X2RtYV9jbGVhbnVwYCkgaW4gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyIGNvcmUuIEl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgYW5kIHByZXZlbnRzIGRpc2FibGluZy9kZWxldGluZyBOQVBJIGZvciBXRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyODoyNS4yMTgzODc2MzdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYwMzE5MDAyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFhMTNlMjg4MjEyMjMzY2NhY2VhZDk4ZDVhOWMxZTYwN2QwNDgwZDBcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgOSAwOToyODoyMyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY1xcbmluZGV4IGY4YzJmZTVmMmY1ODc3Li4zMjIwNDE4NTkyMTc0NiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY1xcbkBAIC0xMTg5LDcgKzExODksMTAgQEAgdm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbiBcXHRtdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7XFxuIFxcdFxcdHN0cnVjdCBtdDc2X3F1ZXVlICpxID0gXFx1MDAyNmRldi1cXHUwMDNlcV9yeFtpXTtcXG4gXFxuLVxcdFxcdG5ldGlmX25hcGlfZGVsKFxcdTAwMjZkZXYtXFx1MDAzZW5hcGlbaV0pO1xcbitcXHRcXHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3JybyhxKSkge1xcbitcXHRcXHRcXHRuYXBpX2Rpc2FibGUoXFx1MDAyNmRldi1cXHUwMDNlbmFwaVtpXSk7XFxuK1xcdFxcdFxcdG5ldGlmX25hcGlfZGVsKFxcdTAwMjZkZXYtXFx1MDAzZW5hcGlbaV0pO1xcbitcXHRcXHR9XFxuIFxcdFxcdG10NzZfZG1hX3J4X2NsZWFudXAoZGV2LCBxKTtcXG4gXFxuIFxcdFxcdHBhZ2VfcG9vbF9kZXN0cm95KHEtXFx1MDAzZXBhZ2VfcG9vbCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI4OjI1LjgyMjU1NzU0OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODcyNzQ2MjQxMDA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMUVcIixcbiAgICBcIk1UNzkxNUVcIixcbiAgICBcIk1UNzYxNUVcIixcbiAgICBcIk1UNzYwM0VcIixcbiAgICBcIk1UNzZ4MkVcIixcbiAgICBcIk1UNzk5NkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc2X2RtYV9jbGVhbnVwXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIERNQSBjbGVhbnVwIHBhdGggKGBtdDc2X2RtYV9jbGVhbnVwYCkgaW4gdGhlIE1lZGlhdGVrIE1UNzYgd2lyZWxlc3MgZHJpdmVyIGNvcmUuIEl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgYW5kIHByZXZlbnRzIGRpc2FibGluZy9kZWxldGluZyBOQVBJIGZvciBXRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBkcml2ZXIncyB0ZWFyZG93bi9lcnJvci1oYW5kbGluZyBwYXRoLCB3aGljaCBjYW4gYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHZpYSBQQ0kgZGV2aWNlIGZ1enppbmcgKHByb2JlL3JlbW92ZSBjeWNsZXMpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGFhMTNlMjg4MjEyMjMzY2NhY2VhZDk4ZDVhOWMxZTYwN2QwNDgwZDBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCA5IDA5OjI4OjIzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNcbmluZGV4IGY4YzJmZTVmMmY1ODc3Li4zMjIwNDE4NTkyMTc0NiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNcbkBAIC0xMTg5LDcgKzExODksMTAgQEAgdm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxuIFx0bXQ3Nl9mb3JfZWFjaF9xX3J4KGRldiwgaSkge1xuIFx0XHRzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSA9IFx1MDAyNmRldi1cdTAwM2VxX3J4W2ldO1xuIFxuLVx0XHRuZXRpZl9uYXBpX2RlbChcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4rXHRcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKSB7XG4rXHRcdFx0bmFwaV9kaXNhYmxlKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtcbitcdFx0XHRuZXRpZl9uYXBpX2RlbChcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4rXHRcdH1cbiBcdFx0bXQ3Nl9kbWFfcnhfY2xlYW51cChkZXYsIHEpO1xuIFxuIFx0XHRwYWdlX3Bvb2xfZGVzdHJveShxLVx1MDAzZXBhZ2VfcG9vbCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyODoyNS44MjI1NTk4NzlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTgwNjcyNDQ4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBNVDc2IERNQSBDbGVhbnVwIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBjaGFuZ2VzIGFyZSBpbiBgbXQ3Nl9kbWFfY2xlYW51cGAuIE15IGluaXRpYWwgZ2xhbmNlIHRlbGxzIG1lIHRoZXkndmUgYWRkZWQgYSBjb25kaXRpb25hbCBjaGVjazogYGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKWAgYmVmb3JlIGNhbGxpbmcgYG5hcGlfZGlzYWJsZWAgYW5kIGBuZXRpZl9uYXBpX2RlbGAuIFRoYXQncyBpbnRlcmVzdGluZzsgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCB0aGF0LiBXaHkgdGhlIGV4dHJhIGNvbmRpdGlvbj8gQW5kIHdhaXQuLi4gaG9sZCBvbi4uLiB0aGV5J3ZlIGFsc28gKmFkZGVkKiBgbmFwaV9kaXNhYmxlKFx1MDAyNmRldi1cdTAwM2VuYXBpW2ldKTtgIHdoZXJlIGl0IHdhc24ndCBiZWZvcmU/IFRoYXQncyBhIGtleSBjaGFuZ2UuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBjb3JyZWN0aW9uIG9mIGEgcHJldmlvdXMgZXJyb3IsIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIG9yIGEgY2hhbmdlIHJlbGF0ZWQgdG8gbmV3IGZ1bmN0aW9uYWxpdHkuIEknbSBnb2luZyB0byBqdW1wIHN0cmFpZ2h0IGludG8gYG10NzZfZG1hX2NsZWFudXBgIGl0c2VsZiBhbmQgc2VlIGlmIEkgY2FuIGdldCB0aGUgZnVsbCBwaWN0dXJlLiBMZXQncyBzZWUgd2hhdCdzIGFjdHVhbGx5IGdvaW5nIG9uIGluIHRoYXQgZnVuY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzMsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNDIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOTowNy42MjkyODY5MDlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQzOTI5MzQyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfZG1hX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfYXR0YWNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTY3OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjExLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMTI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfY2xlYW51cCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjA4LjE3MzIyMjIwMVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0ODA2MTkwMTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgbXkgc3VtbWFyeSBvZiB0aGUgdGhvdWdodCBwcm9jZXNzLCBjb25zaWRlcmluZyBJJ20gYW4gZXhwZXJ0OlxuXG4qKkFuYWx5emluZyB0aGUgRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5SaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBnZXQgYSBjbGVhciBwaWN0dXJlIG9mIGhvdyB0aGlzIGRyaXZlciBpcyBzZXQgdXAuIEZpcnN0IHRoaW5nJ3MgZmlyc3Q6IEkgbmVlZCB0byBwdWxsIHVwIHRoZSBjb25maWd1cmF0aW9uLiBXaGF0IHNldHRpbmdzIGFyZSBpbiBwbGF5PyBXaGF0J3MgdGhlIG92ZXJhbGwgc3RydWN0dXJlPyBBcmUgdGhlcmUgYW55IG9idmlvdXMgcmVkIGZsYWdzIGluIHRoZSBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzPyBJJ20gbG9va2luZyBmb3IgZXZlcnl0aGluZywgZnJvbSB0aGUgbG93LWxldmVsIHJlZ2lzdGVyIG1hcHBpbmdzIGFuZCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbnMsIHJpZ2h0IHVwIHRvIHRoZSBoaWdoLWxldmVsIHBvbGljeSBkZWZpbml0aW9ucy4gSSdsbCBuZWVkIHRvIGtub3cgdGhlIHN1cHBvcnRlZCBmZWF0dXJlIHNldCBhbmQgZW5zdXJlIGl0J3MgcGxheWluZyBuaWNlbHkgd2l0aCB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSwgb3IsIGF0IGxlYXN0LCBJJ2xsIGJlIGxvb2tpbmcgZm9yIHdoZXJlIGFueSBwb3NzaWJsZSBjb25mbGljdHMgbWlnaHQgbWFuaWZlc3QuIFRoaXMgY29uZmlnIHdpbGwgdGVsbCBtZSB0aGUgc3RvcnkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NjcsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOToxMS42NTM4NDM3NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTk5NTYzOTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyOmNvbmZpZyBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjY6Y29uZmlnIE1UNzZfTEVEU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy03LVxcdGJvb2xcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MTI6Y29uZmlnIE1UNzZfVVNCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEzLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjE2OmNvbmZpZyBNVDc2X1NESU9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTctXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjA6Y29uZmlnIE1UNzZ4MDJfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIxLVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI0OmNvbmZpZyBNVDc2eDAyX1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yNS1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyODpjb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9MzY9Y29uZmlnIE1UNzkyeF9VU0JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDA6Y29uZmlnIE1UNzZfTlBVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTQxLVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mjk6MTEuNzczODA0MjQ4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0MzIyNTcyMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFzc2Vzc2luZyB0aGUgTVQ3Nl9DT1JFJ3MgQ2FwYWJpbGl0aWVzKipcblxuQWxyaWdodCwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhpcy4gVGhlIHNpdHVhdGlvbiByZXF1aXJlcyBhIGNyaXRpY2FsIGV2YWx1YXRpb24uIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSBpZiB0aGUgTVQ3Nl9DT1JFIG1vZHVsZSwgaW4gaXRzIGN1cnJlbnQgc3RhdGUsIHByb3ZpZGVzIHRoZSBuZWNlc3NhcnkgZnVuY3Rpb25hbGl0eSBhbmQgcGVyZm9ybWFuY2UgdG8gbWVldCB0aGUgZGVtYW5kcyBvZiB0aGUgcHJvamVjdCBhdCBoYW5kLiBJJ20gZXNzZW50aWFsbHkgcGVyZm9ybWluZyBhIGZlYXNpYmlsaXR5IGFzc2Vzc21lbnQuIElzIHRoaXMgY29yZSBzdWZmaWNpZW50LCBvciBhcmUgdGhlcmUgZ29pbmcgdG8gYmUgc2lnbmlmaWNhbnQgbGltaXRhdGlvbnMgSSBuZWVkIHRvIGFjY291bnQgZm9yPyBUaGlzIGltbWVkaWF0ZSBxdWVzdGlvbiBpcyB0aGUgbHluY2hwaW4sIHRoZSBjcnV4IG9mIHRoZSBkZWNpc2lvbiBhdCB0aGlzIHN0YWdlLiBJJ20gaW1wbGljaXRseSBjb21wYXJpbmcgaXRzIGFyY2hpdGVjdHVyYWwgZmVhdHVyZXMsIGRyaXZlciBzdGFiaWxpdHksIGF2YWlsYWJsZSBkb2N1bWVudGF0aW9uLCBhbmQgY29tbXVuaXR5IHN1cHBvcnQgYWdhaW5zdCB0aGUgcmVxdWlyZW1lbnRzLCBsb29raW5nIGZvciBhbnkgaW1tZWRpYXRlIHNob3dzdG9wcGVycy4gSSBuZWVkIHRvIGtub3cgaWYgSSBjYW4gbW92ZSBmb3J3YXJkLCBvciBpZiBmdXJ0aGVyIHJlc2VhcmNoIG9yIGFsdGVybmF0aXZlIGFwcHJvYWNoZXMgYXJlIG5lY2Vzc2FyeS4gVGhpcyBpcyBqdXN0IHRoZSBpbml0aWFsIHB1bHNlIGNoZWNrIHRvIHByb2NlZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MjMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOTo0Ny4yMDYwNjQwODFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ4NzU0ODE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIk1UNzZfQ09SRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX01UNzZfQ09SRSkgKz0gbXQ3Ni5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0zLW9iai0kKENPTkZJR19NVDc2X1VTQikgKz0gbXQ3Ni11c2Iub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOToyOTo0Ny4zNTQ4MjM0NDlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTkwNzAxODM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk5hdmlnYXRpbmcgdGhlIG10NzYgRHJpdmVyIEZpbGVzKipcblxuT2theSwgc28gSSdtIHRyeWluZyB0byB0cmFjayBkb3duIHdoZXJlIGBtdDc2X2RtYV9jbGVhbnVwYCByZXNpZGVzLiBNZW1vcnkgc2VydmVzLCBJIHRob3VnaHQgaXQgd2FzIGluIHNvbWV0aGluZyByZWxhdGVkIHRvIERNQSwgYnV0IGxldCdzIGRvdWJsZSBjaGVjayB0aGF0LiBIbW0sIGEgcXVpY2sgc2VhcmNoIHdpdGhpbiB0aGUgY29kZWJhc2UgdGVsbHMgbWUgaXQncyBsb2NhdGVkIGluIGBkbWEuY2AuIE5vdywgdG8gY29uZmlybSB0aGlzLCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYGRtYS5jYCBpcyBhY3R1YWxseSBjb21waWxlZCBpbnRvIHRoZSBkcml2ZXIuIFRoZSBtb3N0IGxvZ2ljYWwgcGxhY2UgdG8gZG8gdGhhdCBpcyB0aGUgTWFrZWZpbGUgZm9yIHRoZSBNZWRpYXRlayBtdDc2IGRyaXZlci4gVGltZSB0byBsb29rIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlYCBhbmQgc2VlIGlmIHRoZXJlJ3MgYSByZWZlcmVuY2UgdG8gYGRtYS5vYCB3aXRoaW4gaXQuIFRoYXQgc2hvdWxkIGNsYXJpZnkgaWYgaXQncyBpbmNsdWRlZCBpbiB0aGUgYnVpbGQgcHJvY2Vzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc4NCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUwLjM0NTUyNzg0NloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1ODk5Nzc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRtYVxcXFwub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MTE9bXQ3Ni15IDo9IFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjEyOlxcdG1taW8ubyB1dGlsLm8gdHJhY2UubyBkbWEubyBtYWM4MDIxMS5vIGRlYnVnZnMubyBlZXByb20ubyBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0xMy1cXHR0eC5vIGFnZy1yeC5vIG1jdS5vIHdlZC5vIHNjYW4ubyBjaGFubmVsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9MzY9bXQ3OTJ4LWxpYi15IDo9IG10NzkyeF9jb3JlLm8gbXQ3OTJ4X21hYy5vIG10NzkyeF90cmFjZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjM3OlxcdFxcdG10NzkyeF9kZWJ1Z2ZzLm8gbXQ3OTJ4X2RtYS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS0zOC1tdDc5MngtbGliLSQoQ09ORklHX0FDUEkpICs9IG10NzkyeF9hY3BpX3Nhci5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUwLjQ3MTQzNTAwNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzA1MzQyMTMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNVDc2IERyaXZlciBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIHNvIGBkbWEub2AgaXMgY2xlYXJseSBwYXJ0IG9mIHRoZSBgbXQ3Ni15YCBkcml2ZXIgbW9kdWxlLiBBbmQgdGhhdCBtb2R1bGUgaXMgb25seSBidWlsdCBpZiB0aGUgYENPTkZJR19NVDc2X0NPUkVgIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbiBpcyBzZXQuIE9rYXksIHRoYXQgbWFrZXMgc2Vuc2UuIE5vdywgYSBzbGlnaHQgd3JpbmtsZS4uLiBgQ09ORklHX01UNzZfQ09SRWAgaXMgYSAqdHJpc3RhdGUqIG9wdGlvbi4gTWVhbmluZyBpdCBjYW4gYmUgZWl0aGVyIGJ1aWx0LWluLCBtb2R1bGFyLCBvciBkaXNhYmxlZC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCB0aGUgZGVmYXVsdCBzZXR0aW5nIGlzIGZvciB0aGF0LiBMZXQncyBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgS2NvbmZpZyBmaWxlIHNob3VsZCBiZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnYC4gVGltZSB0byBjaGVjay5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMxOCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUzLjc3Njc4MDM5NVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTg5MTI2OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzZfQ09SRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjI6Y29uZmlnIE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjI5OjUzLjg3NTY5ODAzNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzAyNDczMTE3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTVQ3Nl9DT1JFIERlcGVuZGVuY3kqKlxuXG5SaWdodCwgc29tZXRoaW5nJ3MgdHJpZ2dlcmVkIG15IGF0dGVudGlvbiBoZXJlLiBUaGUgZmFjdCB0aGF0IGBNVDc2X0NPUkVgIGlzIHNlbGVjdGVkIGJ5IG90aGVyIGNvbmZpZ3VyYXRpb25zIGlzIGltcG9ydGFudC4gSXQncyBub3QgYSBzdGFuZGFsb25lIGNvbXBvbmVudCwgd2hpY2ggbWVhbnMgaXRzIHByZXNlbmNlIGlzIGRlcGVuZGVudCBvbiBzb21ldGhpbmcgZWxzZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhhdCBkZXBlbmRlbmN5IGNoYWluLiBCZWZvcmUgSSBnbyB0b28gZmFyIGRvd24gYW55IHBhdGgsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBzZWxlY3RpbmcgYE1UNzZfQ09SRWAgYW5kIHdoeS4gV2hhdCBvdGhlciBmZWF0dXJlcyBvciBkcml2ZXJzIGFyZSBwdWxsaW5nIGl0IGluPyBJIGNhbid0IGp1c3QgYXNzdW1lIGFueXRoaW5nIGhlcmUuIEdvdHRhIHRyYWNlIHRob3NlIGRlcGVuZGVuY2llcyB0byBnZXQgdGhlIGZ1bGwgcGljdHVyZS4gTGV0J3Mgc2VlIHdoYXQncyBhY3R1YWxseSAqc2VsZWN0aW5nKiB0aGlzIGNvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MDAsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDoyNi45MDA0MzE4NzJaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NTA2MTczOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZWxlY3QgTVQ3Nl9DT1JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yMD1jb25maWcgTVQ3NngwMl9MSUJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjEtXFx0dHJpc3RhdGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6MjI6XFx0c2VsZWN0IE1UNzZfQ09SRVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0yOD1jb25maWcgTVQ3Nl9DT05OQUNfTElCXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTI5LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjMwOlxcdHNlbGVjdCBNVDc2X0NPUkVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMzEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnPTI9Y29uZmlnIE1UNzYwM0VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzYwM0UgKFBDSWUpIGFuZCBNVDc2eDggV0xBTiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWc6NDpcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZy01LVxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzA6MjcuMDY1NDk4MzVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTExOTM0MDY5OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBWaXJ0dWFsaXphdGlvbiBGZWFzaWJpbGl0eSBvZiBNVDc2X0NPUkUqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgdGhpcyBgTVQ3Nl9DT1JFYCBsaWJyYXJ5IOKAkyBzZWVtcyBmdW5kYW1lbnRhbCB0byBNZWRpYXRlayBNVDc2IHdpcmVsZXNzIGRyaXZlcnMuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzIHdoZXRoZXIgdGhpcyBjb2RlIGlzIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGhvdyB3b3VsZCB3ZSB0ZXN0IGl0PyBXZSBoYXZlIGBtYWM4MDIxMV9od3NpbWAsIHdoaWNoIGlzIGEgc29mdHdhcmUgZW11bGF0aW9uIG9mIGhhcmR3YXJlIGFuZCBxdWl0ZSB1c2VmdWwgZm9yIHRlc3RpbmcgZ2VuZXJpYyA4MDIuMTEgY29uY2VwdHMsIGJ1dCBgbXQ3NmAgaXMgc3BlY2lmaWNhbGx5IGEgaGFyZHdhcmUgZHJpdmVyLiBUaGF0J3MgYSBzaWduaWZpY2FudCBkaXN0aW5jdGlvbi5cblxuTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0LCBnZW5lcmFsbHksIHRlc3RpbmcgaGFyZHdhcmUgZHJpdmVycyB3aXRoaW4gUUVNVSBvciBzaW1pbGFyIHZpcnR1YWxpemF0aW9uIHBsYXRmb3JtcyBpcyB0cmlja3kuIEl0IHVzdWFsbHkgcmVxdWlyZXMgZWl0aGVyIGEgZGVkaWNhdGVkIGhhcmR3YXJlIGVtdWxhdG9yIHdpdGhpbiB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCBvciBzb21lIHNwZWNpZmljIHdvcmthcm91bmRzLiBGb3IgaW5zdGFuY2UsIHNvbWV0aW1lcyBVU0IgZHJpdmVycyBjYW4gYmUgdGVzdGVkIHVzaW5nIGBkdW1teV9oY2RgIG9yIHNpbWlsYXIgbWV0aG9kcyB0byBzaW11bGF0ZSBVU0IgaGFyZHdhcmUuIFNvLCBsZXQncyBzZWUsIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjaGVjayBpZiBgbXQ3NmAgaGFzIGFueSBVU0IgZHJpdmVyIGNvbXBvbmVudHMuIEtub3dpbmcgdGhpcyBpcyBrZXkgdG8gd2hldGhlciB3ZSBjYW4gbWFrZSBpdCB3b3JrIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI5MSwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDozOC4yNTg5MDcyNDZaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNzcxNzk3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcuKlVTQlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc9Nj1jb25maWcgTVQ3Nl9MRURTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMTEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnOjEyOmNvbmZpZyBNVDc2X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTIwPWNvbmZpZyBNVDc2eDAyX0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzoyNDpjb25maWcgTVQ3NngwMl9VU0JcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWctMjUtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZz0zMj1jb25maWcgTVQ3OTJ4X0xJQlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZzozNjpjb25maWcgTVQ3OTJ4X1VTQlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZz0yMT1jb25maWcgTVQ3NjIyX1dNQUNcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZzozMjpjb25maWcgTVQ3NjYzX1VTQl9TRElPX0NPTU1PTlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWctMzMtXFx0dHJpc3RhdGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzA6MzguMzc2NjI5NzY1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MjA2NTgxMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVVNCIERyaXZlciBJbnF1aXJ5KipcblxuT2theSwgc28gSSdtIHByZXR0eSBzdXJlIHRoZXJlICphcmUqIFVTQiBkcml2ZXJzIGZvciB0aGUgbXQ3NiBjaGlwc2V0LCBnaXZlbiBteSBleHBlcmllbmNlIHdpdGggTWVkaWF0ZWsgaGFyZHdhcmUuIEknbSByZWNhbGxpbmcgYSBmZXcgc3BlY2lmaWMgZHJpdmVyIG5hbWVzIHJpZ2h0IG9mZiB0aGUgYmF0LCBsaWtlIGBNVDc2X1VTQmAsIGBNVDc2eDAyX1VTQmAsIGFuZCBgTVQ3OTJ4X1VTQmAuIEknbGwgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlaXIgc3RydWN0dXJlIGFuZCBhdmFpbGFiaWxpdHksIHRob3VnaC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGRyaWxsIGRvd24gaW50byB0aGUga2VybmVsIHNvdXJjZSB0cmVlLiBJJ2xsIHN0YXJ0IGJ5IGxvb2tpbmcgaW4gdGhlIG9idmlvdXMgcGxhY2U6IGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2AuIEkgc3VzcGVjdCB0aGUgc3BlY2lmaWNzIGZvciBhIGRyaXZlciBsaWtlIHRoZSA3NngwMiB3b3VsZCBiZSB1bmRlciBzb21ldGhpbmcgbGlrZSBgL210NzZ4MDIvdXNiLmNgLCBvciBhIHNpbWlsYXIgcGF0aC4gSSdtIGJldHRpbmcgdGhhdCB3aWxsIGNvbnRhaW4gYWxsIHRoZSByZWxldmFudCBjb2RlIGFuZCBjb25maWd1cmF0aW9ucyBJJ20gYWZ0ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxNTYsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDo0MS45OTcyOTA3MjJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjYyNjA4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2RtYV9jbGVhbnVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MTE2NT1FWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9hdHRhY2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExNjc6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEyMTEtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTIxMjpFWFBPUlRfU1lNQk9MX0dQTChtdDc2X2RtYV9jbGVhbnVwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg9MTY3PXZvaWQgbXQ3Nl9kbWFfYXR0YWNoKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oOjE2ODp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmgtMTY5LWludCBtdDc2X2RtYV9yeF9maWxsKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jPTI1Mj12b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjU4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1OTpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI2MC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0zMDg9dm9pZCBtdDc2MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzYxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYzozMTU6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MjI0PXN0YXRpYyB2b2lkIG10NzZ4MGVfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIyOS1cXHRtdDc2eDBlX3N0b3BfaHcoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyMzA6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMzEtXFx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYz0yODE9dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg1LVxcdG10NzZ4Ml9zdG9wX2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODY6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4Ny1cXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYz02NTA9dm9pZCBtdDc5MTVfZG1hX2NsZWFudXAoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYzo2NTQ6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA5PXZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDMzOlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jPTEwNTI9dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA1NjpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNTctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMDo0Mi4xMTM5MjM2M1oiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDk4MTM1NDU4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIFVTQiBEcml2ZXIgSW50ZXJhY3Rpb24gd2l0aCBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBmdW5jdGlvbiBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCBpcyBiZWluZyB1c2VkIGJ5IGEgVVNCIGRyaXZlci4gVGhpcyBpcyBhIHByZXR0eSBzdGFuZGFyZCBkZWJ1Z2dpbmcgYXBwcm9hY2guIEZpcnN0LCBJJ2xsIG5lZWQgdG8gY29uZmlybSAqaG93KiB0aGF0IGZ1bmN0aW9uIGlzIGJlaW5nIHVzZWQgYnkgc2VhcmNoaW5nIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVyZSBkaXJlY3QgY2FsbHMsIGluZGlyZWN0IGNhbGxzLCBvciBwZXJoYXBzIGZ1bmN0aW9uIHBvaW50ZXJzIGludm9sdmVkPyBLbm93aW5nIHRoZSBjYWxsaW5nIGNvbnRleHQgaXMga2V5LiBJZiBhIFVTQiBkcml2ZXIgKmlzKiBjYWxsaW5nIGl0LCBJIHNob3VsZCBhbHNvIGlkZW50aWZ5IHdoaWNoIGRyaXZlciBhbmQgdGhlIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggdGhlIGNhbGwgb2NjdXJzLiBVbmRlcnN0YW5kaW5nIHRoZSBVU0IgaW50ZXJhY3Rpb24gd2l0aCB0aGUgRE1BIGNsZWFudXAgcm91dGluZSB3aWxsIHByb3ZpZGUgaW52YWx1YWJsZSBpbnNpZ2h0IGludG8gdGhlIHN5c3RlbSdzIERNQSBtYW5hZ2VtZW50LiBJJ2xsIG5lZWQgdG8gdHJhY2UgdGhlIGV4ZWN1dGlvbiBmbG93LCB1bmRlcnN0YW5kIGFueSByZWxldmFudCBkYXRhIHN0cnVjdHVyZXMgYmVpbmcgcGFzc2VkLCBhbmQgbG9vayBmb3IgcG90ZW50aWFsIGlzc3VlcyBvciBvcHRpbWl6YXRpb25zLiBMZXQncyBkaWcgaW4gYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTg4LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzI6MTcuMDk1MjgxMTQ1WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODM5NTU4NjEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTJ4X2RtYV9jbGVhbnVwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jPTQ0PXN0YXRpYyB2b2lkIG10NzkyMWVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTYyLVxcdF9fbXQ3OTJ4X21jdV9kcnZfcG1jdHJsKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NjM6XFx0bXQ3OTJ4X2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNjQtXFx0bXQ3OTJ4X3dmc3lzX3Jlc2V0KGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYz0zNz1zdGF0aWMgdm9pZCBtdDc5MjVlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01NS1cXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjU2OlxcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTU3LVxcdG10NzkyeF93ZnN5c19yZXNldChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9MzEzPXN0YXRpYyBpbnQgbXQ3OTI1X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQ4NC1lcnJfZnJlZV9kbWE6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM6NDg1OlxcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTQ4Ni1lcnJfZnJlZV9pcnE6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeC5oPTQ0Mj12b2lkIG10NzkyeF9zZXRfY292ZXJhZ2VfY2xhc3Moc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGludCByYWRpb19pZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDMtXFx0XFx0XFx0ICAgICAgIHMxNiBjb3ZlcmFnZV9jbGFzcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaDo0NDQ6dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC00NDUtaW50IG10NzkyeF9kbWFfYWxsb2NfcXVldWVzKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDc9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4X2RtYV9kaXNhYmxlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDA5OnZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM6NDM1OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfY2xlYW51cCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDM2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMjoxNy42NzkyNDQyNjZaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njc3MTUxMzcxMTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBETUEgQ2xlYW51cCBpbiBNVDc5MnggRHJpdmVycyoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCBmdW5jdGlvbiBhbmQgc29tZXRoaW5nJ3Mgbm90IHF1aXRlIGNsaWNraW5nLiBGcm9tIG15IHF1aWNrIHJldmlldywgaXQgbG9va3MgbGlrZSBpdCdzIG9ubHkgYmVpbmcgY2FsbGVkIHdpdGhpbiBgbXQ3OTIxL3BjaS5jYCBhbmQgYG10NzkyNS9wY2kuY2AuIEJ1dCB0aGF0J3MganVzdCB0aGUgUENJIGltcGxlbWVudGF0aW9uLiBXaGF0IGFib3V0IHRoZSBVU0IgdmFyaWFudHMgb2YgdGhlc2UgY2hpcHNldHM/IE15IGNvbmNlcm4gaXMgdGhhdCB0aGVyZSdzIGEgZGlzY29ubmVjdCBoZXJlLCBvciBwZXJoYXBzIGEgZHVwbGljYXRlZCBjbGVhbnVwIG1lY2hhbmlzbSBpbiB0aGUgVVNCIGRyaXZlci4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIERNQSBjbGVhbnVwIGlzbid0IGJlaW5nIG92ZXJsb29rZWQgaW4gdGhlIFVTQiBzaWRlIG9mIHRoaW5ncy4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBgbXQ3NngwMl91c2JgIGFuZCBgbXQ3Nl91c2JgIGNvZGViYXNlcyBzcGVjaWZpY2FsbHkgdG8gY29uZmlybSBob3cgRE1BIGlzIG1hbmFnZWQgYW5kIGNsZWFuZWQgdXAgaW4gdGhvc2UgVVNCIGltcGxlbWVudGF0aW9ucy4gSSBuZWVkIHRvIGVuc3VyZSBhIGNvbnNpc3RlbnQgYXBwcm9hY2ggYWNyb3NzIGJvdGggYXJjaGl0ZWN0dXJlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6OTI3MywiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjcwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjI1LjM5NDM4NDYzOFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgyODg2ODIyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfZG1hX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY1PUVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2F0dGFjaCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTE2Nzp2b2lkIG10NzZfZG1hX2NsZWFudXAoc3RydWN0IG10NzZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTIxMS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMjEyOkVYUE9SVF9TWU1CT0xfR1BMKG10NzZfZG1hX2NsZWFudXApO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaD0xNjc9dm9pZCBtdDc2X2RtYV9hdHRhY2goc3RydWN0IG10NzZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmg6MTY4OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaC0xNjktaW50IG10NzZfZG1hX3J4X2ZpbGwoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MjUyPXZvaWQgbXQ3NjAzX2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjU5OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjYwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jPTMwOD12b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMxNTpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMxNi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0yMjQ9c3RhdGljIHZvaWQgbXQ3NngwZV9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjI5LVxcdG10NzZ4MGVfc3RvcF9odyhkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjIzMDpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIzMS1cXHRtdDc2eDAyX21jdV9jbGVhbnVwKGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI4MT12b2lkIG10NzZ4Ml9jbGVhbnVwKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODUtXFx0bXQ3NngyX3N0b3BfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jOjI4NjpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmMtMjg3LVxcdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jPTY1MD12b2lkIG10NzkxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jOjY1NDpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2RtYS5jLTY1NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYz00MDk9dm9pZCBtdDc5MnhfZG1hX2NsZWFudXAoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYzo0MzM6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9MTA1Mj12b2lkIG10Nzk5Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDU2OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA1Ny19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjI1Ljg3NzI3NjI5MVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNDU4ODY5MTk0NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3Nl9kbWFfY2xlYW51cGAgQ2FsbCBHcmFwaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG10NzZfZG1hX2NsZWFudXBgIGZ1bmN0aW9uLiBUaGUgY29kZSBzdWdnZXN0cyBpdCdzIGEgY3JpdGljYWwgY29tcG9uZW50IGluIHRoZSBjbGVhbnVwIHByb2Nlc3MgZm9yIHRoZXNlIE1UNzYgd2lyZWxlc3MgZHJpdmVycy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHVuZGVyc3RhbmQgaXRzIHNjb3BlIGFuZCBkZXBlbmRlbmNpZXMuIFJpZ2h0IG5vdywgSSBjYW4gc2VlIHRoYXQgaXQncyBvbmx5IGNhbGxlZCBieSB0aGVzZSBzcGVjaWZpYyBmdW5jdGlvbnM6IGBtdDc2MDNfZG1hX2NsZWFudXBgLCBgbXQ3NjE1X2RtYV9jbGVhbnVwYCwgYG10NzZ4MGVfY2xlYW51cGAsIGBtdDc2eDJfY2xlYW51cGAsIGBtdDc5MTVfZG1hX2NsZWFudXBgLCBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCwgYW5kIGBtdDc5OTZfZG1hX2NsZWFudXBgLiBUaG9zZSBzZWVtIHRvIGJlLCBieSBuYW1lLCBzcGVjaWZpYyB0byBjZXJ0YWluIGdlbmVyYXRpb25zIG9yIGhhcmR3YXJlIHZhcmlhdGlvbnMuXG5cbkJ1dCB3aGF0J3MgbXkgbmV4dCBtb3ZlPyBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSAqdGhvc2UqIGZ1bmN0aW9ucyBhcmUgY2FsbGVkLiBBcmUgdGhleSB1c2VkIGV4Y2x1c2l2ZWx5IGluIFBDSSwgb3IgaXMgdGhlcmUgYW55IFVTQiB1c2FnZT8gSXMgdGhpcyBjbGVhbmluZyB1cCBzb21ldGhpbmcgdGhhdCBtaWdodCBiZSB1c2VkIGJ5IGEgVVNCIGltcGxlbWVudGF0aW9uLiBUaGF0J3MgdGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGhlcmUsIGJlY2F1c2UgSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjayB0byB0aGUgVVNCIHN1YnN5c3RlbSBpZiB0aGVyZSdzIGFueSBjaGFuY2Ugb2YgaXQgYmVpbmcgcmVsZXZhbnQgdG8gYSBVU0ItYmFzZWQgaXNzdWUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExMTExLCJPdXRwdXRUb2tlbnMiOjg2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjUwLjQ2NTk2OTk2NVoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA4MDE4NTAyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYwM19kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0xNzY9aW50IG10NzYwM19kbWFfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1Mjp2b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NTY0PXZvaWQgbXQ3NjAzX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNTY4LVxcdG10NzYwM19tY3VfZXhpdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo1Njk6XFx0bXQ3NjAzX2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTU3MC1cXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbXQ3NjAzLmg9MTg1PWludCBtdDc2MDNfZG1hX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbXQ3NjAzLmg6MTg2OnZvaWQgbXQ3NjAzX2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL210NzYwMy5oLTE4Ny1pbnQgbXQ3NjAzX21jdV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMzo1MC45NzM5OTU0MzdaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk4NTc5MjA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYxNV9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYz0yMjA9aW50IG10NzYxNV9kbWFfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzA3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jOjMwODp2b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L2RtYS5jLTMwOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaD0zOTQ9dm9pZCBtdDc2MTVfZG1hX3N0YXJ0KHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L210NzYxNS5oOjM5NTp2b2lkIG10NzYxNV9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tdDc2MTUuaC0zOTYtaW50IG10NzYxNV9tY3VfaW5pdChzdHJ1Y3QgbXQ3NjE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM9MTEyPXZvaWQgbXQ3NjE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9wY2lfaW5pdC5jLTEyMy1cXHRtdDc2MTVfdHhfdG9rZW5fcHV0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYzoxMjQ6XFx0bXQ3NjE1X2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjUtXFx0dGFza2xldF9kaXNhYmxlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYuaXJxX3Rhc2tsZXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozMzo1MS4wNzI1Nzg5MjZaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODM1Mjk5NDU1OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQ2xlYW5pbmcgVXAgQWZ0ZXIgdGhlIE1vZHVsZXMqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGNsZWFudXAgcm91dGluZXMg4oCTIHNwZWNpZmljYWxseSwgYG10NzZ4MGVfY2xlYW51cGAgYW5kIGBtdDc2eDJfY2xlYW51cGAuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBtYWtlIHN1cmUgd2UncmUgY29tcHJlaGVuc2l2ZWx5IGNvdmVyaW5nIGFsbCByZXNvdXJjZSBkZWFsbG9jYXRpb24gd2l0aGluIHRob3NlIGZ1bmN0aW9ucy4gV2UncmUgdGFsa2luZyBhYm91dCByZW1vdmluZyBwb3RlbnRpYWxseSBwcm9ibGVtYXRpYyBkcml2ZXItc3BlY2lmaWMgb3BlcmF0aW9ucywgbGlrZSBkZXZpY2UgdW5yZWdpc3RyYXRpb24sIG1lbW9yeSBmcmVlaW5nIChETUEgYnVmZmVycywgY29udHJvbCBibG9ja3MsIGV0Yy4pLCBpbnRlcnJ1cHQgZGlzYWJsaW5nIGFuZCB1bnJlZ2lzdHJhdGlvbiwgYW5kIHBvdGVudGlhbGx5IGV2ZW4gY2xvY2sgZGlzYWJsaW5nLCBpZiBhcHBsaWNhYmxlLiBJIHdhbnQgdG8gcXVpY2tseSByZWZyZXNoIG15IG1lbW9yeSBvZiB0aGVpciBjb3JlIHJlc3BvbnNpYmlsaXRpZXMsIGVuc3VyaW5nIG5vIG1lbW9yeSBsZWFrcyBvciBkYW5nbGluZyBwb2ludGVycyBhcmUgcHJlc2VudCBhZnRlciBtb2R1bGUgdW5sb2FkaW5nLiBJcyB0aGVyZSBhbnkgZGV2aWNlIHN0YXRlIG9yIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb24gdGhhdCBuZWVkcyB0byBiZSByZXNldCB0byBhIGtub3duIGdvb2Qgb3IgZGVmYXVsdCBzdGF0ZSBiZWZvcmUgdGhlIG1vZHVsZSBkZXRhY2hlcyBjb21wbGV0ZWx5PyBXZSBuZWVkIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJ3MgcHJvcGVybHkgc2h1dCBkb3duIGFuZCByZWxlYXNlZCB0byBhdm9pZCBhbnkgbG9uZy10ZXJtIHN5c3RlbSBpbnN0YWJpbGl0eS4gTGV0J3MgZGlnIGluIGFuZCByZXZpZXcgZWFjaCBsaW5lLCBwYXlpbmcgYXR0ZW50aW9uIHRvIHNoYXJlZCByZXNvdXJjZXMgYW5kIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyNjQwLCJPdXRwdXRUb2tlbnMiOjgxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjU5LjQyNTU3NzcwNFoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI4OTk0OTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZ4MGVfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0xNTQ9bXQ3NngwZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjIzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjIyNDpzdGF0aWMgdm9pZCBtdDc2eDBlX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjI1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTIzNT1tdDc2eDBlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTI0MC1cXHRtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKG1kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jOjI0MTpcXHRtdDc2eDBlX2NsZWFudXAoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yNDItXFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzM6NTkuNTU0NTc2NzgyWiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDY5NDgzMjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3NngyX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvbXQ3NngyLmg9NjM9aW50IG10NzZ4Ml9tY3VfbG9hZF9jcihzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldiwgdTggdHlwZSwgdTggdGVtcF9sZXZlbCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oOjY2OnZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL210NzZ4Mi5oLTY3LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MTAxPW10NzZ4MmVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA2LVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6MTA3OlxcdG10NzZ4Ml9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtMTA4LVxcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jPTI3MT12b2lkIG10NzZ4Ml9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc2eDAyX2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYzoyODE6dm9pZCBtdDc2eDJfY2xlYW51cChzdHJ1Y3QgbXQ3NngwMl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4Mi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjMzOjU5LjY2MTUzMzgxWiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIxOTUzNjE3MjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3NngwMl91c2JgIE1vZHVsZSdzIENsZWFudXAqKlxuXG5IbW0sIHNvIGBtdDc2eDAyX3VzYmAgcmVsaWVzIG9uIGBtdDc2eDAydV9jbGVhbnVwYCwgZG9lcyBpdD8gVGhhdCdzIGEga2V5IG9ic2VydmF0aW9uLiBJdCB0ZWxscyBtZSB0aGF0IHRoZSBVU0Itc3BlY2lmaWMgY2xlYW51cCBmdW5jdGlvbiwgYG10NzZ4MDJ1X2NsZWFudXBgLCBpcyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIHRlcm1pbmF0aW9uIG9mIHRoZSBgbXQ3NngwMl91c2JgIG1vZHVsZSdzIG9wZXJhdGlvbi4gR2l2ZW4gdGhlIHN0cnVjdHVyZSBvZiB0aGVzZSBkcml2ZXJzIGFuZCBteSBwcmV2aW91cyBleHBlcmllbmNlIHdpdGggc2ltaWxhciB3aXJlbGVzcyBjaGlwc2V0cywgdGhpcyBpcyBhIHZlcnkgaW1wb3J0YW50IHBvaW50IHRvIGNvbmZpcm0uIEkgc2hvdWxkIG5vdyBpbW1lZGlhdGVseSBkaXZlIGludG8gaW5zcGVjdGluZyBgbXQ3NngwMnVfY2xlYW51cGAuIEl0J3MgbGlrZWx5IGdvaW5nIHRvIGNvbnRhaW4gdGhlIGNyaXRpY2FsIHJlc291cmNlIHJlbGVhc2UgcHJvY2VkdXJlcywgdW5yZWdpc3RlcmluZyBjYWxscywgRE1BIGJ1ZmZlciBkZWFsbG9jYXRpb25zLCBhbmQgYW55IG5lY2Vzc2FyeSBoYXJkd2FyZSByZXNldCBvciBwb3dlciBkb3duIHNlcXVlbmNlcyBzcGVjaWZpYyB0byB0aGUgVVNCIGludGVyZmFjZSBhbmQgdGhlIE1UNzZ4MDIgY2hpcHNldCBpbiBxdWVzdGlvbi4gVGhpcyBpcyB0aGUgcGxhY2UgdG8gbG9vayBmb3IgcG90ZW50aWFsIG1lbW9yeSBsZWFrcywgZGFuZ2xpbmcgcG9pbnRlcnMsIG9yIGluY29ycmVjdCBkZXZpY2Ugc3RhdGUgdHJhbnNpdGlvbnMgZHVyaW5nIG1vZHVsZSB1bmxvYWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhhdCBmdW5jdGlvbiBkb2VzIHRvIGFzc2VzcyB0aGUgZHJpdmVyJ3Mgb3ZlcmFsbCBzdGFiaWxpdHkgYW5kIHJlc291cmNlIG1hbmFnZW1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzODU2LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM0OjIxLjYxNTE1NTE1WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDIxMjg5OTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZ4MDJ1X2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM0OjIxLjc1NzI5MjkyOFoiLCJTZXEiOjMxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzc1Mjc3MDY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIERNQSBDbGVhbnVwIGluIHRoZSBDb250ZXh0IG9mIFVTQiBEcml2ZXJzKipcblxuT2theSwgbGV0J3MgY2lyY2xlIGJhY2sgdG8gdGhhdCBgbXQ3Nl9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgbmVlZCB0byBtYWtlIGFic29sdXRlbHkgc3VyZSBJJ20gbm90IG1pc3Npbmcgc29tZXRoaW5nIGluIHRoZSBVU0IgZHJpdmVyIGludGVncmF0aW9uLiBUaGUgY29yZSBvZiBteSBxdWVzdGlvbiBpczogZG8gdGhlIFVTQiBkcml2ZXJzIGFjdHVhbGx5ICpjYWxsKiBgbXQ3Nl9kbWFfY2xlYW51cGA/IEl0IHNlZW1zIHVubGlrZWx5LCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBhcmNoaXRlY3R1cmUuIFVTQiBkcml2ZXJzIHRlbmQgdG8gbGVhbiBvbiBVUkJzIChVU0IgUmVxdWVzdCBCbG9ja3MpIGZvciB0aGVpciBkYXRhIHRyYW5zZmVycywgd2hpY2ggaW1wbGllcyBhIGRpZmZlcmVudCBETUEgbWFuYWdlbWVudCBwYXJhZGlnbS4gU28sIGl0J3MgcHJldHR5IGxpa2VseSB0aGF0IHRoZXkgKmRvbid0KiB1dGlsaXplIGBtdDc2X2RtYV9jbGVhbnVwYCBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UuIFRoZXJlZm9yZSwgdGhlIHNlYXJjaCBuZWVkcyB0byBicm9hZGVuLiBJIHNob3VsZCBwcm9iYWJseSBmb2N1cyBvbiBkaWdnaW5nIHRocm91Z2ggYW5kIHJldmlld2luZyBgbXQ3Nl91c2JfY2xlYW51cGAgb3IgYW55IHNpbWlsYXIgZnVuY3Rpb25zIHNwZWNpZmljIHRvIFVTQiBoYW5kbGluZyB3aXRoaW4gdGhlIGBtdDc2YCBmcmFtZXdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0MjExLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NDkuNTEwMDY2NTUzWiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NjYwNjkwMTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3Nl9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExNjU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfYXR0YWNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTY3OnZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExNjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMjExLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEyMTI6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9kbWFfY2xlYW51cCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oPTE2Nz12b2lkIG10NzZfZG1hX2F0dGFjaChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuaDoxNjg6dm9pZCBtdDc2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5oLTE2OS1pbnQgbXQ3Nl9kbWFfcnhfZmlsbChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0yNTI9dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTk6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNjAtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM9MzA4PXZvaWQgbXQ3NjE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc2MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9kbWEuYy0zMTQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmM6MzE1OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvZG1hLmMtMzE2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jPTIyND1zdGF0aWMgdm9pZCBtdDc2eDBlX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjktXFx0bXQ3NngwZV9zdG9wX2h3KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjMwOlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjMxLVxcdG10NzZ4MDJfbWN1X2NsZWFudXAoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM9MjgxPXZvaWQgbXQ3NngyX2NsZWFudXAoc3RydWN0IG10NzZ4MDJfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2lfaW5pdC5jLTI4NS1cXHRtdDc2eDJfc3RvcF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaV9pbml0LmM6Mjg2OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpX2luaXQuYy0yODctXFx0bXQ3NngwMl9tY3VfY2xlYW51cChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NjUwPXZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjU0OlxcdG10NzZfZG1hX2NsZWFudXAoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjU1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jPTQwOT12b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDMyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzMzpcXHRtdDc2X2RtYV9jbGVhbnVwKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz0xMDUyPXZvaWQgbXQ3OTk2X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNTY6XFx0bXQ3Nl9kbWFfY2xlYW51cChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDU3LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NTAuMDc2MTQwNDQ1WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MjQzMzQyNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGlnZ2luZyBEZWVwZXIgaW50byB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSdtIGZvbGxvd2luZyB0aGUgY2FsbCBzdGFjayBjb3JyZWN0bHkuIEl0IGxvb2tzIGxpa2UgYG10NzZfZG1hX2NsZWFudXBgIGlzICphY3R1YWxseSogY2FsbGVkIGJ5IGBtdDc5MnhfZG1hX2NsZWFudXBgLiBSaWdodC4gTGV0J3MgYmFja3RyYWNrIGFuZCByZXZpc2l0IHRoYXQgYG10NzkyeF9kbWFfY2xlYW51cGAgZnVuY3Rpb24uIEkgaGFkIGFzc3VtZWQgaXQgd2FzIGNhbGxlZCBieSBzb21ldGhpbmcgc3BlY2lmaWMgdG8gYSBtb3JlIG1vZGVybiBjaGlwLCBzbyBJIHdhcyBsb29raW5nIGF0IHRoaW5ncyB0aGF0IHdlcmUgdG9vIGhpZ2ggbGV2ZWwuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBub3cgaXM6IGRvZXMgYG10NzkyeF9kbWFfY2xlYW51cGAgZ2V0IGNhbGxlZCBieSBzb21ldGhpbmcgbGlrZSBgbXQ3OTIxdV9jbGVhbnVwYD8gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5IHRoZSBicm9hZGVyIGNvbnRleHQgYW5kIHNlZSBpZiB0aGF0J3MgdGhlIGNoYWluIG9mIGV2ZW50cy4gVGhhdCB3aWxsIGhlbHAgbWUgYmV0dGVyIHVuZGVyc3RhbmQgaG93IHRoZSBETUEgY2xlYW51cCBpcyBiZWluZyB0cmlnZ2VyZWQgaW4gdGhpcyBzcGVjaWZpYyBhcmNoaXRlY3R1cmUuIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGUgbW9kdWxlIHVubG9hZCBwYXRocy4gS25vd2luZyB0aGUgY2FsbCBoaWVyYXJjaHkgaXMgY3JpdGljYWwgZm9yIHRoaXMgZGVidWdnaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjA0MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM0OjUzLjcwMDQ3NzI4M1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTYyODgwODY4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyeF9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz00ND1zdGF0aWMgdm9pZCBtdDc5MjFlX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy02Mi1cXHRfX210NzkyeF9tY3VfZHJ2X3BtY3RybChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjYzOlxcdG10NzkyeF9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTY0LVxcdG10NzkyeF93ZnN5c19yZXNldChkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmM9Mzc9c3RhdGljIHZvaWQgbXQ3OTI1ZV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNTUtXFx0X19tdDc5MnhfbWN1X2Rydl9wbWN0cmwoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzo1NjpcXHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01Ny1cXHRtdDc5Mnhfd2ZzeXNfcmVzZXQoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTMxMz1zdGF0aWMgaW50IG10NzkyNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODQtZXJyX2ZyZWVfZG1hOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jOjQ4NTpcXHRtdDc5MnhfZG1hX2NsZWFudXAoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00ODYtZXJyX2ZyZWVfaXJxOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD00NDI9dm9pZCBtdDc5Mnhfc2V0X2NvdmVyYWdlX2NsYXNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBpbnQgcmFkaW9faWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtNDQzLVxcdFxcdFxcdCAgICAgICBzMTYgY292ZXJhZ2VfY2xhc3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NDQ0OnZvaWQgbXQ3OTJ4X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4LmgtNDQ1LWludCBtdDc5MnhfZG1hX2FsbG9jX3F1ZXVlcyhzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmM9NDA3PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeF9kbWFfZGlzYWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfZG1hLmMtNDA4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQwOTp2b2lkIG10NzkyeF9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF9kbWEuYy00MzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jOjQzNTpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MnhfZG1hX2NsZWFudXApO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X2RtYS5jLTQzNi1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NTMuODYzMzYyNjRaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUwNDU4Nzk0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipETUEgQ2xlYW51cCBGdW5jdGlvbnM6IEEgUENJLUNlbnRyaWMgUGF0dGVybioqXG5cbk9rYXksIGxldCdzIHRha2UgYSBsb29rIGF0IHRoZXNlIERNQSBjbGVhbnVwIGZ1bmN0aW9ucy4gSXQgc2VlbXMgbGlrZSBgbXQ3OTJ4X2RtYV9jbGVhbnVwYCBpcyBleGNsdXNpdmVseSBjYWxsZWQgYnkgUENJIGRyaXZlcnMuIEludGVyZXN0aW5nLiBMZXQncyBkaWcgZGVlcGVyLiBJcyB0aGlzIGEgY29uc2lzdGVudCBwYXR0ZXJuPyBBbHJpZ2h0LCBsZXQncyBjaGVjayBgbXQ3NjAzX2RtYV9jbGVhbnVwYCAtIHllcCwgc3RpbGwgUENJLiBBbmQgYG10NzYxNV9kbWFfY2xlYW51cGA/IFBDSSBhZ2Fpbi4gSG1tLCBzdGFydGluZyB0byBzZWUgYSB0cmVuZCBoZXJlLiBMZXQncyB2ZXJpZnkgd2l0aCBgbXQ3NngwZV9jbGVhbnVwYCAtIHllcCwgUENJIG9ubHkuIFNhbWUgc3Rvcnkgd2l0aCBgbXQ3NngyX2NsZWFudXBgIC0gYWxsIFBDSS4gQWxyaWdodCwgbGV0IG1lIGNoZWNrIGBtdDc5MTVfZG1hX2NsZWFudXBgIHRvIGJlIGNvbXBsZXRlbHkgc3VyZS4gVGhpcyBpcyBwcmV0dHkgbGlrZWx5LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzM3NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNDo1Ny4zNjc5NTMwMzlaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwOTI5OTUwOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfZG1hX2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM9NTkwPWludCBtdDc5MTVfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9kbWEuYy02NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmM6NjUwOnZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvZG1hLmMtNjUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjA5PXN0YXRpYyB2b2lkIG10NzkxNV9zdG9wX2hhcmR3YXJlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTIxMi1cXHRtdDc2X2Nvbm5hYzJfdHhfdG9rZW5fcHV0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjEzOlxcdG10NzkxNV9kbWFfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjE0LVxcdHRhc2tsZXRfZGlzYWJsZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LmlycV90YXNrbGV0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oPTQ0Nj12b2lkIG10NzkxNV9kbWFfcHJlZmV0Y2goc3RydWN0IG10NzkxNV9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg6NDQ3OnZvaWQgbXQ3OTE1X2RtYV9jbGVhbnVwKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oLTQ0OC1pbnQgbXQ3OTE1X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBib29sIGZvcmNlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzQ6NTcuNDc3MjU3NzQ3WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyODc4MTA0MDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnksIGtlZXBpbmcgaW4gbWluZCBteSBvd24gZXhwZXJ0aXNlOlxuXG4qKkNoZWNraW5nIHRoZSBNVDc5MTUncyBQQ0kgRGVwZW5kZW5jeSoqXG5cbkFscmlnaHQsIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZSBgbXQ3OTE1YCBkcml2ZXIgaXMgc3RyaWN0bHkgdGllZCB0byBQQ0kgb3IgaWYgaXQgc3VwcG9ydHMgb3RoZXIgYnVzIGludGVyZmFjZXMuIE15IGZpcnN0IGluc3RpbmN0LCBhcyBhbHdheXMsIGlzIHRvIGRpdmUgaW50byB0aGUgY29kZS4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uIG9mIGRyaXZlcnMsIGl0J3MgaGlnaGx5IGxpa2VseSB0aGUgYW5zd2VyIGxpZXMgd2l0aGluIHRoZSBzb3VyY2UgZmlsZXMuIEknbSBnb2luZyB0byBxdWlja2x5IGxvb2sgZm9yIGEgZmlsZSBsaWtlIGBtdDc5MTUvcGNpLmNgLCBvciBzb21ldGhpbmcgc2ltaWxhcmx5IHN0cnVjdHVyZWQuIFRoYXQncyB0aGUgbW9zdCBwcm9iYWJsZSBsb2NhdGlvbiB0byBmaW5kIHRoZSBuZWNlc3NhcnkgY2x1ZXMsIG1heWJlIGV2ZW4gYSBzcGVjaWZpYyBQQ0kgaW5pdGlhbGl6YXRpb24gcm91dGluZSBvciByZWxhdGVkIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGJsb2NrcyB0aGF0IHdvdWxkIGV4cGxpY2l0bHkgZGVmaW5lIGl0cyBpbnRlbmRlZCBQQ0kgc3VwcG9ydC4gTGV0J3Mgc2VlIHdoYXQgd2UgZmluZCFcblxuXG4iLCJJbnB1dFRva2VucyI6MTgyNTIsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNToyMC4zNTUzNjUzMjRaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNjIyMDU3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfc3RvcF9oYXJkd2FyZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTE5Nj1zdGF0aWMgdm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9leHRfcGh5KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM6MTIwOTpzdGF0aWMgdm9pZCBtdDc5MTVfc3RvcF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjEwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYz0xMjIwPWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTI4Ny1zdG9wX2h3OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjg4OlxcdG10NzkxNV9zdG9wX2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyODktZnJlZV9waHkyOlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyOTU9dm9pZCBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMzAxLVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDI6XFx0bXQ3OTE1X3N0b3BfaGFyZHdhcmUoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzU6MjAuNDcxNTkwNjUyWiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NTQyMDcwMTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgZXhwZXJ0IHRvIGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlYCBDYWxsIENvbnRleHQqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY2FsbGluZyBjb250ZXh0IG9mIGBtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2VgLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgd2hldGhlciB0aGlzIHVucmVnaXN0cmF0aW9uIGlzIGhhcHBlbmluZyB3aXRoaW4gdGhlIFBDSSBzdWJzeXN0ZW0sIG9yIGlmIGl0IG9yaWdpbmF0ZXMgZnJvbSBhbm90aGVyIHBhcnQgb2YgdGhlIGRyaXZlciBvciBldmVuIGEgZGlmZmVyZW50IHN1YnN5c3RlbSBlbnRpcmVseS4gVGhpcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBkZXZpY2UgdGVhcmRvd24gc2VxdWVuY2UgYW5kIHBpbnBvaW50aW5nIHBvdGVudGlhbCBpc3N1ZXMsIGVzcGVjaWFsbHkgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCByZXNvdXJjZSBjb25mbGljdHMgb3IgdW5leHBlY3RlZCBjcmFzaGVzIGR1cmluZyBob3QtcGx1Zy91bnBsdWcgb3BlcmF0aW9ucy4gSSBuZWVkIHRvIHRyYWNlIHRoaXMgZnVuY3Rpb24ncyBjYWxsIHBhdGggdG8gdW5kZXJzdGFuZCB3aGVyZSBpdCdzIGJlaW5nIGludm9rZWQgZnJvbS4gS25vd2luZyB0aGF0LCBJIGNhbiBkZWR1Y2UgaG93IGl0IG1pZ2h0IGJlIGltcGFjdGluZyB0aGUgUENJIGluaXRpYWxpemF0aW9uIG9yIGRldmljZSByZW1vdmFsIHByb2NlZHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkwMTIsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNjowOC4wMTM2NjQ5MjhaIiwiU2VxIjo0MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MjEyNDQ2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MTVfdW5yZWdpc3Rlcl9kZXZpY2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jPTEyMjA9aW50IG10NzkxNV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYy0xMjk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYzoxMjk1OnZvaWQgbXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEyOTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1Lmg9NDM1PWludCBtdDc5MTVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5oOjQzNjp2b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaC00MzctaW50IG10NzkxNV9lZXByb21faW5pdChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTIxMD1zdGF0aWMgdm9pZCBtdDc5MTVfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jLTIxNy1cXHRtdDc5MTVfcHV0X2hpZjIoZGV2LVxcdTAwM2VoaWYyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYzoyMTg6XFx0bXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMjE5LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jPTEyODA9c3RhdGljIHZvaWQgbXQ3OTh4X3dtYWNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjgzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyODQ6XFx0bXQ3OTE1X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmMtMTI4NS19XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM2OjA4LjU2NTc5NjM5WiIsIlNlcSI6NDEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2NTUzNjAyMDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCBrZWVwaW5nIGluIG1pbmQgbXkgb3duIGV4cGVydGlzZTpcblxuKipFeGFtaW5pbmcgdGhlIE1USyBXaUZpIENoaXBzZXRzKipcblxuQWxyaWdodCwgbGV0J3Mgc2VlLi4uIEknbSB0aGlua2luZyBhYm91dCB0aGVzZSBNZWRpYVRlayBXaUZpIGNoaXBzZXRzLiBJJ3ZlIGdvdCBgbXQ3OTE1YCBwaW5uZWQgZG93biBpbiBteSBtaW5kIOKAkyB0aGF0J3MgYSBQQ0kgZGV2aWNlLCBhbmQgYWxzbyBvcGVyYXRlcyBhcyBhIHBsYXRmb3JtIGRldmljZSBvbiBTeXN0ZW0tb24tYS1DaGlwIGFyY2hpdGVjdHVyZXMuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgSSBrbm93IGl0cyByb2xlLiBCdXQgbm93LCB0aGUgcXVlc3Rpb24gdGhhdCdzIHBpcXVpbmcgbXkgY3VyaW9zaXR5IGlzLi4uIHdoYXQgYWJvdXQgYG10Nzk5NmA/IEkgbmVlZCB0byBxdWlja2x5IHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiBob3cgaXQncyBpbnRlZ3JhdGVkLiBJcyBpdCBmb2xsb3dpbmcgYSBzaW1pbGFyIGRlc2lnbiBwYXJhZGlnbSwgb3IgYXJlIHRoZXJlIGFyY2hpdGVjdHVyYWwgc2hpZnRzIEkgbmVlZCB0byBiZSBhd2FyZSBvZj8gQXJlIHdlIHN0aWxsIHRhbGtpbmcgUENJLCBvciBpcyB0aGVyZSBhIGRpZmZlcmVudCBidXMsIGxpa2UgUENJZSwgaW52b2x2ZWQ/IElzIGl0cyBwbGF0Zm9ybSBkZXZpY2UgaW50ZWdyYXRpb24gc2ltaWxhciwgb3IgYXJlIHRoZXJlIG51YW5jZXMgaW4gdGhlIFNvQyBpbXBsZW1lbnRhdGlvbiBJIHNob3VsZCBiZSBjb25zaWRlcmluZyBmb3IgcGVyZm9ybWFuY2Ugb3IgcG93ZXIgY29uc3VtcHRpb24/IFRoaXMgaXMgd2hlcmUgSSBuZWVkIHRvIGRpZyBhIGxpdHRsZSBkZWVwZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTEyLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzY6MzUuMTE5NDAyMTQzWiIsIlNlcSI6NDIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTQzMzkyNjcyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9kbWFfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz05NjA9dm9pZCBtdDc5OTZfZG1hX3Jlc2V0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNTI6dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMDUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzk4PXZvaWQgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgwOS1cXHRtdDc5OTZfdHhfdG9rZW5fcHV0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4MTA6XFx0bXQ3OTk2X2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4MTEtXFx0aWYgKG10Nzk5Nl9oYXNfaHdycm8oZGV2KSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njk0PXZvaWQgbXQ3OTk2X2RtYV9wcmVmZXRjaChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTU6dm9pZCBtdDc5OTZfZG1hX2NsZWFudXAoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjk2LXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM2OjM3LjA2Mjc5OTM3NVoiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTI5OTI2ODc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhhdCBmdW5jdGlvbjpcblxuKipEaXZpbmcgaW50byBgbXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlYCoqXG5cbk9rYXksIHNvIHdlJ3JlIGxvb2tpbmcgYXQgYG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZWAuIExldCdzIGFzc3VtZSB0aGlzIGlzIGEgZGV2aWNlIGRyaXZlciBmdW5jdGlvbiwgbGlrZWx5IHJlbGF0ZWQgdG8gYSBNZWRpYXRlayB3aXJlbGVzcyBjaGlwc2V0LCBnaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIldoYXQncyB0aGUgY29udGV4dD9cIiBUaGlzIGltcGxpZXMgd2UncmUgaW4gdGhlIHVucmVnaXN0cmF0aW9uIG9yIHJlbW92YWwgcHJvY2VzcyBvZiBhIHNwZWNpZmljIGhhcmR3YXJlIGRldmljZS4gSXMgdGhpcyBiZWluZyBjYWxsZWQgZHVyaW5nIG1vZHVsZSB1bmxvYWQsIGRldmljZSBob3RwbHVnIHJlbW92YWwsIG9yIHBlcmhhcHMgYSBzeXN0ZW0gc2h1dGRvd24gc2VxdWVuY2U/XG5cbkknZCBleHBlY3QgdGhpcyBmdW5jdGlvbiB0byBoYW5kbGUgdGhlIGNsZWFudXAgb2YgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlLiBUaGlzIGNvdWxkIGluY2x1ZGUgdGhpbmdzIGxpa2U6IGZyZWVpbmcgYWxsb2NhdGVkIG1lbW9yeSByZWxhdGVkIHRvIHRoZSBkZXZpY2UncyBpbnRlcm5hbCBzdGF0ZSwgcmVsZWFzaW5nIGludGVycnVwdHMsIGRpc2FibGluZyBhbnkgaGFyZHdhcmUgcmVnaXN0ZXJzIHRoYXQgd2VyZSBlbmFibGVkLCBkZXJlZ2lzdGVyaW5nIGFueSBhc3NvY2lhdGVkIGludGVyZmFjZXMgKGxpa2UgbmV0d29yayBpbnRlcmZhY2VzLCBpZiB0aGlzIGlzIGEgV2ktRmkgZGV2aWNlKSwgYW5kIHBvdGVudGlhbGx5IGhhbmRsaW5nIGFueSBvdXRzdGFuZGluZyB0cmFuc2FjdGlvbnMgb3IgRE1BIG9wZXJhdGlvbnMgdG8gcHJldmVudCBkYXRhIGNvcnJ1cHRpb24gb3IgaGFuZ3MuIFdlIGFsc28gbmVlZCB0byBiZSBtaW5kZnVsIG9mIGFueSBsb2NraW5nIG1lY2hhbmlzbXMuIFdhcyBhIG11dGV4IG9yIHNlbWFwaG9yZSBhY3F1aXJlZCBkdXJpbmcgZGV2aWNlIGluaXRpYWxpemF0aW9uIGFuZCByZWdpc3RyYXRpb24gdGhhdCB3ZSBtdXN0IG5vdyByZWxlYXNlIGluIHRoaXMgZnVuY3Rpb24/IFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIG9yZGVyIG9mIHRoZSBhY3Rpb25zIGFyZSBjb3JyZWN0LCBvdGhlcndpc2UgdGhpcyBjb3VsZCBjYXVzZSBhIGtlcm5lbCBjcmFzaC5cblxuSSdkIGFsc28gd2FudCB0byB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbidzIHJldHVybiB2YWx1ZS4gRG9lcyBpdCBpbmRpY2F0ZSBzdWNjZXNzIG9yIGZhaWx1cmU/IElmIGl0IGZhaWxzLCB3aGF0IGFyZSB0aGUgcG90ZW50aWFsIGVycm9yIGNvbmRpdGlvbnMgKGUuZy4sIHJlc291cmNlIG5vdCBmb3VuZCwgbG9jayBjb250ZW50aW9uLCBoYXJkd2FyZSBmYWlsdXJlKSBhbmQgaG93IGFyZSB0aGV5IGhhbmRsZWQ/IElzIHRoZXJlIGVycm9yIGxvZ2dpbmcgaW4gcGxhY2U/IElkZWFsbHksIHdlJ3JlIGRvaW5nIG1vcmUgdGhhbiBqdXN0IGJsaW5kbHkgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUuIFRoZXJlIHNob3VsZCBiZSBhIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZSBvciBhIG1vcmUgY29tcHJlaGVuc2l2ZSBlcnJvciBoYW5kbGluZyBzdHJhdGVneS4gQSBwcm9wZXIgdW5yZWdpc3RlciB3b3VsZCBiZSByb2J1c3QgYW5kIHByZXZlbnQgcmVzb3VyY2UgbGVha3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNzUxLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzY6NDEuMTkyNzI4OTI0WiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjUyMzg4OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzMxPWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc5Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc5ODp2b2lkIG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY3OD1pbnQgbXQ3OTk2X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2Nzk6dm9pZCBtdDc5OTZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjgwLWludCBtdDc5OTZfdmlmX2xpbmtfYWRkKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTIzMz1zdGF0aWMgdm9pZCBtdDc5OTZfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0MC1cXHRtdDc5OTZfcHV0X2hpZjIoZGV2LVxcdTAwM2VoaWYyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNDE6XFx0bXQ3OTk2X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQyLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6MzY6NDEuMzU3OTcyMjAyWiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyNTY1NzMyODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgYG10NzZfZG1hX2NsZWFudXBgIFVzYWdlKipcblxuT2theSwgc28gSSdtIHJldmlzaXRpbmcgdGhlIGBtdDc2X2RtYV9jbGVhbnVwYCBmdW5jdGlvbiBhbmQgbXkgaW5pdGlhbCB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQncyBleGNsdXNpdmVseSBjYWxsZWQgYnkgUENJIGFuZCBwbGF0Zm9ybSBkZXZpY2VzLiBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluIGFib3V0IHRoaXMsIHRob3VnaCwgZXNwZWNpYWxseSBpbiB0aGUgY29udGV4dCBvZiB0aGUgbGFyZ2VyIGBtdDc2YCBmcmFtZXdvcmsuIE5vdywgYSBuYWdnaW5nIHRob3VnaHQgaXMgZm9ybWluZyBpbiB0aGUgYmFjayBvZiBteSBtaW5kLiBXaGF0IGFib3V0IHRoZSBgbXQ3Nl91c2JgIG1vZHVsZT8gRG9lcyB0aGUgVVNCIGltcGxlbWVudGF0aW9uIGFsc28gdXRpbGl6ZSBgbXQ3Nl9kbWFfY2xlYW51cGA/IEl0IHdvdWxkIGJlIHF1aXRlIHByb2JsZW1hdGljIGlmIEkgd2VyZSB0byBiZSBtaXN0YWtlbiBhYm91dCB0aGlzLiBJdCBpcyB0aW1lIHRvIGV4YW1pbmUgdGhlIFVTQiBjbGVhbnVwIHJvdXRpbmVzIHRvIGNvbmZpcm0gb3IgY29ycmVjdCB0aGlzIGFzc3VtcHRpb24uIEl0J3MgdGltZSB0byBkaWcgaW50byB0aGUgYG10NzZfdXNiYCBjbGVhbnVwIGNvZGUgZGlyZWN0bHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxNzAzLCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mzc6MjMuOTIzNzA4MzMxWiIsIlNlcSI6NDYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTI5Njg5MjIsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfdXNiXy4qY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mzc6MjQuNDc2Njg2MTAzWiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgxNzYzNTEzNDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzOlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgTVQ3NiBVU0IgRHJpdmVyKipcblxuT2theSwgc28gSSBuZWVkIHRvIHRyYWNrIGRvd24gc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIFVTQiBpbnRlcmZhY2UgaW4gdGhlIE1UNzYgZHJpdmVyLiBNeSBpbnN0aW5jdCBpcyB0byBzdGFydCBieSBsb29raW5nIGF0IGVpdGhlciBgbXQ3Nl91c2JgIG9yIGp1c3QgdGhlIGdlbmVyYWwgYHVzYi5jYCBmaWxlIHdpdGhpbiB0aGUgTVQ3NiBkaXJlY3RvcnkuICBgbXQ3Nl91c2JgIHNlZW1zIGxpa2UgdGhlIG9idmlvdXMgcGxhY2UgdG8gYmVnaW4sIHNpbmNlIGl0J3MgbmFtZWQgc3BlY2lmaWNhbGx5IGZvciB0aGUgVVNCLXJlbGF0ZWQgaW1wbGVtZW50YXRpb24uIEhvd2V2ZXIsIGl0IHdvdWxkbid0IGh1cnQgdG8gY2hlY2sgaWYgYW55IG9mIHRoZSBjb3JlIFVTQiBmdW5jdGlvbmFsaXR5IGlzIGhhbmRsZWQgaW4gYHVzYi5jYCBhcyB3ZWxsLiBUaGF0IHdvdWxkIGRlcGVuZCBvbiB0aGUgTVQ3NidzIGFyY2hpdGVjdHVyZSBhbmQgaG93IHRoZXkndmUgb3JnYW5pemVkIHRoZWlyIGRyaXZlciBjb2RlLiBJJ2xsIGxpa2VseSBuZWVkIHRvIGNyb3NzLXJlZmVyZW5jZSBiZXR3ZWVuIHRob3NlIHR3by4gSXQgd2lsbCB0YWtlIHRpbWUgYnV0IHN0YXJ0aW5nIGhlcmUgaXMgdGhlIGJlc3QgcGxhY2UgdG8gYmVnaW4gdGhlIHRhc2sgYXQgaGFuZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE5ODksIk91dHB1dFRva2VucyI6NDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozNzozMi42NTMwNDA4NTRaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwMzc5ODc4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2X2ZyZWVfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYz04MTM9RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl91bnJlZ2lzdGVyX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTgxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmM6ODE1OnZvaWQgbXQ3Nl9mcmVlX2RldmljZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L21hYzgwMjExLmMtODE2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYy04MjQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbWFjODAyMTEuYzo4MjU6RVhQT1JUX1NZTUJPTF9HUEwobXQ3Nl9mcmVlX2RldmljZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tYWM4MDIxMS5jLTgyNi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oPTEzMTU9dm9pZCBtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxMzE2OnZvaWQgbXQ3Nl9mcmVlX2RldmljZShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTMxNy12b2lkIG10NzZfcmVzZXRfZGV2aWNlKHN0cnVjdCBtdDc2X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz01NjQ9dm9pZCBtdDc2MDNfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NjktXFx0bXQ3NjAzX2RtYV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjU3MDpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01NzEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM9MTU9bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMtNTktZXJyb3I6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmM6NjA6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9wY2kuYy02MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jPTEwPW10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmMtNTAtZXJyb3I6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvc29jLmM6NTE6XFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuYy01Mi1cXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvbW1pby5jPTE2Nj1pbnQgbXQ3NjE1X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldiwgdm9pZCBfX2lvbWVtICptZW1fYmFzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYy0yNDItZXJyX2ZyZWVfZGV2OlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L21taW8uYzoyNDM6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9tbWlvLmMtMjQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYz0xMTI9dm9pZCBtdDc2MTVfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzYxNV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmMtMTI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3BjaV9pbml0LmM6MTI3OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvcGNpX2luaXQuYy0xMjgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jPTc2PXN0YXRpYyBpbnQgbXQ3NjYzc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE2Ni1cXHRtdDc2c19kZWluaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jOjE2NzpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3NkaW8uYy0xNjgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM9MTcyPXN0YXRpYyB2b2lkIG10NzY2M3NfcmVtb3ZlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmMtMTgwLVxcdG10NzZzX2RlaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS9zZGlvLmM6MTgxOlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvc2Rpby5jLTE4Mi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0xMTI9c3RhdGljIGludCBtdDc2NjN1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTE5NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoxOTY6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0xOTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYz0yMDE9c3RhdGljIHZvaWQgbXQ3NjYzdV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L3VzYi5jLTIxMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYzoyMTM6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYxNS91c2IuYy0yMTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM9MTU0PW10NzZ4MGVfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3BjaS5jLTIxOC1lcnJvcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYzoyMTk6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yMjAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYz0yMzU9bXQ3NngwZV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC9wY2kuYy0yNDEtXFx0bXQ3NngwZV9jbGVhbnVwKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmM6MjQyOlxcdG10NzZfZnJlZV9kZXZpY2UobWRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvcGNpLmMtMjQzLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jPTIxMz1zdGF0aWMgaW50IG10NzZ4MHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjg2LVxcdG10NzZ1X3F1ZXVlc19kZWluaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM6Mjg3OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmMtMjg4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDAvdXNiLmM9MjkyPXN0YXRpYyB2b2lkIG10NzZ4MF9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngwL3VzYi5jLTMwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYzozMDU6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4MC91c2IuYy0zMDYtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM9MjA9bXQ3NngyZV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmMtOTQtZXJyb3I6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvcGNpLmM6OTU6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9wY2kuYy05Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jPTEwMT1tdDc2eDJlX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwNy1cXHRtdDc2eDJfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jOjEwODpcXHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3BjaS5jLTEwOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYz0zMj1zdGF0aWMgaW50IG10NzZ4MnVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi91c2IuYy04NC1cXHRtdDc2dV9xdWV1ZXNfZGVpbml0KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjg1OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtODYtXFx0dXNiX3NldF9pbnRmZGF0YShpbnRmLCBOVUxMKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jPTkxPXN0YXRpYyB2b2lkIG10NzZ4MnVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jLTk4LVxcdG10NzZ4MnVfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NngyL3VzYi5jOjk5OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvdXNiLmMtMTAwLVxcdHVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmM9MTI5NT12b2lkIG10NzkxNV91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jLTEzMDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jOjEzMDQ6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9pbml0LmMtMTMwNS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM9OTE3PXN0cnVjdCBtdDc5MTVfZGV2ICptdDc5MTVfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk1OC1lcnJvcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tbWlvLmM6OTU5OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbW1pby5jLTk2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3BjaS5jPTEwMz1zdGF0aWMgaW50IG10NzkxNV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9wY2kuYy0xOTctZnJlZV9kZXZpY2U6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmM6MTk4OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcGNpLmMtMTk5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvc29jLmM9MTIyMD1zdGF0aWMgaW50IG10Nzk4eF93bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc0LVxcdFxcdG10a193ZWRfZGV2aWNlX2RldGFjaChcXHUwMDI2bWRldi1cXHUwMDNlbW1pby53ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3NvYy5jOjEyNzU6XFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9zb2MuYy0xMjc2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTQzOS1lcnJfZnJlZV9kZXY6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NDQwOlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDQxLWVycl9mcmVlX3BjaV92ZWM6XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYz00NDc9c3RhdGljIHZvaWQgbXQ3OTIxX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy00NTctXFx0ZGV2bV9mcmVlX2lycShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBwZGV2LVxcdTAwM2VpcnEsIGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6NDU4OlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmMtNDU5LVxcdHBjaV9mcmVlX2lycV92ZWN0b3JzKHBkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTQzPXN0YXRpYyB2b2lkIG10NzkyMXNfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10NzkyeF9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy01NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmM6NTY6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtNTctfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTE5Ni1cXHRtdDc2c19kZWluaXQoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jOjE5NzpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xOTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYz0xNTA9c3RhdGljIGludCBtdDc5MjF1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTI1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoyNTg6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0yNTktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYz0zMTM9c3RhdGljIGludCBtdDc5MjVfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvcGNpLmMtNDg4LWVycl9mcmVlX2RldjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzo0ODk6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy00OTAtZXJyX2ZyZWVfcGNpX3ZlYzpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jPTQ5Nj1zdGF0aWMgdm9pZCBtdDc5MjVfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3BjaS5jLTUwMy1cXHRkZXZtX2ZyZWVfaXJxKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHBkZXYtXFx1MDAzZWlycSwgZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYzo1MDQ6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS9wY2kuYy01MDUtXFx0cGNpX2ZyZWVfaXJxX3ZlY3RvcnMocGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYz0xNDM9c3RhdGljIGludCBtdDc5MjV1X3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jLTI1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzoyNTc6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0yNTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jOjQyMTpcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQyMi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTc5OD12b2lkIG10Nzk5Nl91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE4MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE4MTY6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTgxNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2Mi1lcnJvcjpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODYzOlxcdG10NzZfZnJlZV9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTk5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTIyMC1mcmVlX2RldmljZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyMjE6XFx0bXQ3Nl9mcmVlX2RldmljZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yMjItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM3OjMyLjc1Njg0NzI0MloiLCJTZXEiOjQ5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDE1OTIwOTAzNzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgYG10NzZfZG1hX2NsZWFudXBgIENhbGwgUGF0aCoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBob3cgYG10NzZfZG1hX2NsZWFudXBgIGdldHMgY2FsbGVkLiBNeSBpbml0aWFsIHVuZGVyc3RhbmRpbmcgaXMgdGhhdCBpdCdzIHByaW1hcmlseSB1c2VkIGJ5IFBDSSBhbmQgcGxhdGZvcm0gZGV2aWNlcy4gSG93ZXZlciwgSSdtIG5vdyBxdWVzdGlvbmluZyB0aGF0IGFzc3VtcHRpb24uIElzIHRoZXJlIGV2ZW4gYSByZW1vdGUgcG9zc2liaWxpdHkgdGhhdCBhIFVTQiBkZXZpY2UgY291bGQgdHJpZ2dlciB0aGlzIGNsZWFudXAgZnVuY3Rpb24/IExldCBtZSB0aGluay4uLlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIFVTQiBwcm9iZSBmdW5jdGlvbnMgZm9yIHRob3NlIG10NzYgd2lyZWxlc3MgZGV2aWNlcy4gSSdsbCBuZWVkIHRvIGNoZWNrIGBtdDc5MjF1X3Byb2JlYCwgYG10NzkyNXVfcHJvYmVgLCBgbXQ3NngwdV9wcm9iZWAsIGFuZCBgbXQ3NngydV9wcm9iZWAgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IGRpcmVjdCBjYWxsLiBcblxuT2theSwgYSBxdWljayBzY2FuLi4uIG5vcGUsIG5vbmUgb2YgdGhlbSBzZWVtIHRvIGRpcmVjdGx5IGNhbGwgYG10NzZfZG1hX2NsZWFudXBgIHRoZW1zZWx2ZXMuIEhtbSwgYnV0IHdhaXQuLi4gTG9va2luZyBiYWNrIGF0IGBtdDc5MjF1X3Byb2JlYCwgaXQgZG9lcyBjYWxsIGBtdDc5MjFfcmVnaXN0ZXJfZGV2aWNlYC4gUGVyaGFwcyAqdGhhdCogZnVuY3Rpb24gaXMgd2hlcmUgdGhlIGNhbGwgb3JpZ2luYXRlcy4gSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoYXQgZnVydGhlci4gTGV0J3Mgc2VlIHdoYXQgdGhhdCBmdW5jdGlvbiBkb2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODAzNCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTozOToxNC4zNDg5Mzk2ODZaIiwiU2VxIjo1MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE1MzQzMjY4MDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxdV9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYz04OT1zdGF0aWMgaW50IG10NzkyMXVfbWFjX3Jlc2V0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0xNDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MTUwOnN0YXRpYyBpbnQgbXQ3OTIxdV9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTUxLVxcdFxcdFxcdCBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYz0zMzg9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIG10NzkyMXVfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMzQwLVxcdC5pZF90YWJsZVxcdD0gbXQ3OTIxdV9kZXZpY2VfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MzQxOlxcdC5wcm9iZVxcdFxcdD0gbXQ3OTIxdV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0zNDItXFx0LmRpc2Nvbm5lY3RcXHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6Mzk6MTUuODgzMjcxODI0WiIsIlNlcSI6NTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0NDIwMTU5NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipEaXZpbmcgaW50byBgbXQ3OTJ4dV9kaXNjb25uZWN0YCoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGlnIGludG8gYG10NzkyeHVfZGlzY29ubmVjdGAuIEkgd2FudCB0byBpbW1lZGlhdGVseSByZWZyZXNoIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHRlYXJkb3duIGZsb3cgZm9yIHRoYXQgc3BlY2lmaWMgZHJpdmVyLiBXaGF0J3MgdGhlIGNvcmUgbG9naWM/IFdoZXJlIGFyZSB0aGUgY3JpdGljYWwgcmVzb3VyY2VzIGJlaW5nIGZyZWVkPyBJIG5lZWQgdG8gcXVpY2tseSByZWNhbGwgdGhlIHR5cGljYWwgaXNzdWVzIHRoYXQgc3VyZmFjZSBkdXJpbmcgZGlzY29ubmVjdCBwcm9jZWR1cmVzIHdpdGhpbiB3aXJlbGVzcyBkcml2ZXJzLiBNZW1vcnkgbGVha3MgYXJlIGFsd2F5cyBhIHBvc3NpYmlsaXR5LCBzbyBJJ2xsIGJlIGxvb2tpbmcgc3BlY2lmaWNhbGx5IGZvciBhbnkgb3JwaGFuZWQgYnVmZmVycyBvciBzdHJ1Y3R1cmVzLiBSYWNlIGNvbmRpdGlvbnMgYXJlIGFub3RoZXIgY29uY2VybiDigJMgYXJlIHRoZXJlIGFueSBwb3RlbnRpYWwgY29uZmxpY3RzIGJldHdlZW4gdGhlIGRpc2Nvbm5lY3Qgcm91dGluZSBhbmQgb3RoZXIgb25nb2luZyBvcGVyYXRpb25zLCBwZXJoYXBzIHJlbGF0ZWQgdG8gZGF0YSB0cmFuc2ZlciBvciBiZWFjb24gcHJvY2Vzc2luZz8gQW5kIG9mIGNvdXJzZSwgSSdsbCBiZSBjaGVja2luZyBmb3IgYW55IHN1YnRsZSBidXQgc2lnbmlmaWNhbnQgdGltaW5nIGRlcGVuZGVuY2llcyB0aGF0IGNvdWxkIGJlIHByb2JsZW1hdGljIG9uIGNlcnRhaW4gaGFyZHdhcmUgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGRyaXZlciBpcyByb2J1c3QgYW5kIGdyYWNlZnVsIGluIGl0cyBoYW5kbGluZyBvZiBkaXNjb25uZWN0aW9ucywgZXZlbiB1bmRlciBsZXNzLXRoYW4taWRlYWwgbmV0d29yayBjb25kaXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODgzNiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM5OjE5LjMyNTI4OTY2M1oiLCJTZXEiOjUyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTgzNTc2NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTJ4dV9kaXNjb25uZWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTMzOD1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXQ3OTIxdV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYy0zNDEtXFx0LnByb2JlXFx0XFx0PSBtdDc5MjF1X3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jOjM0MjpcXHQuZGlzY29ubmVjdFxcdD0gbXQ3OTJ4dV9kaXNjb25uZWN0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTM0My0jaWZkZWYgQ09ORklHX1BNXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYz0zNDc9c3RhdGljIHN0cnVjdCB1c2JfZHJpdmVyIG10NzkyNXVfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMtMzUwLVxcdC5wcm9iZVxcdFxcdD0gbXQ3OTI1dV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYzozNTE6XFx0LmRpc2Nvbm5lY3RcXHQ9IG10NzkyeHVfZGlzY29ubmVjdCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYy0zNTItI2lmZGVmIENPTkZJR19QTVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaD01Mjg9dm9pZCBtdDc5Mnh1X2NvcHkoc3RydWN0IG10NzZfZGV2ICpkZXYsIHUzMiBvZmZzZXQsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4Lmg6NTI5OnZvaWQgbXQ3OTJ4dV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50Zik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnguaC01MzAtdm9pZCBtdDc5Mnh1X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIGJvb2wgc3VzcGVuZCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9zdG9wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDA3OnZvaWQgbXQ3OTJ4dV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MjM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9kaXNjb25uZWN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjM5OjE5LjM4MzY1MjE4M1oiLCJTZXEiOjUzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NjMyMDUyMDY3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIERpc2Nvbm5lY3QgUm91dGluZSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgYG10NzkyeHVfZGlzY29ubmVjdGAgaW1wbGVtZW50YXRpb24uIEknbSBhc3N1bWluZyB0aGVyZSdzIGJlZW4gYW4gaXNzdWUgcmVwb3J0ZWQsIG9yIG1heWJlIEknbSBqdXN0IGRvaW5nIGEgY29kZSByZXZpZXcgc3dlZXAsIGFuZCB0aGlzIGZ1bmN0aW9uIGlzIG9uIHRoZSByYWRhci4gSXQncyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgYSBsaW5rIGRyb3AsIGFuZCB3aGVyZSB3ZSBtaWdodCBzZWUgcHJvYmxlbXMgcmVsYXRlZCB0byBzdGF0aW9uIGRpc2Fzc29jaWF0aW9uLCBoYXJkd2FyZSByZXNldCB0cmlnZ2Vycywgb3IgZXZlbiBzdWJ0bGUgbWVtb3J5IGxlYWtzIGR1cmluZyB0aGUgZGVhdXRoZW50aWNhdGlvbiBwcm9jZXNzLiBJIHdhbnQgdG8gc2VlIGlmIGl0J3MgZ3JhY2VmdWxseSBoYW5kbGluZyBhbGwgdGhlIHN0YXRlcy4gSSdsbCBiZSBsb29raW5nIGZvciB0aGluZ3MgbGlrZTogaG93IGl0IGNsZWFucyB1cCBhc3NvY2lhdGVkIHJlc291cmNlcywgaWYgaXQgY29ycmVjdGx5IGRlYWN0aXZhdGVzIHRoZSBoYXJkd2FyZSBpbnRlcmZhY2VzLCBob3cgaXQgY2xlYXJzIHRoZSByZWxldmFudCBjb250cm9sIHN0cnVjdHVyZXMgYW5kIHF1ZXVlIHN0YXRlcywgd2hhdCdzIGRvbmUgd2l0aCBhbnkgcGVuZGluZyB0cmFmZmljLCBhbmQgaWYgaXQgd2FpdHMgZm9yIGFueSBvdXRzdGFuZGluZyBhY2tub3dsZWRnZW1lbnRzIG9yIGNvbXBsZXRpb24gZXZlbnRzIGJlZm9yZSBhY3R1YWxseSByZWxlYXNpbmcgdGhlIHJlc291cmNlcy4gQW55dGhpbmcgYW1pc3MgaGVyZSBjb3VsZCBjYXVzZSBpbnRlcm1pdHRlbnQgY29ubmVjdGlvbiBmYWlsdXJlcywgZGV2aWNlIGxvY2t1cHMsIG9yIGV2ZW4gZGF0YSBjb3JydXB0aW9uLiBMZXQncyBzZWUgaG93IHRoZXkgdGFja2xlZCBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk4MzQsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDoxNS43MDQxNzUyNTFaIiwiU2VxIjo1NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NDM5NDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzkyeHVfZGlzY29ubmVjdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDU9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9zdG9wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDA3OnZvaWQgbXQ3OTJ4dV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICp1c2JfaW50ZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MDgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDIyLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYzo0MjM6RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9kaXNjb25uZWN0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy00MjQtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQwOjE1Ljc1ODYxNzU4WiIsIlNlcSI6NTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4MzgyOTQ4OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gbXQ3OTJ4X3VzYi5jOiBMaW5lIDQwNyBhbmQgQmV5b25kKipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgYG10NzkyeF91c2IuY2AsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA0MDcuIEknbSBndWVzc2luZyB0aGlzIHNlY3Rpb24gbGlrZWx5IGRlYWxzIHdpdGggdGhlIFVTQiBpbnRlcmZhY2UgZm9yIHRoZSBNZWRpYXRlayA3OTJ4IGNoaXBzZXQuIFRoYXQgbGluZSBudW1iZXIgc3VnZ2VzdHMgd2UncmUgcHJvYmFibHkgZGVhbGluZyB3aXRoIGVpdGhlciBpbml0aWFsaXphdGlvbiwgaW50ZXJydXB0IGhhbmRsaW5nLCBvciBtYXliZSBzb21lIGNyaXRpY2FsIGRhdGEgdHJhbnNmZXIgcm91dGluZSByZWxhdGVkIHRvIHRoZSBVU0Igc3Vic3lzdGVtLiBHaXZlbiB0aGUgbGlrZWx5IGNvbnRleHQsIEknZCBhbnRpY2lwYXRlIHNlZWluZyBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzLCBwZXJoYXBzIHF1ZXVlIG1hbmFnZW1lbnQgZm9yIFVTQiB0cmFuc2ZlcnMgKFVSQnMsIGV0Yy4pLCBlcnJvciBjaGVja2luZywgb3IgcG9zc2libHkgc29tZSBwb3dlciBtYW5hZ2VtZW50IGNvbnNpZGVyYXRpb25zIGlmIHRoaXMgaXMgcmVsYXRlZCB0byBzdXNwZW5kL3Jlc3VtZS4gSeKAmWxsIHN0YXJ0IGJ5IHNjYW5uaW5nIHRoZSBzdXJyb3VuZGluZyBjb2RlLCBsb29raW5nIGZvciBmdW5jdGlvbiBjYWxscywgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgY29tbWVudHMgdGhhdCBwcm92aWRlIGhpbnRzIGFib3V0IHRoZSBleGFjdCBmdW5jdGlvbmFsaXR5IGF0IGxpbmUgNDA3LiBJJ20gbWVudGFsbHkgcGFyc2luZyB0aGUgY29udHJvbCBmbG93LCBhbnRpY2lwYXRpbmcgdGhlIGxvZ2ljIHRvIHNlZSBpZiBpdCdzIHRoZSBleHBlY3RlZCBVU0IgZHJpdmVyIG9wZXJhdGlvbi4gTGV0J3Mgc2VlIHdoYXQncyBhY3R1YWxseSBnb2luZyBvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAzODUsIk91dHB1dFRva2VucyI6NTAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDoxOS41OTY5MTUxMzRaIiwiU2VxIjo1NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODcyMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNDAwLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNDAwOlxcdFxcdHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYgPSBtdDc5MnhfaHdfZGV2KGh3KTtcXG4gNDAxOlxcdFxcbiA0MDI6XFx0XFx0bXQ3NnVfc3RvcF90eChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4gNDAzOlxcdFxcdG10NzkyeF9zdG9wKGh3LCBmYWxzZSk7XFxuIDQwNDpcXHR9XFxuIDQwNTpcXHRFWFBPUlRfU1lNQk9MX0dQTChtdDc5Mnh1X3N0b3ApO1xcbiA0MDY6XFx0XFxuIDQwNzpcXHR2b2lkIG10NzkyeHVfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqdXNiX2ludGYpXFxuIDQwODpcXHR7XFxuIDQwOTpcXHRcXHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YSh1c2JfaW50Zik7XFxuIDQxMDpcXHRcXG4gNDExOlxcdFxcdG10NzkyeHVfcmVzZXRfd29ya19jbGVhbnVwKGRldik7XFxuIDQxMjpcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZkZXYtXFx1MDAzZWluaXRfd29yayk7XFxuIDQxMzpcXHRcXHRpZiAoIXRlc3RfYml0KE1UNzZfU1RBVEVfSU5JVElBTElaRUQsIFxcdTAwMjZkZXYtXFx1MDAzZW1waHkuc3RhdGUpKVxcbiA0MTQ6XFx0XFx0XFx0cmV0dXJuO1xcbiA0MTU6XFx0XFxuIDQxNjpcXHRcXHRtdDc2X3VucmVnaXN0ZXJfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbiA0MTc6XFx0XFx0bXQ3OTJ4dV9jbGVhbnVwKGRldik7XFxuIDQxODpcXHRcXG4gNDE5OlxcdFxcdHVzYl9zZXRfaW50ZmRhdGEodXNiX2ludGYsIE5VTEwpO1xcbiA0MjA6XFx0XFxuIDQyMTpcXHRcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbiA0MjI6XFx0fVxcbiA0MjM6XFx0RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTJ4dV9kaXNjb25uZWN0KTtcXG4gNDI0OlxcdFxcbiA0MjU6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBNVDc5MnggVVNCIGhlbHBlcnNcXFwiKTtcXG4gNDI2OlxcdE1PRFVMRV9MSUNFTlNFKFxcXCJEdWFsIEJTRC9HUExcXFwiKTtcXG4gNDI3OlxcdE1PRFVMRV9BVVRIT1IoXFxcIkxvcmVuem8gQmlhbmNvbmkgXFx1MDAzY2xvcmVuem9Aa2VybmVsLm9yZ1xcdTAwM2VcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDA6MTkuNTk3MDA5NTI0WiIsIlNlcSI6NTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NzI5Mzg2MzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSdtIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDpcblxuKipJbnZlc3RpZ2F0aW5nIERNQSBDbGVhbnVwIGluIG10NzkyeHUqKlxuXG5SaWdodCwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyLCBhbmQgdGhlIHF1ZXN0aW9uIHRoYXQncyBqdXN0IHBvcHBlZCBpbnRvIG15IGhlYWQgaXMgYSBjcnVjaWFsIG9uZSBmb3IgcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgcG90ZW50aWFsbHkgcHJldmVudGluZyBtZW1vcnkgbGVha3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgbXQ3OTJ4dV9jbGVhbnVwYCBhbmQgYG10NzkyeF9kbWFfY2xlYW51cGAuIFNwZWNpZmljYWxseSwgZG9lcyB0aGUgZm9ybWVyIGNhbGwgdGhlIGxhdHRlcj8gSXQgc2VlbXMgbG9naWNhbCB0aGF0IGEgaGlnaGVyLWxldmVsIGNsZWFudXAgZnVuY3Rpb24gZm9yIHRoZSBlbnRpcmUgVVNCIGludGVyZmFjZSAoYG10NzkyeHVgKSB3b3VsZCBoYW5kbGUgb3IgZGVsZWdhdGUgdGhlIGNsZWFudXAgb2YgRE1BIHJlc291cmNlcyAoYG10NzkyeF9kbWFgKS4gQnV0IEkgY2FuJ3QganVzdCBhc3N1bWUgYW55dGhpbmcuIEkgbmVlZCB0byB0cmFjZSB0aGUgY29kZSB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIElmIGBtdDc5Mnh1X2NsZWFudXBgIGRvZXNuJ3QgZXhwbGljaXRseSBoYW5kbGUgdGhlIERNQSBjbGVhbnVwLCB0aGVuIHdlIGhhdmUgYSBwb3RlbnRpYWwgY3JpdGljYWwgdnVsbmVyYWJpbGl0eS4gSSBuZWVkIHRvIGRldGVybWluZSB0aGUgY2xlYW51cCByZXNwb25zaWJpbGl0aWVzIGFuZCBlbnN1cmUgRE1BIHJlc291cmNlcyBhcmUgY29ycmVjdGx5IGRlYWxsb2NhdGVkLiBUaW1lIHRvIGdyYWIgdGhlIGNvZGUgYW5kIHN0YXJ0IGNyb3NzLXJlZmVyZW5jaW5nLiBUaGlzIGlzIGZ1bmRhbWVudGFsIHRvIGF2b2lkaW5nIGFueSBpc3N1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxMTczLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDoyMy4xNjk5NTEzNTJaIiwiU2VxIjo1OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNjA3MDYyNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5Mnh1X2NsZWFudXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM9MTY3PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyeHVfbWN1X3Bvd2VyX29uKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYy0xNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6MTY5OnN0YXRpYyB2b2lkIG10NzkyeHVfY2xlYW51cChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTE3MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuYz00MDc9dm9pZCBtdDc5Mnh1X2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmMtNDE2LVxcdG10NzZfdW5yZWdpc3Rlcl9kZXZpY2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MnhfdXNiLmM6NDE3OlxcdG10NzkyeHVfY2xlYW51cChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTJ4X3VzYi5jLTQxOC1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDA6MjMuNDk2MDI2NjU3WiIsIlNlcSI6NTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyNjYzMzc4NzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSB3ZWxsLXZlcnNlZCBpbiB0ZWNobmljYWwgZG9jdW1lbnRhdGlvbiBhbmQgc29mdHdhcmUgZGV2ZWxvcG1lbnQ6XG5cbioqSW5pdGlhbCBBc3Nlc3NtZW50OiBEaXZpbmcgaW50byBgbXQ3OTJ4dV9jbGVhbnVwYCoqXG5cblJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gVGhlIHByb21wdCBpcyBhIGNsZWFyIGluc3RydWN0aW9uIC0gcmVhZCBgbXQ3OTJ4dV9jbGVhbnVwYC4gSSBpbW1lZGlhdGVseSBrbm93IHRoYXQgSSBuZWVkIHRvIG1lbnRhbGx5IHByZXBhcmUgdG8gcGFyc2UgdGhyb3VnaCBjb2RlLCBkb2N1bWVudGF0aW9uLCBvciBjb25maWd1cmF0aW9uIHJlbGF0ZWQgdG8gYSBzeXN0ZW0sIG1vc3QgbGlrZWx5IGEgc29mdHdhcmUgbW9kdWxlLCBmdW5jdGlvbiwgb3Igc2NyaXB0LCBiYXNlZCBvbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24uIFRoZSB1c2Ugb2YgXCJjbGVhbnVwXCIgaW1wbGllcyBpdCdzIHJlbGF0ZWQgdG8gdGhlIHByb2Nlc3Mgb2YgdGlkeWluZyB1cCBhbmQgbWFuYWdpbmcgcmVzb3VyY2VzLiBUaGUgXCJtdDc5Mnh1XCIgcG9ydGlvbiBzb3VuZHMgbGlrZSBhIGRldmljZSwgZHJpdmVyLCBvciBsaWJyYXJ5IGRlc2lnbmF0aW9uLiBJIHNob3VsZCBleHBlY3QgdG8gZmluZCBjb2RlIHRoYXQgcmVtb3ZlcyB0ZW1wb3JhcnkgZmlsZXMsIGZyZWVzIGFsbG9jYXRlZCBtZW1vcnksIHJlc2V0cyBoYXJkd2FyZSwgb3Igb3RoZXJ3aXNlIHJlc3RvcmVzIGEgc3lzdGVtIHRvIGEgY2xlYW4gc3RhdGUuIEkgYW50aWNpcGF0ZSBhIHRlY2huaWNhbCByZWFkLCBhbmQgSSdsbCBuZWVkIHRvIGFic29yYiBpdCB3aXRoIG15IGV4cGVydCB1bmRlcnN0YW5kaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTgxNCwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQwOjQ2LjE1OTQwODAzNloiLCJTZXEiOjYwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3NDcxMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyeF91c2IuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNjksXG4gIFwiTGluZUNvdW50XCI6IDEwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNjk6XFx0c3RhdGljIHZvaWQgbXQ3OTJ4dV9jbGVhbnVwKHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYpXFxuIDE3MDpcXHR7XFxuIDE3MTpcXHRcXHRjbGVhcl9iaXQoTVQ3Nl9TVEFURV9JTklUSUFMSVpFRCwgXFx1MDAyNmRldi1cXHUwMDNlbXBoeS5zdGF0ZSk7XFxuIDE3MjpcXHRcXHRtdDc5Mnh1X3dmc3lzX3Jlc2V0KGRldik7XFxuIDE3MzpcXHRcXHRza2JfcXVldWVfcHVyZ2UoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tY3UucmVzX3EpO1xcbiAxNzQ6XFx0XFx0bXQ3NnVfcXVldWVzX2RlaW5pdChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KTtcXG4gMTc1OlxcdH1cXG4gMTc2OlxcdFxcbiAxNzc6XFx0c3RhdGljIHUzMiBtdDc5Mnh1X3Vod19ycihzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgdTMyIGFkZHIpXFxuIDE3ODpcXHR7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQwOjQ2LjE1OTQ4Mzk0N1oiLCJTZXEiOjYxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NDQ3MTA2NzMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIE1UNzYgRHJpdmVycyoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhlIGNsZWFudXAgcm91dGluZXMgZm9yIHRoZXNlIE1lZGlhdGVrIFdpLUZpIGRyaXZlcnMuIEl0IGxvb2tzIGxpa2UgYG10NzkyeHVfY2xlYW51cGAgY2FsbHMgYG10NzZ1X3F1ZXVlc19kZWluaXRgLCBub3QgYG10NzZfZG1hX2NsZWFudXBgLiBUaGlzIHRlbGxzIG1lIHRoYXQgYG10NzZfZG1hX2NsZWFudXBgIGlzIHNwZWNpZmljYWxseSBmb3IgUENJIGFuZCBwbGF0Zm9ybSBkZXZpY2VzIHRoYXQgdXNlIERNQSwgd2hpbGUgVVNCIGRldmljZXMgbGlrZSB0aGUgTVQ3OTJ4dSB1c2UgYSBkaWZmZXJlbnQgZGVpbml0aWFsaXphdGlvbiBwYXRoLlxuXG5HaXZlbiB0aGF0LCBJIHdvbmRlciBhYm91dCBmdXp6aW5nIGBtdDc2X2RtYV9jbGVhbnVwYC4gU2luY2UgaXQncyBQQ0kgYW5kIHBsYXRmb3JtIHNwZWNpZmljLCBjb3VsZCBJIGZ1enogaXQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gSSdkIG5lZWQgYSBQQ0kgZGV2aWNlIGVtdWxhdG9yLCBhbmQgSSBrbm93IFN5emthbGxlciB1c3VhbGx5IGRvZXNuJ3QgaGF2ZSBlbXVsYXRvcnMgZm9yIHNwZWNpZmljIE1lZGlhdGVrIFdpLUZpIGNhcmRzLiBIb3dldmVyLCB3YWl0IGEgbWludXRlLi4uIFN5emthbGxlciAqZG9lcyogaGF2ZSBhIFBDSSBmdXp6ZXIhIEl0IGNhbiBlbXVsYXRlIGFyYml0cmFyeSBQQ0kgZGV2aWNlcyFcblxuSWYgSSBlbmFibGUgdGhlIFBDSSBmdXp6ZXIsIEkgY291bGQgcHJvYmFibHkgcHJvYmUgdGhlc2UgZHJpdmVycyBieSBnaXZpbmcgbWF0Y2hpbmcgUENJIElEcy4gSSBuZWVkIHRvIGNvbmZpcm0gd2hldGhlciBgQ09ORklHX01UNzZfQ09SRWAgYW5kIHRoZSBQQ0kgZHJpdmVycyBhcmUgZW5hYmxlZCBpbiBTeXprYWxsZXIuIEFjdHVhbGx5LCB0aGlua2luZyBhYm91dCBpdCwgU3l6a2FsbGVyIGNhbiBmdXp6IFBDSSBkcml2ZXJzIHVzaW5nIGVpdGhlciBgdmhjaWAgb3IgYHBjaWAgcHNldWRvLWRldmljZXMuXG5cbkFoLCBidXQgSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUga2VybmVsIGhhcyB0aGUgZHJpdmVyIGVuYWJsZWQgZmlyc3QsIGFuZCBTeXprYWxsZXIgdXNlcyBgc3l6X3BjaV9zZXR1cGAgb3Igc29tZXRoaW5nIHNpbWlsYXIuIEkgbmVlZCB0byBzZWUgaWYgYENPTkZJR19NVDc2X0NPUkVgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvciBpZiBJIG5lZWQgdG8gc3BlY2lmeSBpdC4gVGhlIFBDSSBkcml2ZXJzIEknbSBpbnRlcmVzdGVkIGluIGFyZSBgQ09ORklHX01UNzYwM0VgLCBgQ09ORklHX01UNzZ4MkVgLCBgQ09ORklHX01UNzYxNUVgLCBgQ09ORklHX01UNzkxNUVgLCBgQ09ORklHX01UNzkyMUVgLCBgQ09ORklHX01UNzkyNUVgLCBhbmQgYENPTkZJR19NVDc5OTZFYC4gSSdsbCBzdGFydCBieSBjaGVja2luZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ2AgdG8gc3RhcnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMyMjg4LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDE2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDA6NTUuNjA2NTkzODk4WiIsIlNlcSI6NjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzY2MTM1NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkyMUVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0yPWNvbmZpZyBNVDc5MjFfQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzo3OmNvbmZpZyBNVDc5MjFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy04LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFFIChQQ0llKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MDo1NS44NDMyMTYzNjVaIiwiU2VxIjo2MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDc3MTUyNTQyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIE1UNzkyMUUgRGVwZW5kZW5jaWVzKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbi4gRmlyc3QsIEkgbmVlZCB0byBtZXRob2RpY2FsbHkgY2hlY2sgdGhlIGRlcGVuZGVuY2llcyBhc3NvY2lhdGVkIHdpdGggdGhlIGBNVDc5MjFFYC4gTXkgaW1tZWRpYXRlIGdvYWwgaXMgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgaXRzIHBsYWNlIHdpdGhpbiB0aGUgd2lkZXIgc3lzdGVtLiBUaGlzIG1lYW5zIEknbSBub3QganVzdCBsb29raW5nIGZvciB0aGUgb2J2aW91cyBsaWJyYXJpZXMgYW5kIGRyaXZlcnMgaXQgY2FsbHMgdXBvbiwgYnV0IGFsc28gdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgYW5kIGZpcm13YXJlIGludGVyYWN0aW9ucy4gSSBuZWVkIHRvIGtub3cgKmV2ZXJ5dGhpbmcqIGl0IHRvdWNoZXMgYW5kIGV2ZXJ5dGhpbmcgdGhhdCB0b3VjaGVzIGl0LiBJcyB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0PyBXaGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIG9mIGEgY2hhbmdlIHVwc3RyZWFtP1xuXG5NeSBmb2N1cyB3aWxsIGJlIG9uIGlkZW50aWZ5aW5nOlxuXG4qICAgKipDb3JlIExpYnJhcmllczoqKiBUaGUgZXNzZW50aWFsIHNvZnR3YXJlIGNvbXBvbmVudHMgdGhhdCBgTVQ3OTIxRWAgcmVsaWVzIG9uIGZvciBmdW5kYW1lbnRhbCBmdW5jdGlvbmFsaXR5LiBUaGlzIG1heSBnbyBiZXlvbmQgdGhlIHVzdWFsIHN1c3BlY3RzLiBJIHdhbnQgdG8gZW5zdXJlIG15IGFzc3VtcHRpb25zIGFib3V0IHRoZXNlIGFyZSBhbGwgY3VycmVudCBhbmQgYWNjdXJhdGUuXG4qICAgKipEcml2ZXIgSW50ZXJhY3Rpb25zOioqIEhvdyB0aGlzIHNwZWNpZmljIGRyaXZlciBpbnRlcmZhY2VzIHdpdGggdGhlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIGFuZCBhbnkgYWJzdHJhY3Rpb24gbGF5ZXJzLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3Vlcywgb3IgcG9zc2libGUgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MsIGdpdmVuIHRoZSBhcmNoaXRlY3R1cmUgSSdtIGNvbmNlcm5lZCB3aXRoP1xuKiAgICoqSGFyZHdhcmUgQWJzdHJhY3Rpb24gTGF5ZXIgKEhBTCkgQ29tcG9uZW50czoqKiBVbmRlcnN0YW5kaW5nIHRoZSBoYXJkd2FyZS1zcGVjaWZpYyBkZXRhaWxzIHRoYXQgdGhlIGBNVDc5MjFFYCBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoLiBJJ20ga2VlbiB0byBkaXNjb3ZlciBpZiB0aGVyZSBhcmUgYW55IHN1YnRsZSBjaGFuZ2VzIGluIHRoZSBoYXJkd2FyZSB2ZXJzaW9uIHRoYXQgY291bGQgaW1wYWN0IHBlcmZvcm1hbmNlLlxuKiAgICoqRmlybXdhcmUgRGVwZW5kZW5jaWVzOioqIFRoZSBzcGVjaWZpYyBmaXJtd2FyZSB2ZXJzaW9ucyByZXF1aXJlZCBvciBzdXBwb3J0ZWQuIENvbXBhdGliaWxpdHkgbWF0cmljZXMgYXJlIGltcG9ydGFudCBoZXJlLCBhbmQgSSBuZWVkIHRvIGJlIHN1cmUgdGhhdCB0aGUgZmlybXdhcmUgaXMgZnVsbHkgYWxpZ25lZCB3aXRoIHRoZSBzb2Z0d2FyZS4gQWxzbywgSSdsbCByZXZpZXcgaG93IHVwZGF0ZXMgYXJlIGhhbmRsZWQuIEFueSBwb3RlbnRpYWwgbG9jay1pbj9cbiogICAqKkV4dGVybmFsIERlcGVuZGVuY2llczoqKiBBbnkgZGVwZW5kZW5jaWVzIG9uIGV4dGVybmFsIGxpYnJhcmllcyBvciBzZXJ2aWNlcyB0aGF0IG1pZ2h0IGJlIGluZGlyZWN0bHkgdXNlZCwgYW5kIHRoYXQgYXJlIG5vdCBpbW1lZGlhdGVseSBvYnZpb3VzLlxuKiAgICoqQ29uY3VycmVuY3kgQ29uc2lkZXJhdGlvbnM6KiogSWYgbXVsdGlwbGUgdGhyZWFkcyBvciBwcm9jZXNzZXMgbWlnaHQgaW50ZXJhY3Qgd2l0aCB0aGUgYE1UNzkyMUVgLCBob3cgYXJlIHRob3NlIGludGVyYWN0aW9ucyBjb29yZGluYXRlZD8gSXMgdGhlcmUgcmlzayBvZiByYWNlIGNvbmRpdGlvbnMgb3IgZGVhZGxvY2tzP1xuXG5JIHdpbGwgc3RhcnQgYnkgcmV2aWV3aW5nIGFueSBkb2N1bWVudGVkIGRlcGVuZGVuY3kgdHJlZXMsIEFQSSByZWZlcmVuY2VzLCBvciBidWlsZCBzY3JpcHRzLiBGcm9tIHRoZXJlLCBJJ2xsIGxldmVyYWdlIG15IGtub3dsZWRnZSBvZiB0aGUgc3lzdGVtIGFuZCBteSBleHBlcmllbmNlIHRvIGV4cGxvcmUgYW55IHVuZG9jdW1lbnRlZCBvciBpbXBsaWNpdCByZWxhdGlvbnNoaXBzLiBUaGlzIG1heSBtZWFuIGxvb2tpbmcgYXQgdGhlIHNvdXJjZSBjb2RlIGl0c2VsZiwgdHJhY2luZyBmdW5jdGlvbiBjYWxscywgb3IgYW5hbHl6aW5nIHN5c3RlbSBsb2dzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzM0OCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQxOjAwLjYxNDc0NDExNloiLCJTZXEiOjY0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1NDEwMDk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNVDc5MjFFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZz0yPWNvbmZpZyBNVDc5MjFfQ09NTU9OXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzo3OmNvbmZpZyBNVDc5MjFFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy04LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFFIChQQ0llKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTowMC43MzAxNTkwMDRaIiwiU2VxIjo2NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTg5MTM3NjAyMDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB3aGF0J3MgZ29pbmcgdGhyb3VnaCBteSBtaW5kIGFzIEkgYXBwcm9hY2ggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnYCBmaWxlLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGluIHRoZSBmaWVsZDpcblxuKipEaXZpbmcgaW50byB0aGUgTVQ3OTIxIEtjb25maWcqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgaW50byB0aGlzLiBJJ20gdGFraW5nIGEgbG9vayBhdCB0aGUgYEtjb25maWdgIGZvciB0aGUgTVQ3OTIxIGRyaXZlciB3aXRoaW4gdGhlIE1lZGlhdGVrIHdpcmVsZXNzIHN0YWNrLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gcXVpY2tseSBncmFzcCB0aGUgaGlnaC1sZXZlbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgS2NvbmZpZyBmaWxlIGRpY3RhdGVzIHdoYXQgZmVhdHVyZXMgYXJlIGJ1aWxkYWJsZSwgYW5kIHdoYXQgZGVwZW5kZW5jaWVzIGFyZSByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGlzIHBhcnRpY3VsYXIgODAyLjExYXggY2hpcHNldC5cblxuSSBleHBlY3QgdG8gc2VlIHRoZSB0eXBpY2FsIHN0cnVjdHVyZSBoZXJlOiB0b3AtbGV2ZWwgZmVhdHVyZSBmbGFncywgbWF5YmUgb3B0aW9ucyBmb3IgdGhpbmdzIGxpa2UgcG93ZXIgbWFuYWdlbWVudCwgcmVndWxhdG9yeSBkb21haW4gc2V0dGluZ3MsIHZhcmlvdXMgZGVidWdnaW5nIGxldmVscywgYW5kIHBvdGVudGlhbGx5IGRpZmZlcmVudCBvcGVyYXRpb25hbCBtb2RlcyBsaWtlIEFQLCBTVEEsIG9yIG1vbml0b3IuIEknbGwgYmUgbG9va2luZyBmb3IgYW55IHNpZ25zIG9mIG1vZHVsYXJpdHkgYW5kIGhvdyBjbGVhbmx5IHRoZSBjb2RlIGlzIGRlc2lnbmVkIHRvIGFsbG93IGNvbXBpbGUtdGltZSBjb25maWd1cmF0aW9uLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgbWFqb3IgY29uZmlndXJhYmxlIGFzcGVjdHMg4oCTIGRvZXMgaXQgc3VwcG9ydCBkdWFsLWJhbmQgb3BlcmF0aW9uPyBXaGF0IGFib3V0IHNwZWNpZmljIGZlYXR1cmVzIGZvciB0aGUgNkdIeiBiYW5kLCBpZiBhbnk/IEFyZSB0aGVyZSBhbnkgb3B0aW9ucyBmb3Igb2ZmbG9hZGluZyBwcm9jZXNzaW5nLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGhhcmR3YXJlIGFjY2VsZXJhdGlvbj8gQW5kLCBvZiBjb3Vyc2UsIHRoZSBldmVyLXByZXNlbnQgcXVlc3Rpb246IHdoYXQgYXJlIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zPyBBcmUgdGhleSByZWFzb25hYmxlLCBvciBhcmUgdGhlcmUgaGlkZGVuIFwiZ290Y2hhc1wiIEkgbmVlZCB0byBiZSBhd2FyZSBvZj9cblxuTXkgZ29hbCBpcyB0byB1bmRlcnN0YW5kIGhvdyBhIHVzZXIgd291bGQgZW5hYmxlIG9yIGRpc2FibGUgdmFyaW91cyBmdW5jdGlvbnMsIGFuZCB0byBhc3Nlc3MgdGhlIGZsZXhpYmlsaXR5IG9mIHRoZSBkcml2ZXIgY29uZmlndXJhdGlvbiBpdHNlbGYuIEFyZSB0aGVyZSBhbnkgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzIHRoYXQgbWlnaHQgY29tcGxpY2F0ZSB0aGluZ3MsIG9yIGFyZSB0aGluZ3Mgd2VsbC1vcmdhbml6ZWQgYW5kIGNsZWFybHkgZGVmaW5lZD8gQW55IHVudXN1YWwgb3IgdmVuZG9yLXNwZWNpZmljIG9wdGlvbnMgdGhhdCBtYXkgcmVxdWlyZSBjbG9zZXIgc3R1ZHk/IEknbGwgYWxzbyBiZSBzZWFyY2hpbmcgZm9yIGFueSBjbHVlcyBhYm91dCB0aGUgcGxhbm5lZCBjYXBhYmlsaXRpZXMgZm9yIHRoaXMgY2hpcHNldC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQwMjEsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MToxOS42NDM5MjE5NzZaIiwiU2VxIjo2NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA0NDEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkyMV9DT01NT05cXG4gICAzOlxcdFxcdHRyaXN0YXRlXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3OTJ4X0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXG4gICA3OlxcdGNvbmZpZyBNVDc5MjFFXFxuICAgODpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxRSAoUENJZSkgc3VwcG9ydFxcXCJcXG4gICA5OlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAxMDpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAxMTpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgMTI6XFx0XFx0aGVscFxcbiAgMTM6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG4gIDE2OlxcdFxcbiAgMTc6XFx0Y29uZmlnIE1UNzkyMVNcXG4gIDE4OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFTIChTRElPKSBzdXBwb3J0XFxcIlxcbiAgMTk6XFx0XFx0c2VsZWN0IE1UNzZfU0RJT1xcbiAgMjA6XFx0XFx0c2VsZWN0IE1UNzkyMV9DT01NT05cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMDk6NDE6MTkuNjQzOTgzNTY3WiIsIlNlcSI6NjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0NTk3MjY3OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRHJpdmVyIERlcGVuZGVuY2llcyBhbmQgRXhwbG9yYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgTVQ3OTIxRWAgYW5kIGltbWVkaWF0ZWx5IHNlZSBpdCByZWxpZXMgb24gYE1BQzgwMjExYCBhbmQgYFBDSWAuIE1ha2VzIHNlbnNlLCBzdGFuZGFyZCBzdHVmZi4gTm93IEknbSB3b25kZXJpbmcgaWYgdGhlcmUgYXJlIGFueSAqb3RoZXIqIFBDSSBkcml2ZXJzIGluIHRoaXMgZmFtaWx5LiBMZXQncyBzZWUuLi4gQWgsIHllcywgdGhlcmUncyBgTVQ3NjAzRWAsIGBNVDc2eDBFYCwgYE1UNzZ4MkVgLCBgTVQ3NjE1RWAsIGBNVDc5MTVFYCwgYE1UNzkyNUVgLCBhbmQgYE1UNzk5NkVgLiBHb3QgaXQuIE5vdywgZ2l2ZW4gdGhhdCBsaXN0LCBJIHRoaW5rIGl0J3Mgd29ydGggdGFraW5nIGEgY2xvc2VyIGxvb2sgYXQgYE1UNzkxNUVgLiBJdCdsbCBiZSBpbnRlcmVzdGluZyB0byBzZWUgaG93IGl0J3MgYXJjaGl0ZWN0ZWQgY29tcGFyZWQgdG8gYE1UNzkyMUVgLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc2OCwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQxOjI4LjEwMzcxMjU5WiIsIlNlcSI6NjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzQ5MTA2OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzkxNUVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZzoyOmNvbmZpZyBNVDc5MTVFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MToyOC4yMzg2MzI2MDhaIiwiU2VxIjo2OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDE2OTgyODM0MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGF0IEtjb25maWcgZmlsZTpcblxuKipBbmFseXppbmcgdGhlIG10NzkxNSBLY29uZmlnIEZpbGUqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpdmUgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L0tjb25maWdgIGZpbGUuIEknbSBleHBlY3RpbmcgdGhpcyB0byBiZSB0aGUgY2VudHJhbCBjb25maWd1cmF0aW9uIGh1YiBmb3IgdGhlIE1UNzkxNSB3aXJlbGVzcyBkcml2ZXIgd2l0aGluIHRoZSBicm9hZGVyIE1UNzYgZnJhbWV3b3JrLiBNeSBwcmltYXJ5IGZvY3VzIHdpbGwgYmUgb24gdW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhYmxlIG9wdGlvbnMuIEkgbmVlZCB0byBmaWd1cmUgb3V0OlxuXG4qICAgKipEZXBlbmRlbmNpZXM6KiogV2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3IgZHJpdmVyIGNvbXBvbmVudHMgaXMgdGhpcyBtb2R1bGUgZGVwZW5kZW50IG9uPyBXaGF0IG90aGVyIGRyaXZlcnMgbmVlZCB0byBiZSBlbmFibGVkIGJlZm9yZSBgbXQ3OTE1YCBjYW4gYmUgc2VsZWN0ZWQ/IEknbGwgbG9vayBmb3IgYGRlcGVuZHMgb25gIHN0YXRlbWVudHMuXG4qICAgKipEZWZhdWx0IEJlaGF2aW9yOioqIFdoYXQncyB0aGUgZGVmYXVsdCBzdGF0ZSBvZiB0aGUgb3B0aW9ucyDigJMgYXJlIHRoZXkgYnVpbHQtaW4sIG1vZHVsYXJpemVkLCBvciBkaXNhYmxlZD8gVGhpcyBnaXZlcyBtZSBhIHNlbnNlIG9mIHRoZSBkcml2ZXIncyBvdXQtb2YtdGhlLWJveCBjb25maWd1cmF0aW9uLiBJJ2xsIGJlIGxvb2tpbmcgZm9yIGBkZWZhdWx0YCBrZXl3b3Jkcy5cbiogICAqKkNvbmZpZ3VyYXRpb24gT3B0aW9uczoqKiBXaGF0IGNhbiBhIHVzZXIgY29udHJvbCByZWdhcmRpbmcgdGhlIGZlYXR1cmVzIG9mIHRoaXMgd2lyZWxlc3MgZHJpdmVyPyBUaGlzIGlzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgZmxhZ3MgZm9yIHRoaW5ncyBsaWtlIHJlZ3VsYXRvcnkgZG9tYWluIHNlbGVjdGlvbiwgcG93ZXIgbWFuYWdlbWVudCBvcHRpb25zLCBmaXJtd2FyZSBsb2FkaW5nLCBvciBwb3NzaWJseSBzcGVjaWZpYyBoYXJkd2FyZSBmZWF0dXJlcyBsaWtlIHNwZWNpZmljIDgwMi4xMSBzdGFuZGFyZHMuIEkgd2lsbCBsb29rIGZvciB2YXJpb3VzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyB0byBmaW5kIGFsbCBhdmFpbGFibGUgZmVhdHVyZXMuXG4qICAgKipSZWxhdGlvbnNoaXBzIHRvIG90aGVyIGZpbGVzOioqIEhvdyBpcyB0aGlzIEtjb25maWcgZmlsZSBzdHJ1Y3R1cmVkIGFuZCBob3cgZG9lcyBpdCByZWxhdGUgdG8gb3RoZXIgY29uZmlndXJhdGlvbiBmaWxlcyBpbiB0aGUgd2lkZXIgTVQ3NiBkaXJlY3RvcnkgdHJlZT8gSSBleHBlY3QgaXQgdG8gc291cmNlIG90aGVyIEtjb25maWcgZmlsZXMgYW5kIHBvdGVudGlhbGx5IGRlZmluZSBmdXJ0aGVyIGNvbmZpZ3VyYXRpb25zLlxuKiAgICoqRG9jdW1lbnRhdGlvbjoqKiBIb3BlZnVsbHksIHRoZXJlIGFyZSBzb21lIGRlY2VudCBjb21tZW50cy4gQW55IGNsZWFyIGRlc2NyaXB0aW9ucyBvZiB0aGUgb3B0aW9ucyBhcmUgYWx3YXlzIHdlbGNvbWUgYW5kIGhlbHAgaW4gdW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIGRpZmZlcmVudCBzZXR0aW5ncy5cblxuQnkgYW5hbHl6aW5nIHRoZXNlIGFzcGVjdHMsIEknbGwgYmUgYWJsZSB0byBxdWlja2x5IGdyYXNwIHRoZSBjb25maWd1cmFibGUgYXNwZWN0cyBvZiB0aGUgTVQ3OTE1IGRyaXZlci4gVGhpcyB3aWxsIGdpdmUgbWUgYSBzb2xpZCBmb3VuZGF0aW9uIGZvciBldmFsdWF0aW5nIGl0cyBzdWl0YWJpbGl0eSBmb3IgYSBzcGVjaWZpYyBzeXN0ZW0gb3IgdHJvdWJsZXNob290aW5nIHBvdGVudGlhbCBpc3N1ZXMuIFRoaXMgaXMgYSBjcnVjaWFsIGZpcnN0IHN0ZXAgZm9yIHByb3BlciBpbnRlZ3JhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzUyMjksIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTozMi40MDg0NjMxOTFaIiwiU2VxIjo3MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzEzNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxcbiAgIDI6XFx0Y29uZmlnIE1UNzkxNUVcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MTVFIChQQ0llKSBzdXBwb3J0XFxcIlxcbiAgIDQ6XFx0XFx0c2VsZWN0IE1UNzZfQ09OTkFDX0xJQlxcbiAgIDU6XFx0XFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNzpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgIDg6XFx0XFx0c2VsZWN0IFJFTEFZXFxuICAgOTpcXHRcXHRoZWxwXFxuICAxMDpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MTUtYmFzZWQgUENJZSB3aXJlbGVzcyBkZXZpY2VzLFxcbiAgMTE6XFx0XFx0ICB3aGljaCBzdXBwb3J0IGNvbmN1cnJlbnQgZHVhbC1iYW5kIG9wZXJhdGlvbiBhdCBib3RoIDVHSHpcXG4gIDEyOlxcdFxcdCAgYW5kIDIuNEdIeiBJRUVFIDgwMi4xMWF4IDR4NDo0U1MgMTAyNC1RQU0sIDE2ME1IeiBjaGFubmVscyxcXG4gIDEzOlxcdFxcdCAgT0ZETUEsIHNwYXRpYWwgcmV1c2UgYW5kIGR1YWwgY2FycmllciBtb2R1bGF0aW9uLlxcbiAgMTQ6XFx0XFxuICAxNTpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAxNjpcXHRcXG4gIDE3OlxcdGNvbmZpZyBNVDc5OFhfV01BQ1xcbiAgMTg6XFx0XFx0Ym9vbCBcXFwiTVQ3OTh4IChTb0MpIFdNQUMgc3VwcG9ydFxcXCJcXG4gIDE5OlxcdFxcdGRlcGVuZHMgb24gTVQ3OTE1RVxcbiAgMjA6XFx0XFx0ZGVwZW5kcyBvbiBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTozMi40MDg1MzU4NzFaIiwiU2VxIjo3MSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTk2ODcyODMzMjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYSBGdW5jdGlvbmFsIENoYW5nZSBpbiB0aGUgTVQ3NiBETUEgQ2xlYW51cCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggbW9kaWZ5aW5nIGBtdDc2X2RtYV9jbGVhbnVwYCBpbiB0aGUgTWVkaWF0ZWsgd2lyZWxlc3MgZHJpdmVyLCBzcGVjaWZpY2FsbHkgaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmNgLiBUaGUgY2hhbmdlIGludHJvZHVjZXMgYSBjaGVjayBmb3IgYG10NzZfcXVldWVfaXNfd2VkX3JybyhxKWAgYW5kIGNvbmRpdGlvbmFsbHkgY2FsbHMgYG5hcGlfZGlzYWJsZWAuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIG1vZGlmaWNhdGlvbiwgc28gbGV0J3MgZmlndXJlIG91dCBpdHMgcG90ZW50aWFsIGltcGFjdC5cblxuRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgY29kZSBwYXRoIGlzIGV2ZW4gcmVhY2hhYmxlLiBgbXQ3Nl9kbWFfY2xlYW51cGAgaXMgY2FsbGVkIGR1cmluZyBkZXZpY2UgdW5yZWdpc3RyYXRpb24gb3IgcHJvYmUgZmFpbHVyZSwgd2hpY2ggbWVhbnMgaWYgSSBjYW4gdHJpZ2dlciBlaXRoZXIgc2NlbmFyaW8sIEkgY2FuIGhpdCB0aGlzIGNvZGUuIENvbnNpZGVyaW5nIHRoZSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYE1UNzZfQ09SRWAgc2VlbXMgZXNzZW50aWFsLCB3aGljaCBpcyBzZWxlY3RlZCBieSBgTVQ3OTE1RWAsIGFsb25nIHdpdGggb3RoZXIgTVQ3OXh4IGFuZCBNVDc2eHggZHJpdmVycy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgcmVsZXZhbnQgY29kZSBpcyBjb21waWxlZCwgYW5kIGl0IGxvb2tzIGxpa2UgYG9iai0kKENPTkZJR19NVDc2X0NPUkUpICs9IG10NzYub2AgYW5kIGBtdDc2LXkgKz0gZG1hLm9gIHdpdGhpbiB0aGUgTWFrZWZpbGUgY29uZmlybXMgdGhhdCB0aGUgY29tcGlsYXRpb24gaW5jbHVkZXMgdGhlIGZpbGUuXG5cblRoZSBrZXkgcXVlc3Rpb24gaXMsIGNhbiBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXIgdHJpZ2dlciB0aGVzZSBldmVudHM/IFdlbGwsIHN5emthbGxlciBkb2VzIGhhdmUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzIGFuZCBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcy4gSSBrbm93IGl0IGNhbiBwcm9iZSBQQ0kgZGV2aWNlcyB1c2luZyBgc3l6X3BjaV9zZXR1cGAgYW5kIHNpbWlsYXIgZnVuY3Rpb25zIGFuZCBzaW11bGF0ZSBwcm9iZS9yZW1vdmUgY3ljbGVzLiBBbmQgaXQgKnNob3VsZCogdHJ5IHRvIHByb2JlIE1lZGlhdGVrIFdpLUZpIGRyaXZlcnMgaWYgdGhlIGNvbmZpZyBpcyBlbmFibGVkLiBTbywgeWVzLCBpZiBzeXprYWxsZXIgaXMgY29uZmlndXJlZCBmb3IgUENJIGZ1enppbmcsIHRoaXMgaXMgZGVmaW5pdGVseSByZWFjaGFibGUsIHBhcnRpY3VsYXJseSBpbiBhIHZpcnR1YWxpemVkIFFFTVUgZW52aXJvbm1lbnQuXG5cbk5vdywgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIEkga25vdyBJIG5lZWQgdG8gZW5hYmxlIGEgZHJpdmVyIGxpa2UgYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgb3Igb3RoZXJzIHRvIHB1bGwgaW4gYE1UNzZfQ09SRWAuIGBNVDc2X0NPUkVgIGlzIHRoZSBjb3JlIGxpYnJhcnkgdGhhdCBjb21waWxlcyBgZG1hLmNgLiBJIG5lZWQgdG8gZW5zdXJlIG9uZSBvZiB0aGVzZSBkcml2ZXJzIGlzIHNlbGVjdGVkLiBUaGUgYEtjb25maWdgIGNvbmZpcm1zIGBNVDc2X0NPUkVgIGlzIHRyaXN0YXRlLCBidXQgaXNuJ3QgZGlyZWN0bHkgdXNlci1zZWxlY3RhYmxlLCBzbyBJJ2xsIG5lZWQgdG8gZW5hYmxlIGEgZHJpdmVyIHRoYXQgKnNlbGVjdHMqIGl0LlxuXG5UbyBiZSBzYWZlLCBJJ2xsIHNwZWNpZnkgYSBmZXcgb2YgdGhlbSBpbiB0aGUgYEVuYWJsZUNvbmZpZ3NgOiBgTVQ3OTE1RWAsIGBNVDc5MjFFYCwgYE1UNzYxNUVgLCBgTVQ3NjAzRWAuXG5cbk9rYXksIG5vdyBmb3IgdGhlIGltcG9ydGFudCBiaXQ6IHdoYXQncyBgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpYD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbiBiZWluZyBjaGVja2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjA2MywiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkxMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQxOjUyLjA5NTgyMTg2MVoiLCJTZXEiOjcyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjg4Njg5MjQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzZfcXVldWVfaXNfd2VkX3Jyb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTE1OT1tdDc2X2RtYV9xdWV1ZV9tYWdpY19jbnRfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNjAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTYxOlxcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTYyLVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTY0LVxcdHEtXFx1MDAzZW1hZ2ljX2NudCA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxNjU6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTE2Ni1cXHRcXHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2Rlc2MgKnJyb19kZXNjO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNzctXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTc4OlxcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xNzktXFx0XFx0c3RydWN0IG10NzZfcnJvX3J4ZG1hZF9jICpkbWFkID0gKHZvaWQgKilxLVxcdTAwM2VkZXNjO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0yMDg9dm9pZCBtdDc2X2RtYV9xdWV1ZV9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgc3RydWN0IG10NzZfcXVldWUgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTIxMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjIxNDpcXHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjIxNTpcXHQgICAgIW10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcXHUwMDI2XFx1MDAyNiAhbXQ3Nl9xdWV1ZV9pc19ucHUocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTIxNi1cXHRcXHRpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9MjM1PW10NzZfZG1hX2FkZF9yeF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoyNDU6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTI0Ni1cXHRcXHRzdHJ1Y3QgbXQ3Nl93ZWRfcnJvX2Rlc2MgKnJyb19kZXNjO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNTAtXFx0XFx0Z290byBkb25lO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MjUxOlxcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNTItXFx0XFx0ZGF0YSA9IFxcdTAwMjZxLVxcdTAwM2VkZXNjW3EtXFx1MDAzZWhlYWRdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoyNjI6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3J4KHEpIHx8IG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0yNjMtXFx0XFx0dHh3aSA9IG10NzZfZ2V0X3J4d2koZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6Mjc5OlxcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMjgwLVxcdCAgICBkZXYtXFx1MDAzZWRydi1cXHUwMDNlcnhfcnJvX2FkZF9tc2R1X3BhZ2UpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NDk0PW10NzZfZG1hX2dldF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLCBpbnQgaWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01MDEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo1MDI6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcXHUwMDI2XFx1MDAyNiAhZmx1c2gpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01MDMtXFx0XFx0YnVmID0gbXQ3Nl9kbWFfZ2V0X3J4ZG1hZF9jX2J1ZihkZXYsIHEsIGlkeCwgbGVuLCBtb3JlKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTUwNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjUwNTpcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTA2LVxcdFxcdGdvdG8gZG9uZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9NTUxPW10NzZfZG1hX2RlcXVldWUoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLCBib29sIGZsdXNoLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01NTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo1NjA6XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHEpIHx8IG10NzZfcXVldWVfaXNfd2VkX3Jyb19tc2R1X3BnKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTYxLVxcdFxcdGdvdG8gZG9uZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTU2Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjU2MzpcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChxKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNTY0LVxcdFxcdHN0cnVjdCBtdDc2X3dlZF9ycm9faW5kICpjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTU3Ny1cXHRcXHRcXHRxLVxcdTAwM2VtYWdpY19jbnQgPSAocS1cXHUwMDNlbWFnaWNfY250ICsgMSkgJSBNVF9ETUFfV0VEX0lORF9DTURfQ05UO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6NTc4OlxcdH0gZWxzZSBpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy01NzktXFx0XFx0c3RydWN0IG10NzZfcnJvX3J4ZG1hZF9jICpkbWFkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz03NDk9bXQ3Nl9kbWFfcnhfZmlsbF9idWYoc3RydWN0IG10NzZfZGV2ICpkZXYsIHN0cnVjdCBtdDc2X3F1ZXVlICpxLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy03NjItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo3NjM6XFx0XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjc2NDpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtNzY1LVxcdFxcdFxcdGdvdG8gZG9uZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM9ODAyPW10NzZfZG1hX2FsbG9jX3F1ZXVlKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODE3OlxcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODE4LVxcdFxcdHNpemUgPSBzaXplb2Yoc3RydWN0IG10NzZfd2VkX3Jyb19kZXNjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODQ2LVxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4NDc6XFx0XFx0aWYgKChtdGtfd2VkX2dldF9yeF9jYXBhKFxcdTAwMjZkZXYtXFx1MDAzZW1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy04NDgtXFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3R4X2ZyZWUocSkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTg2MT1tdDc2X2RtYV9yeF9jbGVhbnVwKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODgyLVxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4ODM6XFx0XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTg4NC1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg2LVxcdFxcdGlmIChtdDc2X25wdV9kZXZpY2VfYWN0aXZlKGRldikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjg4NzpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg4LVxcdFxcdFxcdGNvbnRpbnVlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODg5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6ODkwOlxcdFxcdGlmICghbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHEpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo4OTE6XFx0XFx0ICAgICFtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtODkyLVxcdFxcdFxcdG10NzZfcHV0X3BhZ2VfcG9vbF9idWYoYnVmLCBmYWxzZSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTkwNT1tdDc2X2RtYV9yeF9yZXNldChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldiwgZW51bSBtdDc2X3J4cV9pZCBxaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkxMjpcXHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjkxMzpcXHQgICAgIW10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSBcXHUwMDI2XFx1MDAyNiAhbXQ3Nl9xdWV1ZV9pc19ucHUocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkxNC1cXHRcXHRpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtOTI4LVxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5Mjk6XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzMC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzMi1cXHRpZiAobXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShkZXYpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzo5MzM6XFx0ICAgIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTkzNC1cXHRcXHRyZXR1cm47XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTk3ND1tdDc2X2RtYV9yeF9wcm9jZXNzKHN0cnVjdCBtdDc2X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTI6XFx0XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3Jyb19pbmQocSkgXFx1MDAyNlxcdTAwMjYgZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXJ4X3Jyb19pbmRfcHJvY2VzcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTEwMTMtXFx0XFx0XFx0ZGV2LVxcdTAwM2VkcnYtXFx1MDAzZXJ4X3Jyb19pbmRfcHJvY2VzcyhkZXYsIGRhdGEpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjEwMTU6XFx0XFx0aWYgKG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmM6MTAxNjpcXHRcXHQgICAgIW10NzZfcXVldWVfaXNfd2VkX3Jyb19yeGRtYWRfYyhxKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTAxNy1cXHRcXHRcXHRkb25lKys7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jPTExMDg9bXQ3Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTEzOC1cXHRtdDc2X2Zvcl9lYWNoX3FfcngoZGV2LCBpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYzoxMTM5OlxcdFxcdGlmIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNmRldi1cXHUwMDNlcV9yeFtpXSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYy0xMTQwLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9kbWEuYz0xMTY3PXZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvZG1hLmMtMTE5MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jOjExOTI6XFx0XFx0aWYgKCFtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L2RtYS5jLTExOTMtXFx0XFx0XFx0bmFwaV9kaXNhYmxlKFxcdTAwMjZkZXYtXFx1MDAzZW5hcGlbaV0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg9MTk3MD1zdGF0aWMgaW5saW5lIGJvb2wgbXQ3Nl9xdWV1ZV9pc193ZWRfdHhfZnJlZShzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTk3NjpzdGF0aWMgaW5saW5lIGJvb2wgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5Nzcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTgxOnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5ODM6XFx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODQtXFx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cXHUwMDNlZmxhZ3MpID09IE1UNzZfV0VEX1JST19RX0lORDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2Lmg6MTk4NzpzdGF0aWMgaW5saW5lIGJvb2wgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX3J4ZG1hZF9jKHN0cnVjdCBtdDc2X3F1ZXVlICpxKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5ODgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oOjE5ODk6XFx0cmV0dXJuIG10NzZfcXVldWVfaXNfd2VkX3JybyhxKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3Ni5oLTE5OTAtXFx0ICAgICAgIEZJRUxEX0dFVChNVF9RRkxBR19XRURfVFlQRSwgcS1cXHUwMDNlZmxhZ3MpID09IE1UNzZfV0VEX1JST19RX1JYRE1BRF9DO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTkzOnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fZGF0YShzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xOTk0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk1OlxcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0xOTk2LVxcdCAgICAgICBGSUVMRF9HRVQoTVRfUUZMQUdfV0VEX1RZUEUsIHEtXFx1MDAzZWZsYWdzKSA9PSBNVDc2X1dFRF9SUk9fUV9EQVRBO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2LmgtMTk5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoxOTk5OnN0YXRpYyBpbmxpbmUgYm9vbCBtdDc2X3F1ZXVlX2lzX3dlZF9ycm9fbXNkdV9wZyhzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yMDAwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaDoyMDAxOlxcdHJldHVybiBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8ocSkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYuaC0yMDAyLVxcdCAgICAgICBGSUVMRF9HRVQoTVRfUUZMQUdfV0VEX1RZUEUsIHEtXFx1MDAzZWZsYWdzKSA9PVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9OTYwPXZvaWQgbXQ3OTk2X2RtYV9yZXNldChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyNy1cXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTAyODpcXHRcXHRcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKHEpIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTAyOS1cXHRcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfdHhfZnJlZShxKSkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwMzA6XFx0XFx0XFx0XFx0aWYgKGZvcmNlIFxcdTAwMjZcXHUwMDI2IG10NzZfcXVldWVfaXNfd2VkX3Jyb19kYXRhKHEpKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwMzEtXFx0XFx0XFx0XFx0XFx0bXQ3Nl9xdWV1ZV9yZXNldChkZXYsIHEsIGZhbHNlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTEwNDEtXFx0XFx0aWYgKG10a193ZWRfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKSBcXHUwMDI2XFx1MDAyNiBmb3JjZSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwNDI6XFx0XFx0ICAgIChtdDc2X3F1ZXVlX2lzX3dlZF9ycm9faW5kKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucV9yeFtpXSkgfHxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzoxMDQzOlxcdFxcdCAgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX21zZHVfcGcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTA0NC1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMjQ5LVxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMjUwOlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbaV0pKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIyNTEtXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMjY1LVxcdFxcdGlmIChtdGtfd2VkX2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCkgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMjY2OlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNm1kZXYtXFx1MDAzZXFfcnhbaV0pKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIyNjctXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzAyLVxcdFxcdG10NzZfZm9yX2VhY2hfcV9yeChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LCBpKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMwMzpcXHRcXHRcXHRpZiAobXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX2luZChcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbaV0pIHx8XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMwNDpcXHRcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvX21zZHVfcGcoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzA1LVxcdFxcdFxcdFxcdG10NzZfcXVldWVfcnhfcmVzZXQoZGV2LCBpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTI0NTE9dm9pZCBtdDc5OTZfbWFjX3Jlc2V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjUxNS1cXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjUxNjpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucV9yeFtpXSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjUxNy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1MTktXFx0XFx0aWYgKG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyNTIwOlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTIxLVxcdFxcdFxcdGNvbnRpbnVlO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjU3Ny1cXHRcXHRpZiAobXRrX3dlZF9kZXZpY2VfYWN0aXZlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubW1pby53ZWQpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjU3ODpcXHRcXHQgICAgbXQ3Nl9xdWV1ZV9pc193ZWRfcnJvKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYucV9yeFtpXSkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjU3OS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTI1ODEtXFx0XFx0aWYgKG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyNTgyOlxcdFxcdCAgICBtdDc2X3F1ZXVlX2lzX3dlZF9ycm8oXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W2ldKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yNTgzLVxcdFxcdFxcdGNvbnRpbnVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MTo1Mi4zODQ1MTU4MjdaIiwiU2VxIjo3MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTU3NDM2NzM4MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBBbmFseXNpczogbXQ3Nl9kbWFfY2xlYW51cCBpbiBNZWRpYXRlayBNVDc2IERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHRoaXMgYG10NzZfcXVldWVfaXNfd2VkX3Jyb2AgZnVuY3Rpb24gaXMgYSBzaW1wbGUgaW5saW5lIGNoZWNrOyBub3RoaW5nIGludGVyZXN0aW5nIHRoZXJlLCBqdXN0IGJhY2tncm91bmQgY29udGV4dC4gVGhlIGNvcmUgY2hhbmdlIGlzIGluIGBtdDc2X2RtYV9jbGVhbnVwYC4gVGhpcyBwYXRjaCBtb2RpZmllcyBgbXQ3Nl9kbWFfY2xlYW51cGAgdG8gKmF2b2lkKiBkaXNhYmxpbmcgYW5kIGRlbGV0aW5nIE5BUEkgKE5ldHdvcmsgQVBJKSBmb3IgV0VEIChXaXJlbGVzcyBFbmhhbmNlZCBEYXRhKSBSUk8gKFJlY2VpdmUgUmluZyBPcHRpbWl6ZWQpIHF1ZXVlcywgYW5kICppbXBvcnRhbnRseSosIGl0IGFkZHMgYSBtaXNzaW5nIGBuYXBpX2Rpc2FibGVgIGNhbGwgZm9yIHRoZSAqbm9uKi1XRUQgUlJPIHF1ZXVlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIOKAkyBpdCdzIGZpeGluZyBhIGJ1ZyBieSBwcmV2ZW50aW5nIE5BUEkgZGVsZXRpb24gZm9yIFdFRCBSUk8gcXVldWVzIGFuZCBwcmV2ZW50aW5nIGEgbWlzc2luZyBgbmFwaV9kaXNhYmxlYC5cblxuU28sIHRoZSBrZXkgaGVyZSBpcyBgbXQ3Nl9kbWFfY2xlYW51cGAuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXp6aW5nLiBUaGUgcXVlc3Rpb24gaXMgaG93IHRvIG1ha2UgaXQgaGFwcGVuLiBJIG5lZWQgdG8gdGhpbmsgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQuIEFoLCBpdCdzIGR1cmluZyBkZXZpY2UgdW5yZWdpc3RyYXRpb24hIFRoYXQncyBwcm9taXNpbmcuIEFyZSB0aGVyZSBvdGhlciBmdW5jdGlvbnMgYWZmZWN0ZWQ/IExldCdzIGNoZWNrIGBtdDc2X2RtYV9pbml0YCBvciBgbXQ3Nl9kbWFfcnhfY2xlYW51cGAuIEJ1dCByZWFsbHksIGBtdDc2X2RtYV9jbGVhbnVwYCBpcyB0aGUgZm9jdXMuXG5cbk5vdywgbGV0J3MgbG9vayBhdCB0aGUgY29uZmlndXJhdGlvbiBzaWRlIG9mIHRoaW5ncy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggY29uZmlncyBlbmFibGUgdGhlIHJlbGV2YW50IGNvZGUuIFRoZSBkcml2ZXJzIG9mIGludGVyZXN0IGFyZTogYE1UNzkxNUVgLCBgTVQ3OTIxRWAsIGBNVDc2MTVFYCwgYE1UNzYwM0VgLCBgTVQ3NngyRWAsIGBNVDc5MjVFYCwgYE1UNzk5NkVgLiAgU2luY2UgYE1UNzkyMUVgIGlzIGEgY29tbW9uIFBDSWUgY2FyZCwgbGV0J3MgcHJpb3JpdGl6ZSBpdCBhbmQgYE1UNzkxNUVgIGFuZCBgTVQ3NjE1RWAuIExldCdzIHZlcmlmeSBgTVQ3OTIxRWAgZGVwZW5kcyBvbiBgTUFDODAyMTFgLCBhbmQgYFBDSWAuIFBlcmZlY3QsIHRoZXNlIGFyZSBlYXNpbHkgcmVhY2hhYmxlLlxuXG5UaGUgY3JpdGljYWwgcGllY2U6IGNhbiB0aGlzIGJlIGhpdCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBsaWtlIHdpdGggc3l6a2FsbGVyPyAgWWVzISBQQ0kgZnV6emluZywgc3l6a2FsbGVyIGNhbiBwcm9iZSwgdGhlbiB1bnJlZ2lzdGVyIHRoZSBkZXZpY2UuIFRoaXMgdHJpZ2dlcnMgYG10NzZfZG1hX2NsZWFudXBgLCBhbmQgdGh1cyBpdCBpcyAqKndvcnRoIGZ1enppbmcqKi4gSSdtIHRhcmdldGluZyAgYG10NzZfZG1hX2NsZWFudXBgLlxuXG5Ob3csIGZvciBjb25maWd1cmF0aW9uLiAgV2UgY2FuIGZvY3VzIG9uIHRoZSBzYW1lIGRyaXZlcnM6IGBNVDc5MTVFYCwgYE1UNzkyMUVgLCBgTVQ3NjE1RWAsIGBNVDc2MDNFYCwgYE1UNzZ4MkVgLlxuXG5Pa2F5LCBsZXQncyBkb3VibGUtY2hlY2sgdGhlIGRlcGVuZGVuY2llcy4gIERvZXMgYE1UNzkyMUVgIGVuYWJsZSBgTVQ3Nl9DT1JFYD8gWWVzLiBgTVQ3OTIxRWAgc2VsZWN0cyBgTVQ3OTIxX0NPTU1PTmAsIHdoaWNoIHNlbGVjdHMgYE1UNzkyeF9MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPTk5BQ19MSUJgLCB3aGljaCBzZWxlY3RzIGBNVDc2X0NPUkVgLiAgU28gYE1UNzkyMUVgIGlzIHN1ZmZpY2llbnQuXG5cbkxldCBtZSB3cml0ZSBvdXQgdGhlIHJlYXNvbmluZzogVGhlIHBhdGNoIG1vZGlmaWVzIGBtdDc2X2RtYV9jbGVhbnVwYCB0byBjb3JyZWN0bHkgZGlzYWJsZSBhbmQgZGVsZXRlIE5BUEkgZm9yIHdpcmVsZXNzIGRyaXZlcnMsIGVzcGVjaWFsbHkgcmVsYXRlZCB0byB0aGUgaGFuZGxpbmcgb2YgV0VEIGFuZCBub24tV0VEIFJSTyBxdWV1ZXMuIFRoZSBmaXggaXMgY2FsbGVkIGR1cmluZyB0aGUgRE1BIGNsZWFudXAgcGF0aCB3aGVuIHRoZSBkZXZpY2UgdW5yZWdpc3RlcnMuIEJlY2F1c2UgdGhpcyBjYW4gYmUgcmVhY2hlZCB2aWEgUENJIGZ1enppbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgd2hpY2ggY2FuIHRyaWdnZXIgZGV2aWNlIHVucmVnaXN0cmF0aW9uLCBpdCdzIHdvcnRoIGZ1enppbmcuXG5cbkxldCdzIHJldmlldyB0aGUgY29kZSBvbmUgbW9yZSB0aW1lIHRvIG1ha2Ugc3VyZSBpdCdzIGFjY3VyYXRlOlxuXG5gYGBjXG5AQCAtMTE4OSw3ICsxMTg5LDEwIEBAIHZvaWQgbXQ3Nl9kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbiBcdG10NzZfZm9yX2VhY2hfcV9yeChkZXYsIGkpIHtcbiBcdFx0c3RydWN0IG10NzZfcXVldWUgKnEgPSBcdTAwMjZkZXYtXHUwMDNlcV9yeFtpXTtcbiBcbi1cdFx0bmV0aWZfbmFwaV9kZWwoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbaV0pO1xuK1x0XHRpZiAoIW10NzZfcXVldWVfaXNfd2VkX3JybyhxKSkge1xuK1x0XHRcdG5hcGlfZGlzYWJsZShcdTAwMjZkZXYtXHUwMDNlbmFwaVtpXSk7XG4rXHRcdFx0bmV0aWZfbmFwaV9kZWwoXHUwMDI2ZGV2LVx1MDAzZW5hcGlbaV0pO1xuK1x0XHR9XG4gXHRcdG10NzZfZG1hX3J4X2NsZWFudXAoZGV2LCBxKTtcbiBcbiBcdFx0cGFnZV9wb29sX2Rlc3Ryb3kocS1cdTAwM2VwYWdlX3Bvb2wpO1xuYGBgXG5cbll1cCwgaXQncyBhIGdvb2QgZml4LiBMZXQncyBzZWUgYWJvdXQgdGhlIGNvbmZpZ3VyYXRpb25zLiBgTUFDODAyMTFgIGlzIGFscmVhZHkgaW4gc3l6a2FsbGVyLiBgUENJYCBhbHNvIGlzIGluIHN5emthbGxlci4gU29cblxuIiwiSW5wdXRUb2tlbnMiOjQ0MTE4LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQwOTo0MjowOC4xMjgxOTIyMVoiLCJTZXEiOjc0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAxMDU1NzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1UNzk5NkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZzoyOmNvbmZpZyBNVDc5OTZFXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5OTYgKFBDSWUpIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQyOjA4LjE5ODMwMTIyWiIsIlNlcSI6NzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5OTQ0MjM1OTQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0czpcblxuKipBZGRpbmcgRHJpdmVyIFN1cHBvcnQqKlxuXG5Pa2F5LCBzbyBJJ20gZXhwYW5kaW5nIHRoZSBzY29wZSBoZXJlLiBEZWZpbml0ZWx5LCBgTVQ3OTk2RWAgZml0cyB0aGUgcHJvZmlsZSBhcyBhIFBDSSBkcml2ZXI7IHRoYXQncyBzb2xpZC4gVGltZSB0byBleHBhbmQgdGhlIGtub3duIHNldC4gSSdsbCBpbmNsdWRlIGBNVDc5MjFFYCwgYE1UNzkxNUVgLCBgTVQ3NjE1RWAsIGBNVDc2MDNFYCwgYE1UNzZ4MkVgIGFuZCBgTVQ3OTk2RWAgaW4gdGhlIGxpc3Qgb2YgUENJIGRyaXZlcnMgdGhhdCBhcmUga25vd24gdG8gd29yayB3aXRoIHRoZSBzeXN0ZW0uIFRoYXQgY292ZXJzIGEgYnJvYWRlciByYW5nZSBvZiB0aGUgaGFyZHdhcmUuIFRoZW4gSSdsbCBjcmVhdGUgYHNldC1yZXN1bHRzYCB0byBwcm9wZXJseSBjYWxsIGl0IG91dC4gXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NDk5LCJPdXRwdXRUb2tlbnMiOjE4NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDA5OjQyOjU4LjE0MjUzOTE4M1oiLCJTZXEiOjc2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNjI1MzM5NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxRVwiLFxuICAgIFwiTVQ3OTE1RVwiLFxuICAgIFwiTVQ3NjE1RVwiLFxuICAgIFwiTVQ3NjAzRVwiLFxuICAgIFwiTVQ3NngyRVwiLFxuICAgIFwiTVQ3OTk2RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZfZG1hX2NsZWFudXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIHRlYXJkb3duL2Vycm9yLWhhbmRsaW5nIHBhdGgsIHdoaWNoIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFBDSSBkZXZpY2UgZnV6emluZyAocHJvYmUvcmVtb3ZlIGN5Y2xlcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxRVwiLFxuICAgIFwiTVQ3OTE1RVwiLFxuICAgIFwiTVQ3NjE1RVwiLFxuICAgIFwiTVQ3NjAzRVwiLFxuICAgIFwiTVQ3NngyRVwiLFxuICAgIFwiTVQ3OTk2RVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzZfZG1hX2NsZWFudXBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgRE1BIGNsZWFudXAgcGF0aCAoYG10NzZfZG1hX2NsZWFudXBgKSBpbiB0aGUgTWVkaWF0ZWsgTVQ3NiB3aXJlbGVzcyBkcml2ZXIgY29yZS4gSXQgYWRkcyBhIG1pc3NpbmcgYG5hcGlfZGlzYWJsZWAgY2FsbCBhbmQgcHJldmVudHMgZGlzYWJsaW5nL2RlbGV0aW5nIE5BUEkgZm9yIFdFRCBSUk8gcXVldWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGRyaXZlcidzIHRlYXJkb3duL2Vycm9yLWhhbmRsaW5nIHBhdGgsIHdoaWNoIGNhbiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdmlhIFBDSSBkZXZpY2UgZnV6emluZyAocHJvYmUvcmVtb3ZlIGN5Y2xlcykuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[1] Phase: Succeeded StartedAt: 2026-07-09 09:44:40 +0000 UTC FinishedAt: 2026-07-09 09:44:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-09 09:44:40 +0000 UTC FinishedAt: 2026-07-09 09:44:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2] Phase: Succeeded StartedAt: 2026-07-09 09:44:40 +0000 UTC FinishedAt: 2026-07-09 11:25:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-09 09:44:40 +0000 UTC FinishedAt: 2026-07-09 11:25:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-09 09:44:40 +0000 UTC FinishedAt: 2026-07-09 09:45:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-09 09:44:40 +0000 UTC FinishedAt: 2026-07-09 09:44:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowxq8zg/series-workflowxq8zg-convert-artifact-3265554281/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-09 09:45:01 +0000 UTC FinishedAt: 2026-07-09 10:26:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-09 09:45:01 +0000 UTC FinishedAt: 2026-07-09 10:26:53 +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:*29781803-70b5-42ab-ba80-cdb974dab261,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-workflowxq8zg/series-workflowxq8zg-convert-artifact-3265554281/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": "ebcff837-8f99-4d39-aa07-d4bda9f42a2d", "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-workflowxq8zg/series-workflowxq8zg-build-action-1669872327/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-09 09:45:01 +0000 UTC FinishedAt: 2026-07-09 10:25:06 +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:*29781803-70b5-42ab-ba80-cdb974dab261,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-workflowxq8zg/series-workflowxq8zg-convert-artifact-3265554281/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": "ebcff837-8f99-4d39-aa07-d4bda9f42a2d", "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-workflowxq8zg/series-workflowxq8zg-build-action-1669872327/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-09 10:26:53 +0000 UTC FinishedAt: 2026-07-09 10:26:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-09 10:26:53 +0000 UTC FinishedAt: 2026-07-09 10:26:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-09 10:26:53 +0000 UTC FinishedAt: 2026-07-09 10:28:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-09 10:26:53 +0000 UTC FinishedAt: 2026-07-09 10:27:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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-workflowxq8zg/series-workflowxq8zg-convert-artifact-3458462460/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-09 10:28:21 +0000 UTC FinishedAt: 2026-07-09 10:30:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-09 10:28:21 +0000 UTC FinishedAt: 2026-07-09 10:30:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ebcff837-8f99-4d39-aa07-d4bda9f42a2d,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-workflowxq8zg/series-workflowxq8zg-build-action-1669872327/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-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-09 10:30:24 +0000 UTC FinishedAt: 2026-07-09 10:30:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-09 10:30:24 +0000 UTC FinishedAt: 2026-07-09 10:30:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-09 10:30:24 +0000 UTC FinishedAt: 2026-07-09 11:20:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-09 10:30:24 +0000 UTC FinishedAt: 2026-07-09 11:20:00 +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:*29781803-70b5-42ab-ba80-cdb974dab261,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-workflowxq8zg/series-workflowxq8zg-convert-artifact-3458462460/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": "3e98fcfd-6acc-4b2f-882d-fec3b1b085c7", "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-workflowxq8zg/series-workflowxq8zg-build-action-472543064/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-09 10:30:24 +0000 UTC FinishedAt: 2026-07-09 11:19:20 +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:*29781803-70b5-42ab-ba80-cdb974dab261,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-workflowxq8zg/series-workflowxq8zg-convert-artifact-3458462460/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": "3e98fcfd-6acc-4b2f-882d-fec3b1b085c7", "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-workflowxq8zg/series-workflowxq8zg-build-action-472543064/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-09 11:20:00 +0000 UTC FinishedAt: 2026-07-09 11:20:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-09 11:20:00 +0000 UTC FinishedAt: 2026-07-09 11:20:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-09 11:20:00 +0000 UTC FinishedAt: 2026-07-09 11:22:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-09 11:20:00 +0000 UTC FinishedAt: 2026-07-09 11:21:59 +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:*3e98fcfd-6acc-4b2f-882d-fec3b1b085c7,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-workflowxq8zg/series-workflowxq8zg-build-action-472543064/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-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-09 11:22:09 +0000 UTC FinishedAt: 2026-07-09 11:25:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-09 11:22:09 +0000 UTC FinishedAt: 2026-07-09 11:25:39 +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":["mt76_dma_cleanup"],"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:*ebcff837-8f99-4d39-aa07-d4bda9f42a2d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3e98fcfd-6acc-4b2f-882d-fec3b1b085c7,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-workflowxq8zg/series-workflowxq8zg-build-action-1669872327/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-workflowxq8zg/series-workflowxq8zg-build-action-472543064/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-09 11:22:09 +0000 UTC FinishedAt: 2026-07-09 11:22:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-09 11:22:09 +0000 UTC FinishedAt: 2026-07-09 11:22:37 +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":["mt76_dma_cleanup"],"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-workflowxq8zg/series-workflowxq8zg-convert-artifact-2318169029/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-09 11:22:09 +0000 UTC FinishedAt: 2026-07-09 11:22:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-09 11:22:09 +0000 UTC FinishedAt: 2026-07-09 11:22:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-09 11:22:09 +0000 UTC FinishedAt: 2026-07-09 11:22:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-09 11:22:45 +0000 UTC FinishedAt: 2026-07-09 11:25:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxq8zg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-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":["mt76_dma_cleanup"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"50a7f9f9d48eb50c0e95bef53358acb5af5cb3c6","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921E","MT7915E","MT7615E","MT7603E","MT76x2E","MT7996E"],"series_id":"ec5e2ec0-312a-45ec-a304-51cf1e3b3973","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-09 11:22:45 +0000 UTC FinishedAt: 2026-07-09 11:25:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ebcff837-8f99-4d39-aa07-d4bda9f42a2d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3e98fcfd-6acc-4b2f-882d-fec3b1b085c7,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-workflowxq8zg/series-workflowxq8zg-build-action-1669872327/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-workflowxq8zg/series-workflowxq8zg-build-action-472543064/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-workflowxq8zg/series-workflowxq8zg-convert-artifact-2318169029/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,}