Name: series-workflow8496b Phase: Succeeded StartedAt: 2026-08-02 02:36:18 +0000 UTC FinishedAt: 2026-08-02 03:50:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[0] Phase: Succeeded StartedAt: 2026-08-02 02:36:18 +0000 UTC FinishedAt: 2026-08-02 03:00:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[0].run-triage Phase: Succeeded StartedAt: 2026-08-02 02:36:18 +0000 UTC FinishedAt: 2026-08-02 03:00:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTUALIZATION", "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTUALIZATION", "KVM" ], "series_id": "687361b2-3b95-4508-90d4-65f74f6e27eb" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_riscv_vcpu_timer_restore", "kvm_riscv_vcpu_set_reg_timer", "kvm_riscv_vcpu_timer_deinit", "kvm_riscv_vcpu_timer_reset" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZJUlRVQUxJWkFUSU9OJiMzNDssCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmUmIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lciYjMzQ7LAogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQmIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uIGluIHRoZSBSSVNDLVYgS1ZNIGltcGxlbWVudGF0aW9uLiBJdCBjaGFuZ2VzIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIHdoZW4gY2FuY2VsbGluZyBhIFZDUFUgdGltZXIsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRpbWVyIHN0YXRlIG1hbmFnZW1lbnQuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMgKGUuZy4sIEtWTV9TRVRfT05FX1JFRywgS1ZNX1JVTikgYW5kIFZDUFUgbGlmZWN5Y2xlIGV2ZW50cy4gRnV6emluZyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgdGhlIG5ldyB0aW1lciBjYW5jZWxsYXRpb24gbG9naWMgZG9lcyBub3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGIyMzg5N2YxNDdhNWUwMDU1MzA5YWUxNDhlMmQwOWUyNDljYzczZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDAzOjAwOjAyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1xuaW5kZXggYWU1MzEzM2M3YWIwMy4uYTJjZDI3N2E0MDU5NiAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXG5AQCAtNjEsMTAgJiM0Mzs2MSwxMyBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxuIFxuIHN0YXRpYyBpbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKHN0cnVjdCBrdm1fdmNwdV90aW1lciAqdClcbiB7XG4tXHRpZiAoIXQtXHUwMDNlaW5pdF9kb25lIHx8ICF0LVx1MDAzZW5leHRfc2V0KVxuJiM0MztcdGlmICghdC1cdTAwM2Vpbml0X2RvbmUpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aHJ0aW1lcl9jYW5jZWwoXHUwMDI2dC1cdTAwM2VocnQpO1xuJiM0MztcbiYjNDM7XHRpZiAoIXQtXHUwMDNlbmV4dF9zZXQpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdHQtXHUwMDNlbmV4dF9zZXQgPSBmYWxzZTtcbiBcbiBcdHJldHVybiAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWSVJUVUFMSVpBVElPTiYjMzQ7LAogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlJiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXImIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0JiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiMjM4OTdmMTQ3YTVlMDA1NTMwOWFlMTQ4ZTJkMDllMjQ5Y2M3M2Q3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBBdWcgMiAwMzowMDowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYwppbmRleCBhZTUzMTMzYzdhYjAzLi5hMmNkMjc3YTQwNTk2IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jCkBAIC02MSwxMCAmIzQzOzYxLDEzIEBAIHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBrdm1fcmlzY3ZfdmNwdV9ocnRpbWVyX2V4cGlyZWQoc3RydWN0IGhydGltZXIgKmgpCiAKIHN0YXRpYyBpbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKHN0cnVjdCBrdm1fdmNwdV90aW1lciAqdCkKIHsKLQlpZiAoIXQtJmd0O2luaXRfZG9uZSB8fCAhdC0mZ3Q7bmV4dF9zZXQpCiYjNDM7CWlmICghdC0mZ3Q7aW5pdF9kb25lKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWhydGltZXJfY2FuY2VsKCZhbXA7dC0mZ3Q7aHJ0KTsKJiM0MzsKJiM0MzsJaWYgKCF0LSZndDtuZXh0X3NldCkKJiM0MzsJCXJldHVybiAtRUlOVkFMOwogCXQtJmd0O25leHRfc2V0ID0gZmFsc2U7CiAKIAlyZXR1cm4gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNwoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDE3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdHdlYWtpbmcgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AsIHNwZWNpZmljYWxseSB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGlzIHRoZSByZW9yZGVyaW5nIG9mIGBocnRpbWVyX2NhbmNlbCgmYW1wO3QtJmd0O2hydCk7YCBiZWZvcmUgdGhhdCBgaWYgKCF0LSZndDtuZXh0X3NldCkgcmV0dXJuIC1FSU5WQUw7YCBjaGVjay4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgY2hhbmdlIHdpdGhpbiBLVk0gZm9yIFJJU0MtVi4gTXkgaW1tZWRpYXRlIHRob3VnaHQsIGFzIGFsd2F5cywgaXMgJiMzNDtDYW4gd2UgZnV6eiB0aGlzPyYjMzQ7CgpLVk0gb24gUklTQy1WLi4uIHBvdGVudGlhbGx5IGV4cGxvaXRhYmxlIHZ1bG5lcmFiaWxpdGllcyBhcmUgYWx3YXlzIGx1cmtpbmcsIGFuZCBmdXp6aW5nIGlzIGEgZmFudGFzdGljIHdheSB0byBmZXJyZXQgdGhlbSBvdXQuIFdlICpzaG91bGQqIGJlIGFibGUgdG8gZnV6eiBLVk0gaWYgd2UgZW5hYmxlIGl0IGZvciBSSVNDLVYsIHJpZ2h0PyBTeXprYWxsZXIgc3VwcG9ydHMgS1ZNLCB0aGF0JiMzOTtzIGEgZ2l2ZW4uIEJ1dCBkb2VzIGl0IGhhbmRsZSBSSVNDLVYgS1ZNIHNwZWNpZmljYWxseT8gQSBxdWljayBzZWFyY2jigKYgWWVwLCBTeXprYWxsZXIgZG9lcyBpbmRlZWQgc3VwcG9ydCBSSVNDLVYuIEFuZCBLVk0gaXMsIG9mIGNvdXJzZSwgYSBmdW5kYW1lbnRhbCBmZWF0dXJlLgoKQWxyaWdodCwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoYXQgS1ZNIGZvciBSSVNDLVYgaXMgY29uZmlndXJhYmxlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgc2VlIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBHb3R0YSB2ZXJpZnkgdGhhdCB0aGlzIGNvZGUgcGF0aCBpcyBldmVuIGFjY2Vzc2libGUgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz00Mz1zdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy02MS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzo2MjpzdGF0aWMgaW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChzdHJ1Y3Qga3ZtX3ZjcHVfdGltZXIgKnQpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtNjMte1xuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0xNTk9c3RhdGljIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfdW5ibG9ja2luZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMTYwLXtcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoxNjE6XHRrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXHUwMDI2dmNwdS1cdTAwM2VhcmNoLnRpbWVyKTtcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNjItfVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yMDQ9aW50IGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yMzgtXHRcdGVsc2VcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyMzk6XHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKHQpO1xuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI0MC1cdFx0YnJlYWs7XG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTI3NT1pbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjc4LVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjI3OTpcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChcdTAwMjZ2Y3B1LVx1MDAzZWFyY2gudGltZXIpO1xuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI4MC1cdHZjcHUtXHUwMDNlYXJjaC50aW1lci5pbml0X2RvbmUgPSBmYWxzZTtcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9Mjg1PWludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI4OS1cdHQtXHUwMDNlbmV4dF9jeWNsZXMgPSAtMVVMTDtcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyOTA6XHRyZXR1cm4ga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKFx1MDAyNnZjcHUtXHUwMDNlYXJjaC50aW1lcik7XG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjkxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzIwCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaW1lciBDYW5jZWxsYXRpb24gaW4gdGhlIEtWTSBSSVNDLVYgSW1wbGVtZW50YXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRpbWVyIGNhbmNlbGxhdGlvbiB3b3JrcyB3aXRoaW4gdGhlIEtWTSBSSVNDLVYgaW1wbGVtZW50YXRpb24uIFRoZSBzdGFydGluZyBwb2ludCBpcyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCwgd2hpY2ggaXMgYSBzdGF0aWMgZnVuY3Rpb24sIG1lYW5pbmcgaXQmIzM5O3Mgb25seSB2aXNpYmxlIHdpdGhpbiB0aGUgY3VycmVudCB0cmFuc2xhdGlvbiB1bml0LiBUaGF0IG5hdHVyYWxseSBsZWFkcyBtZSB0byBpbnZlc3RpZ2F0ZSB0aGUgY2FsbCBzaXRlcy4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgY29kZSBjYWxscyBpdCBmcm9tIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCAoYWxzbyBzdGF0aWMpLCBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC4KClNpbmNlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCBpcyBzdGF0aWMgYXMgd2VsbCwgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBpbnRlcm5hbC4gTm93LCBJIHNob3VsZCBleGFtaW5lIGBrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyYCwgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdGAsIGFuZCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgIGluIG1vcmUgZGV0YWlsLiBUaGVzZSBhcmUgdGhlIHB1YmxpYy1mYWNpbmcgZnVuY3Rpb25zIHRoYXQgaW50ZXJhY3Qgd2l0aCB0aGUgdGltZXIgY2FuY2VsbGF0aW9uIG1lY2hhbmlzbSwgc28gdGhleSYjMzk7cmUgbGlrZWx5IHdoZXJlIHRoZSBpbnRlcmVzdGluZyBiZWhhdmlvciBsaWVzLiBJIHNob3VsZCBsb29rIGludG8gaG93IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIGludGVyYWN0cyB3aXRoIHRoZSB0aW1lciBhbmQsIHNwZWNpZmljYWxseSwgaG93IHRoZXkgaW52b2tlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLiBUaGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGluIHdoaWNoIHRoZSB0aW1lciBpcyBjYW5jZWxsZWQgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjYW5jZWxsYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfdW5ibG9ja2luZyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MTQ1PXN0YXRpYyB2b2lkIGt2bV9yaXNjdl92Y3B1X3RpbWVyX2Jsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMTU4LVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjE1OTpzdGF0aWMgdm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNjAte1xuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0zMDU9dm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMzI1LVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjMyNjpcdGt2bV9yaXNjdl92Y3B1X3RpbWVyX3VuYmxvY2tpbmcodmNwdSk7XG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMzI3LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTEyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkRpdmluZyBpbnRvIHRoZSBSSVNDLVYgS1ZNIFRpbWVyIFJlc3RvcmF0aW9uKioKClJpZ2h0LCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAgaXMgYSBwcmltZSBjYW5kaWRhdGUgdG8gcmVhbGx5IGRpZyBpbnRvLiBUaGF0IGZ1bmN0aW9uIG5hbWUgaXRzZWxmIHNjcmVhbXMgJiMzNDtpbXBvcnRhbnQgZm9yIHZpcnR1YWxpemF0aW9uJiMzNDsuIE15IGZvY3VzIGlzIGxhc2VyLWd1aWRlZDsgSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0JiMzOTtzIGEga2V5IHBhcnQgb2YgdGhlIHRpbWVyIGhhbmRsaW5nIHdpdGhpbiBLVk0gb24gUklTQy1WLCBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgY29tcGxldGVseS4gQmVmb3JlIEkgZ2V0IGxvc3QgaW4gdGhlIGNvZGUsIGxldCYjMzk7cyBnbyBiYWNrIHRvIGJhc2ljcywgdGhvdWdoLiBBIHF1aWNrIEtjb25maWcgY2hlY2sgZm9yIEtWTSBzdXBwb3J0IG9uIFJJU0MtViBpcyBpbiBvcmRlciB0byBjb25maXJtIG15IGFzc3VtcHRpb25zIGFuZCBlbnN1cmUgdGhlIEtjb25maWcgcGFyYW1ldGVycyBhcmVuJiMzOTt0IGhpZGluZyBhbnkgcXVpcmtzIG9yIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIHRoaXMuIEkmIzM5O2xsIGdldCB0aGUgbGF5IG9mIHRoZSBsYW5kIGJlZm9yZSBJIGRpdmUgaW50byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gTGV0JiMzOTtzIHNlZSB3aGF0IEtjb25maWcgaGFzIHRvIHNheS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ4NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRW5hYmxpbmcgS1ZNOiBBIFF1aWNrIE1lbnRhbCBDaGVja2xpc3QqKgoKQWxyaWdodCwgS1ZNJiMzOTtzIG9uIHRoZSB0YWJsZS4gU2VlbXMgbGlrZSBhIGdvb2QgbW92ZSBpbiBnZW5lcmFsLiBCdXQgYmVmb3JlIEkgc3RhcnQgdGhlIHByb2Nlc3MsIGxldCBtZSBxdWlja2x5IHJ1biB0aHJvdWdoIG15IG1lbnRhbCBjaGVja2xpc3QuIEZpcnN0IHRob3VnaHQ6IGlzIHRoaXMgZ29pbmcgdG8gYmUgYSBzdHJhaWdodGZvcndhcmQgZW5hYmxlLCBvciBhbSBJIGdvaW5nIHRvIGJlIGRlYWxpbmcgd2l0aCBkZXBlbmRlbmNpZXMgYW5kIG90aGVyIGdvdGNoYXM/IE5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG92ZXJsb29raW5nIHNvbWV0aGluZyBvYnZpb3VzIG9yIGluYWR2ZXJ0ZW50bHkgYnJlYWtpbmcgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMuIEdvdHRhIGRvdWJsZS1jaGVjayB0aGF0IGl04oCZcyBub3QgZ29pbmcgdG8gc3RlcCBvbiBhbnkgb3RoZXIgdmlydHVhbGl6YXRpb24gdGVjaG5vbG9naWVzLCBvciByZXF1aXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgbW9kdWxlcyB0aGF0IGFyZW7igJl0IGxvYWRlZC4gTGV0JiMzOTtzIHNlZS4uLiBpcyB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0PwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0c291cmNlIFwmIzM0O3ZpcnQva3ZtL0tjb25maWdcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXG4gICA5Olx0XHRib29sIFwmIzM0O1ZpcnR1YWxpemF0aW9uXCYjMzQ7XG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXG4gIDEyOlx0XHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxuICAxNDpcdFxuICAxNTpcdFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXG4gIDE2Olx0XHQgIGRpc2FibGVkLlxuICAxNzpcdFxuICAxODpcdGlmIFZJUlRVQUxJWkFUSU9OXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEtWTVxuICAyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIFJJU0NWX1NCSSBcdTAwMjZcdTAwMjYgTU1VXG4gIDIzOlx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxuICAyNDpcdFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXG4gIDI1Olx0XHRzZWxlY3QgSEFWRV9LVk1fTVNJXG4gIDI2Olx0XHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXG4gIDI3Olx0XHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXG4gIDI4Olx0XHRzZWxlY3QgS1ZNX0NPTU1PTlxuICAyOTpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxuICAzMDpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXG4gIDMxOlx0XHRzZWxlY3QgS1ZNX01NSU9cbiAgMzI6XHRcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xuICAzMzpcdFx0c2VsZWN0IFNDSEVEX0lORk9cbiAgMzQ6XHRcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xuICAzNTpcdFx0aGVscFxuICAzNjpcdFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMuXG4gIDM3Olx0XG4gIDM4Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDM5Olx0XG4gIDQwOlx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjAxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW1tZWRpYXRlIFRob3VnaHRzIG9uIEtWTSBhbmQgVmlydHVhbGl6YXRpb24qKgoKT2theSwgc28gdGhlIGluaXRpYWwgZm9jdXMgaXMgdG8gZW5zdXJlIGBLVk1gIGFuZCBgVklSVFVBTElaQVRJT05gIGFyZSBlbmFibGVkLiBBIG1lbnRhbCBub3RlIC0gYFZJUlRVQUxJWkFUSU9OYCBpcyBoYW5kbGVkIHRocm91Z2ggYSBgbWVudWNvbmZpZ2AuIEFscmlnaHQsIGxldCYjMzk7cyBjb25maXJtIHRoZSBgdmNwdV90aW1lci5jYCBmaWxlIGxvY2F0ZWQgYXQgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AgaXMgYWN0dWFsbHkgY29tcGlsZWQgd2l0aCBgS1ZNYC4gVGhpcyYjMzk7bGwgdmVyaWZ5IHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGFuZCBjb25maXJtIHRoZSBpbnRlbmRlZCBpbnRlZ3JhdGlvbiBvZiB0aGUgY29yZSBmdW5jdGlvbmFsaXRpZXMuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvbmZpcm1hdGlvbiBJIG5lZWQgdG8gbW92ZSBmb3J3YXJkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y3B1X3RpbWVyLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT00MD1rdm0teSAmIzQzOz0gdmNwdV9zd2l0Y2gub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6NDE6a3ZtLXkgJiM0Mzs9IHZjcHVfdGltZXIub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUtNDIta3ZtLXkgJiM0Mzs9IHZjcHVfdmVjdG9yLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTUxMAoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDI0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLVk0gUklTQy1WIFRpbWVyIEZ1bmN0aW9uYWxpdHkgLSBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyB0aGlzIGNvZGUgaXMgZGVmaW5pdGVseSBjb21waWxlZCB3aXRoIGBDT05GSUdfS1ZNYCwgdGhhdCBtdWNoIGlzIGNsZWFyLiBUaGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IHNwZWNpZmljYWxseSB0b3VjaGVzIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLCBhbmQgdGhhdCYjMzk7cyBpbnRlcmVzdGluZyBiZWNhdXNlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGEgZmV3IGtleSBwbGFjZXM6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCwgd2hpY2ggaW4gdHVybiBjYWxscyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAsIGFuZCBhbHNvIGRpcmVjdGx5IGZyb20gYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEZyb20gYSBmdW5jdGlvbmFsIHN0YW5kcG9pbnQsIHRoZXNlIGFyZSBhbGwgbW9kaWZpY2F0aW9ucyB3aXRoaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uCgpUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlc2UgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSByZWFjaGFibGUsIGFuZCB0aGUgYW5zd2VyIGlzIHllcywgdGhleSBhcmUsIHZpYSBLVk0gaW9jdGxzLiBUaGF0IG1ha2VzIHRoaXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBmb2N1cyBteSBlZmZvcnRzIG9uIHRob3NlIHNwZWNpZmljIHN5bWJvbHM6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCwgYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEkgc2hvdWxkIGNoZWNrIGlmIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiByaWdodCBhd2F5LCBzaW5jZSB0aGF0IGltcGFjdHMgYWNjZXNzaWJpbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MjkzPXN0YXRpYyB2b2lkIGt2bV9yaXNjdl92Y3B1X3VwZGF0ZV90aW1lZGVsdGEoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMDQtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6MzA1OnZvaWQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMzA2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjI2NQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBFcGhlbWVyYWwgTGFuZHNjYXBlIG9mIENvZGUqKgoKT2theSwgc28gSSYjMzk7bSBub3QgbG9va2luZyBhdCBhIGZpeGVkIHRhcmdldCBoZXJlLiBUaGlzIGlzbiYjMzk7dCBhIHNpbXBsZSwgZWFzaWx5IGNhdGVnb3JpemVkIHNpdHVhdGlvbi4gSXQmIzM5O3MgZmx1aWQsIGR5bmFtaWMsIGFuZCB0aGUgcmVhbCBpc3N1ZSBpcyBsaWtlbHkgZGVlcGVyIHRoYW4gdGhlIHN1cmZhY2UgcmV2ZWFscy4gSSYjMzk7bSB0cnlpbmcgdG8gZ3Jhc3AgdGhlIGtleSBjb25zaWRlcmF0aW9ucy4KCk15IHRyYWluIG9mIHRob3VnaHQgaXMgdGFraW5nIG1lIHRvd2FyZCB0aGF0IGBrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyYCBmdW5jdGlvbi4gSXQgc2VlbXMgdG8gYmUga2V5IGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoaXMgc3lzdGVtLiBJIG5lZWQgdG8gZXhwbG9yZSBob3cgdGhpcyBmdW5jdGlvbiB3b3JrcywgYW5kIHdoYXQgdGhlIGNvbnNlcXVlbmNlcyBhcmUgb2YgY2FsbGluZyBpdCB1bmRlciBkaWZmZXJlbnQgY2lyY3Vtc3RhbmNlcy4gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGF0LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoYXQgZnVuY3Rpb24gYXMgYSBwb3RlbnRpYWwgY3JpdGljYWwgcGllY2Ugb2YgdGhpcyBwdXp6bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTE2ND1pbnQga3ZtX3Jpc2N2X3ZjcHVfZ2V0X3JlZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTIwMy1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyMDQ6aW50IGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTIwNS1cdFx0XHRcdCBjb25zdCBzdHJ1Y3Qga3ZtX29uZV9yZWcgKnJlZylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjY3NQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqUmVmbGVjdGluZyBvbiB0aGUgRHluYW1pYyBOYXR1cmUgb2YgdGhlIENvZGViYXNlKioKCkhtbSwgdGhpcyBjb2RlIGlzbiYjMzk7dCBqdXN0IGEgc3RhdGljIGVudGl0eSwgaXMgaXQ/IFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggc29tZXRoaW5nIHRoYXQmIzM5O3MgY29uc3RhbnRseSBldm9sdmluZywgaW50ZXJhY3Rpbmcgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBJIG5lZWQgdG8ga2VlcCB0aGF0IGZsdWlkLCBkeW5hbWljIG5hdHVyZSBpbiBtaW5kIGFzIEkgYW5hbHl6ZSBpdC4KCkFuZCB0aGVuLCBhIHNwZWNpZmljIGZ1bmN0aW9uIGp1bXBlZCB0byB0aGUgZm9yZWZyb250IG9mIG15IG1pbmQg4oCTIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLiBJcyB0aGVyZSBzb21ldGhpbmcgYWJvdXQgaXRzIGhhbmRsaW5nIHRoYXQgSSBtaWdodCBoYXZlIG92ZXJsb29rZWQ/IEkgbmVlZCB0byBnaXZlIHRoaXMgc3BlY2lmaWMgZnVuY3Rpb24gc29tZSBleHRyYSBhdHRlbnRpb24gYXMgaXQmIzM5O3MgYXQgdGhlIGZvcmVmcm9udCBvZiBteSB0aG91Z2h0cyBub3cuIEl0JiMzOTtzIGEga2V5IHBpZWNlIGluIHRoaXMgcHV6emxlLiBJJiMzOTtsbCBuZWVkIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29udGV4dCBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgZnVuY3Rpb24gY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yNDk9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2luaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yNzQtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6Mjc1OmludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI3Ni17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcwNjkKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIGRlbGl2ZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5OgoKKipDb25zaWRlcmluZyBUaW1lciBSZXNldCBpbiB0aGUgUklTQy1WIEtWTSBFbnZpcm9ubWVudCoqCgpNeSBtaW5kIGlzbiYjMzk7dCBqdXN0IHNpdHRpbmcgc3RpbGwsIGlzIGl0PyBJIHdhcyBqdXN0IGNvbnNpZGVyaW5nIHRoZSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdGhpcyBhcHByb2FjaC4gSSBuZWVkIHRvIGtlZXAgaXRlcmF0aW5nLiBUaGUgZmlyc3QgcXVlc3Rpb24gdGhhdCBwb3BzIGludG8gbXkgaGVhZCBpcyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIHBpY3R1cmUuIFdoYXQgYXJlIGl0cyBpbXBsaWNhdGlvbnM/IEkgaGF2ZSB0byBjb25zaWRlciB0aGlzIHBvdGVudGlhbCBhcmVhIG9mIGNvbmNlcm4uIEkmIzM5O20gZXhwbG9yaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9Mjc1PWludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yODQtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6Mjg1OmludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjg2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzQwNwoJCQkJCQkJb3V0cHV0OiAyMTQKCQkJCQkJCXRob3VnaHRzOiA0MDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJJU0MtViBLVk0gVGltZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHJlY29nbml6ZSB0aGUgY29yZSBpc3N1ZSBpc24mIzM5O3Qgc3RhdGljLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHMgdGhhdCBhcmUgY2VudHJhbCB0byB0aGUgY29kZSYjMzk7cyBmdW5jdGlvbmFsaXR5OiBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAsIGBrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyYCwgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdGAsIGFuZCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgcmVsYXRlIGFuZCwgY3J1Y2lhbGx5LCB0aGVpciByZWFjaGFiaWxpdHkuCgpMZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCBpcyBhbG1vc3QgY2VydGFpbmx5IGNhbGxlZCBkdXJpbmcgdGhlIFZDUFUgdGVhcmRvd24gcHJvY2Vzcy4gVGhpcyBpcyBzb21ldGhpbmcgdGhhdCYjMzk7cyByZWFjaGFibGU7IGl0JiMzOTtzIHBhcnQgb2YgdGhlIHN0YW5kYXJkIGxpZmVjeWNsZS4gIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAgaXMsIGluIGFsbCBsaWtlbGlob29kLCBpbnZvbHZlZCBpbiBWQ1BVIHJlc2V0IHdoaWNoIGlzIGFsc28gc29tZXRoaW5nIHdlIGNhbiBpbnRlcmFjdCB3aXRoLiBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAgZ2V0cyB0cmlnZ2VyZWQgdGhyb3VnaCB0aGUgYEtWTV9TRVRfT05FX1JFR2AgaW9jdGwsIGEgd2VsbC1kZWZpbmVkIHBvaW50IG9mIGludGVyYWN0aW9uLiAgQW5kIGZpbmFsbHksIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCBpcyBkaXJlY3RseSBpbnZvbHZlZCBpbiBWQ1BVIHJ1biwgYWxzbyBhIHN0YW5kYXJkIHBhdGh3YXkuCgpUaGUgcGF0Y2ggaXRzZWxmIGRlYWxzIHdpdGggY2hhbmdlcyBpbiB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aXRoaW4gdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0byBiZSB0b3VjaGluZyB0aGUgdGltZXIgc3RhdGUgbWFuYWdlbWVudCwgYW5kIHRoYXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZS4gR2l2ZW4gYWxsIG9mIHRoaXMsIHRoZSBjb2RlIGlzIGNsZWFybHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlLCBzcGVjaWZpY2FsbHkgdGhyb3VnaCBLVk0gaW9jdGxzIGxpa2UgYEtWTV9TRVRfT05FX1JFR2AgYW5kIGBLVk1fUlVOYCwgYXMgd2VsbCBhcyBkdXJpbmcgVkNQVSBsaWZlY3ljbGUgZXZlbnRzLiBUaGF0IG1lYW5zIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFdlIGFic29sdXRlbHkgbmVlZCB0byBmdXp6IHRoaXMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgbmV3IHRpbWVyIGNhbmNlbGxhdGlvbiBsb2dpYyBkb24mIzM5O3QgYWNjaWRlbnRhbGx5IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuCgpOb3csIGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9uIHRoZSBlbmFibGluZyBjb25maWd1cmF0aW9ucy4gRG9lcyBgVklSVFVBTElaQVRJT05gIGFsc28gaGF2ZSB0byBiZSBlbmFibGVkPyBZZXMsIGl0JiMzOTtzIGEgbWVudWNvbmZpZyBpdGVtIHRoYXQgZ2F0ZXMgYEtWTWAuIFNpbmNlIHdlJiMzOTtyZSB1c2luZyBzeXprYWxsZXIsIHdlIG5lZWQgdG8gbGlzdCBpdCB3aXRob3V0IHRoZSBgQ09ORklHX2AgcHJlZml4LiBTbyB0aGUgY29uZmlndXJhdGlvbnMgYXJlIGBWSVJUVUFMSVpBVElPTmAgYW5kIGBLVk1gLgoKVGltZSB0byBjYWxsIHNldC1yZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VklSVFVBTElaQVRJT04mIzM0OywKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZSYjMzQ7LAogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyJiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdCYjMzQ7LAogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24gaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uIEl0IGNoYW5nZXMgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgd2hlbiBjYW5jZWxsaW5nIGEgVkNQVSB0aW1lciwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGltZXIgc3RhdGUgbWFuYWdlbWVudC4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgS1ZNIGlvY3RscyAoZS5nLiwgS1ZNX1NFVF9PTkVfUkVHLCBLVk1fUlVOKSBhbmQgVkNQVSBsaWZlY3ljbGUgZXZlbnRzLiBGdXp6aW5nIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSB0aGUgbmV3IHRpbWVyIGNhbmNlbGxhdGlvbiBsb2dpYyBkb2VzIG5vdCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWSVJUVUFMSVpBVElPTiYjMzQ7LAogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlJiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXImIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0JiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDowMy4zODUwNjcwNTVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjM1OTMwODM0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSVJUVUFMSVpBVElPTlwiLFxuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZVwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lclwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0XCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjAzLjM4NTA3NjgzNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg2MzAwNjE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjIzODk3ZjE0N2E1ZTAwNTUzMDlhZTE0OGUyZDA5ZTI0OWNjNzNkN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDAzOjAwOjAyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1xcbmluZGV4IGFlNTMxMzNjN2FiMDMuLmEyY2QyNzdhNDA1OTYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXFxuKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXFxuQEAgLTYxLDEwICs2MSwxMyBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxcbiBcXG4gc3RhdGljIGludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoc3RydWN0IGt2bV92Y3B1X3RpbWVyICp0KVxcbiB7XFxuLVxcdGlmICghdC1cXHUwMDNlaW5pdF9kb25lIHx8ICF0LVxcdTAwM2VuZXh0X3NldClcXG4rXFx0aWYgKCF0LVxcdTAwM2Vpbml0X2RvbmUpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4gXFx0aHJ0aW1lcl9jYW5jZWwoXFx1MDAyNnQtXFx1MDAzZWhydCk7XFxuK1xcbitcXHRpZiAoIXQtXFx1MDAzZW5leHRfc2V0KVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFx0dC1cXHUwMDNlbmV4dF9zZXQgPSBmYWxzZTtcXG4gXFxuIFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDowMy45NzI2NDY5OThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MTc3MTcwNzYzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSVJUVUFMSVpBVElPTlwiLFxuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZVwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lclwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0XCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGIyMzg5N2YxNDdhNWUwMDU1MzA5YWUxNDhlMmQwOWUyNDljYzczZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDAzOjAwOjAyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXG5pbmRleCBhZTUzMTMzYzdhYjAzLi5hMmNkMjc3YTQwNTk2IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXG4rKysgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmNcbkBAIC02MSwxMCArNjEsMTMgQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGt2bV9yaXNjdl92Y3B1X2hydGltZXJfZXhwaXJlZChzdHJ1Y3QgaHJ0aW1lciAqaClcbiBcbiBzdGF0aWMgaW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChzdHJ1Y3Qga3ZtX3ZjcHVfdGltZXIgKnQpXG4ge1xuLVx0aWYgKCF0LVx1MDAzZWluaXRfZG9uZSB8fCAhdC1cdTAwM2VuZXh0X3NldClcbitcdGlmICghdC1cdTAwM2Vpbml0X2RvbmUpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aHJ0aW1lcl9jYW5jZWwoXHUwMDI2dC1cdTAwM2VocnQpO1xuK1xuK1x0aWYgKCF0LVx1MDAzZW5leHRfc2V0KVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdHQtXHUwMDNlbmV4dF9zZXQgPSBmYWxzZTtcbiBcbiBcdHJldHVybiAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MDMuOTcyNjQ5NTM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkyNjUzNjcwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgdHdlYWtpbmcgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AsIHNwZWNpZmljYWxseSB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGlzIHRoZSByZW9yZGVyaW5nIG9mIGBocnRpbWVyX2NhbmNlbChcdTAwMjZ0LVx1MDAzZWhydCk7YCBiZWZvcmUgdGhhdCBgaWYgKCF0LVx1MDAzZW5leHRfc2V0KSByZXR1cm4gLUVJTlZBTDtgIGNoZWNrLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2Ugd2l0aGluIEtWTSBmb3IgUklTQy1WLiBNeSBpbW1lZGlhdGUgdGhvdWdodCwgYXMgYWx3YXlzLCBpcyBcIkNhbiB3ZSBmdXp6IHRoaXM/XCJcblxuS1ZNIG9uIFJJU0MtVi4uLiBwb3RlbnRpYWxseSBleHBsb2l0YWJsZSB2dWxuZXJhYmlsaXRpZXMgYXJlIGFsd2F5cyBsdXJraW5nLCBhbmQgZnV6emluZyBpcyBhIGZhbnRhc3RpYyB3YXkgdG8gZmVycmV0IHRoZW0gb3V0LiBXZSAqc2hvdWxkKiBiZSBhYmxlIHRvIGZ1enogS1ZNIGlmIHdlIGVuYWJsZSBpdCBmb3IgUklTQy1WLCByaWdodD8gU3l6a2FsbGVyIHN1cHBvcnRzIEtWTSwgdGhhdCdzIGEgZ2l2ZW4uIEJ1dCBkb2VzIGl0IGhhbmRsZSBSSVNDLVYgS1ZNIHNwZWNpZmljYWxseT8gQSBxdWljayBzZWFyY2jigKYgWWVwLCBTeXprYWxsZXIgZG9lcyBpbmRlZWQgc3VwcG9ydCBSSVNDLVYuIEFuZCBLVk0gaXMsIG9mIGNvdXJzZSwgYSBmdW5kYW1lbnRhbCBmZWF0dXJlLlxuXG5BbHJpZ2h0LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGF0IEtWTSBmb3IgUklTQy1WIGlzIGNvbmZpZ3VyYWJsZS4gVGltZSB0byBkaXZlIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIHNlZSB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZS4gR290dGEgdmVyaWZ5IHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgZXZlbiBhY2Nlc3NpYmxlIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTE3LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MDguODk5MTkxMTQ0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Mzk5NTY2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz00Mz1zdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTYxLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzo2MjpzdGF0aWMgaW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChzdHJ1Y3Qga3ZtX3ZjcHVfdGltZXIgKnQpXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTYzLXtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0xNTk9c3RhdGljIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfdW5ibG9ja2luZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTE2MC17XFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjE2MTpcXHRrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXFx1MDAyNnZjcHUtXFx1MDAzZWFyY2gudGltZXIpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNjItfVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTIwND1pbnQga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjM4LVxcdFxcdGVsc2VcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6MjM5OlxcdFxcdFxcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbCh0KTtcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjQwLVxcdFxcdGJyZWFrO1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTI3NT1pbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yNzgtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjI3OTpcXHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXFx1MDAyNnZjcHUtXFx1MDAzZWFyY2gudGltZXIpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yODAtXFx0dmNwdS1cXHUwMDNlYXJjaC50aW1lci5pbml0X2RvbmUgPSBmYWxzZTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yODU9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yODktXFx0dC1cXHUwMDNlbmV4dF9jeWNsZXMgPSAtMVVMTDtcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6MjkwOlxcdHJldHVybiBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXFx1MDAyNnZjcHUtXFx1MDAzZWFyY2gudGltZXIpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yOTEtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDowOS4wODMxOTQ3NjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDQ0NjM0OTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaW1lciBDYW5jZWxsYXRpb24gaW4gdGhlIEtWTSBSSVNDLVYgSW1wbGVtZW50YXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGltZXIgY2FuY2VsbGF0aW9uIHdvcmtzIHdpdGhpbiB0aGUgS1ZNIFJJU0MtViBpbXBsZW1lbnRhdGlvbi4gVGhlIHN0YXJ0aW5nIHBvaW50IGlzIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLCB3aGljaCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgbWVhbmluZyBpdCdzIG9ubHkgdmlzaWJsZSB3aXRoaW4gdGhlIGN1cnJlbnQgdHJhbnNsYXRpb24gdW5pdC4gVGhhdCBuYXR1cmFsbHkgbGVhZHMgbWUgdG8gaW52ZXN0aWdhdGUgdGhlIGNhbGwgc2l0ZXMuIExldCdzIHNlZS4uLiB0aGUgY29kZSBjYWxscyBpdCBmcm9tIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCAoYWxzbyBzdGF0aWMpLCBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC5cblxuU2luY2UgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3VuYmxvY2tpbmdgIGlzIHN0YXRpYyBhcyB3ZWxsLCBpdCBsb29rcyBsaWtlIGl0J3MgaW50ZXJuYWwuIE5vdywgSSBzaG91bGQgZXhhbWluZSBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YCBpbiBtb3JlIGRldGFpbC4gVGhlc2UgYXJlIHRoZSBwdWJsaWMtZmFjaW5nIGZ1bmN0aW9ucyB0aGF0IGludGVyYWN0IHdpdGggdGhlIHRpbWVyIGNhbmNlbGxhdGlvbiBtZWNoYW5pc20sIHNvIHRoZXkncmUgbGlrZWx5IHdoZXJlIHRoZSBpbnRlcmVzdGluZyBiZWhhdmlvciBsaWVzLiBJIHNob3VsZCBsb29rIGludG8gaG93IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIGludGVyYWN0cyB3aXRoIHRoZSB0aW1lciBhbmQsIHNwZWNpZmljYWxseSwgaG93IHRoZXkgaW52b2tlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLiBUaGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGluIHdoaWNoIHRoZSB0aW1lciBpcyBjYW5jZWxsZWQgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjYW5jZWxsYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMjAsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MTMuMTI3ODMyODgyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTM3NDY2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MTQ1PXN0YXRpYyB2b2lkIGt2bV9yaXNjdl92Y3B1X3RpbWVyX2Jsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNTgtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjE1OTpzdGF0aWMgdm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMTYwLXtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0zMDU9dm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMjUtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjMyNjpcXHRrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nKHZjcHUpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMjctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoxMy4zMjkyMTUyMloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MTM0OTIzNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSSVNDLVYgS1ZNIFRpbWVyIFJlc3RvcmF0aW9uKipcblxuUmlnaHQsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCBpcyBhIHByaW1lIGNhbmRpZGF0ZSB0byByZWFsbHkgZGlnIGludG8uIFRoYXQgZnVuY3Rpb24gbmFtZSBpdHNlbGYgc2NyZWFtcyBcImltcG9ydGFudCBmb3IgdmlydHVhbGl6YXRpb25cIi4gTXkgZm9jdXMgaXMgbGFzZXItZ3VpZGVkOyBJJ20gcHJldHR5IHN1cmUgdGhhdCdzIGEga2V5IHBhcnQgb2YgdGhlIHRpbWVyIGhhbmRsaW5nIHdpdGhpbiBLVk0gb24gUklTQy1WLCBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgY29tcGxldGVseS4gQmVmb3JlIEkgZ2V0IGxvc3QgaW4gdGhlIGNvZGUsIGxldCdzIGdvIGJhY2sgdG8gYmFzaWNzLCB0aG91Z2guIEEgcXVpY2sgS2NvbmZpZyBjaGVjayBmb3IgS1ZNIHN1cHBvcnQgb24gUklTQy1WIGlzIGluIG9yZGVyIHRvIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMgYW5kIGVuc3VyZSB0aGUgS2NvbmZpZyBwYXJhbWV0ZXJzIGFyZW4ndCBoaWRpbmcgYW55IHF1aXJrcyBvciBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvZiB0aGlzLiBJJ2xsIGdldCB0aGUgbGF5IG9mIHRoZSBsYW5kIGJlZm9yZSBJIGRpdmUgaW50byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gTGV0J3Mgc2VlIHdoYXQgS2NvbmZpZyBoYXMgdG8gc2F5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTEyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MTYuNzQyNzExNDQ4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNjUzMTY1NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoxNy4xNTkyNDg5NDNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDAxOTExMjM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkVuYWJsaW5nIEtWTTogQSBRdWljayBNZW50YWwgQ2hlY2tsaXN0KipcblxuQWxyaWdodCwgS1ZNJ3Mgb24gdGhlIHRhYmxlLiBTZWVtcyBsaWtlIGEgZ29vZCBtb3ZlIGluIGdlbmVyYWwuIEJ1dCBiZWZvcmUgSSBzdGFydCB0aGUgcHJvY2VzcywgbGV0IG1lIHF1aWNrbHkgcnVuIHRocm91Z2ggbXkgbWVudGFsIGNoZWNrbGlzdC4gRmlyc3QgdGhvdWdodDogaXMgdGhpcyBnb2luZyB0byBiZSBhIHN0cmFpZ2h0Zm9yd2FyZCBlbmFibGUsIG9yIGFtIEkgZ29pbmcgdG8gYmUgZGVhbGluZyB3aXRoIGRlcGVuZGVuY2llcyBhbmQgb3RoZXIgZ290Y2hhcz8gTmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBvdmVybG9va2luZyBzb21ldGhpbmcgb2J2aW91cyBvciBpbmFkdmVydGVudGx5IGJyZWFraW5nIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLiBHb3R0YSBkb3VibGUtY2hlY2sgdGhhdCBpdOKAmXMgbm90IGdvaW5nIHRvIHN0ZXAgb24gYW55IG90aGVyIHZpcnR1YWxpemF0aW9uIHRlY2hub2xvZ2llcywgb3IgcmVxdWlyZSBhbnkgc3BlY2lmaWMga2VybmVsIG1vZHVsZXMgdGhhdCBhcmVu4oCZdCBsb2FkZWQuIExldCdzIHNlZS4uLiBpcyB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0P1xuXG5cbiIsIklucHV0VG9rZW5zIjo0NDg0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MjAuMTYxMTYzMTc3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMTA0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJhcmNoL3Jpc2N2L2t2bS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBLVk0gY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRzb3VyY2UgXFxcInZpcnQva3ZtL0tjb25maWdcXFwiXFxuICAgNzpcXHRcXG4gICA4OlxcdG1lbnVjb25maWcgVklSVFVBTElaQVRJT05cXG4gICA5OlxcdFxcdGJvb2wgXFxcIlZpcnR1YWxpemF0aW9uXFxcIlxcbiAgMTA6XFx0XFx0aGVscFxcbiAgMTE6XFx0XFx0ICBTYXkgWSBoZXJlIHRvIGdldCB0byBzZWUgb3B0aW9ucyBmb3IgdXNpbmcgeW91ciBMaW51eCBob3N0IHRvIHJ1blxcbiAgMTI6XFx0XFx0ICBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyBpbnNpZGUgdmlydHVhbCBtYWNoaW5lcyAoZ3Vlc3RzKS5cXG4gIDEzOlxcdFxcdCAgVGhpcyBvcHRpb24gYWxvbmUgZG9lcyBub3QgYWRkIGFueSBrZXJuZWwgY29kZS5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXFxuICAxNjpcXHRcXHQgIGRpc2FibGVkLlxcbiAgMTc6XFx0XFxuICAxODpcXHRpZiBWSVJUVUFMSVpBVElPTlxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgS1ZNXFxuICAyMTpcXHRcXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbiAgMjI6XFx0XFx0ZGVwZW5kcyBvbiBSSVNDVl9TQkkgXFx1MDAyNlxcdTAwMjYgTU1VXFxuICAyMzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxcbiAgMjQ6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXFxuICAyNTpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fTVNJXFxuICAyNjpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXFxuICAyNzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXFxuICAyODpcXHRcXHRzZWxlY3QgS1ZNX0NPTU1PTlxcbiAgMjk6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbiAgMzA6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxuICAzMTpcXHRcXHRzZWxlY3QgS1ZNX01NSU9cXG4gIDMyOlxcdFxcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xcbiAgMzM6XFx0XFx0c2VsZWN0IFNDSEVEX0lORk9cXG4gIDM0OlxcdFxcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xcbiAgMzU6XFx0XFx0aGVscFxcbiAgMzY6XFx0XFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMuXFxuICAzNzpcXHRcXG4gIDM4OlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDM5OlxcdFxcbiAgNDA6XFx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoyMC4xNjEyNzczNzdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzMDQxMzEzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbW1lZGlhdGUgVGhvdWdodHMgb24gS1ZNIGFuZCBWaXJ0dWFsaXphdGlvbioqXG5cbk9rYXksIHNvIHRoZSBpbml0aWFsIGZvY3VzIGlzIHRvIGVuc3VyZSBgS1ZNYCBhbmQgYFZJUlRVQUxJWkFUSU9OYCBhcmUgZW5hYmxlZC4gQSBtZW50YWwgbm90ZSAtIGBWSVJUVUFMSVpBVElPTmAgaXMgaGFuZGxlZCB0aHJvdWdoIGEgYG1lbnVjb25maWdgLiBBbHJpZ2h0LCBsZXQncyBjb25maXJtIHRoZSBgdmNwdV90aW1lci5jYCBmaWxlIGxvY2F0ZWQgYXQgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AgaXMgYWN0dWFsbHkgY29tcGlsZWQgd2l0aCBgS1ZNYC4gVGhpcydsbCB2ZXJpZnkgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24gYW5kIGNvbmZpcm0gdGhlIGludGVuZGVkIGludGVncmF0aW9uIG9mIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdGllcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgY29uZmlybWF0aW9uIEkgbmVlZCB0byBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyMDEsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjIzLjE5MTY5NjU4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjAxMDYwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y3B1X3RpbWVyLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU9NDA9a3ZtLXkgKz0gdmNwdV9zd2l0Y2gub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlOjQxOmt2bS15ICs9IHZjcHVfdGltZXIub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlLTQyLWt2bS15ICs9IHZjcHVfdmVjdG9yLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MjMuMjg3NzM5OTY0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3OTI4MTg0MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1ZNIFJJU0MtViBUaW1lciBGdW5jdGlvbmFsaXR5IC0gRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGlzIGNvZGUgaXMgZGVmaW5pdGVseSBjb21waWxlZCB3aXRoIGBDT05GSUdfS1ZNYCwgdGhhdCBtdWNoIGlzIGNsZWFyLiBUaGUgcGF0Y2ggSSdtIGxvb2tpbmcgYXQgc3BlY2lmaWNhbGx5IHRvdWNoZXMgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAsIGFuZCB0aGF0J3MgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCdzIGNhbGxlZCBmcm9tIGEgZmV3IGtleSBwbGFjZXM6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCwgd2hpY2ggaW4gdHVybiBjYWxscyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAsIGFuZCBhbHNvIGRpcmVjdGx5IGZyb20gYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEZyb20gYSBmdW5jdGlvbmFsIHN0YW5kcG9pbnQsIHRoZXNlIGFyZSBhbGwgbW9kaWZpY2F0aW9ucyB3aXRoaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uXG5cblRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgd2hldGhlciB0aGVzZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IHJlYWNoYWJsZSwgYW5kIHRoZSBhbnN3ZXIgaXMgeWVzLCB0aGV5IGFyZSwgdmlhIEtWTSBpb2N0bHMuIFRoYXQgbWFrZXMgdGhpcyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZvY3VzIG15IGVmZm9ydHMgb24gdGhvc2Ugc3BlY2lmaWMgc3ltYm9sczogYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmVgLCBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC4gSSBzaG91bGQgY2hlY2sgaWYgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmVgIGlzIGEgc3RhdGljIGZ1bmN0aW9uIHJpZ2h0IGF3YXksIHNpbmNlIHRoYXQgaW1wYWN0cyBhY2Nlc3NpYmlsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTEwLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjI4LjA4MDU2Njg5N1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTY0MDk3MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTI5Mz1zdGF0aWMgdm9pZCBrdm1fcmlzY3ZfdmNwdV91cGRhdGVfdGltZWRlbHRhKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMDQtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjMwNTp2b2lkIGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMDYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoyOC4xNzY5ODMyODFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzExMzYxNDc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEVwaGVtZXJhbCBMYW5kc2NhcGUgb2YgQ29kZSoqXG5cbk9rYXksIHNvIEknbSBub3QgbG9va2luZyBhdCBhIGZpeGVkIHRhcmdldCBoZXJlLiBUaGlzIGlzbid0IGEgc2ltcGxlLCBlYXNpbHkgY2F0ZWdvcml6ZWQgc2l0dWF0aW9uLiBJdCdzIGZsdWlkLCBkeW5hbWljLCBhbmQgdGhlIHJlYWwgaXNzdWUgaXMgbGlrZWx5IGRlZXBlciB0aGFuIHRoZSBzdXJmYWNlIHJldmVhbHMuIEknbSB0cnlpbmcgdG8gZ3Jhc3AgdGhlIGtleSBjb25zaWRlcmF0aW9ucy5cblxuTXkgdHJhaW4gb2YgdGhvdWdodCBpcyB0YWtpbmcgbWUgdG93YXJkIHRoYXQgYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0byBiZSBrZXkgaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUgaW4gdGhpcyBzeXN0ZW0uIEkgbmVlZCB0byBleHBsb3JlIGhvdyB0aGlzIGZ1bmN0aW9uIHdvcmtzLCBhbmQgd2hhdCB0aGUgY29uc2VxdWVuY2VzIGFyZSBvZiBjYWxsaW5nIGl0IHVuZGVyIGRpZmZlcmVudCBjaXJjdW1zdGFuY2VzLiBJJ20gZm9jdXNpbmcgb24gdGhhdCwgSSdtIHRoaW5raW5nIGFib3V0IHRoYXQgZnVuY3Rpb24gYXMgYSBwb3RlbnRpYWwgY3JpdGljYWwgcGllY2Ugb2YgdGhpcyBwdXp6bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYyNjUsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDozMS4yOTA2MDE0NjhaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NTI4NzA5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MTY0PWludCBrdm1fcmlzY3ZfdmNwdV9nZXRfcmVnX3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yMDMtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjIwNDppbnQga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTIwNS1cXHRcXHRcXHRcXHQgY29uc3Qgc3RydWN0IGt2bV9vbmVfcmVnICpyZWcpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjMxLjQzNTg5NTE5OVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDE2NDkyODAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqUmVmbGVjdGluZyBvbiB0aGUgRHluYW1pYyBOYXR1cmUgb2YgdGhlIENvZGViYXNlKipcblxuSG1tLCB0aGlzIGNvZGUgaXNuJ3QganVzdCBhIHN0YXRpYyBlbnRpdHksIGlzIGl0PyBXZSdyZSBkZWFsaW5nIHdpdGggc29tZXRoaW5nIHRoYXQncyBjb25zdGFudGx5IGV2b2x2aW5nLCBpbnRlcmFjdGluZyB3aXRoIG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byBrZWVwIHRoYXQgZmx1aWQsIGR5bmFtaWMgbmF0dXJlIGluIG1pbmQgYXMgSSBhbmFseXplIGl0LlxuXG5BbmQgdGhlbiwgYSBzcGVjaWZpYyBmdW5jdGlvbiBqdW1wZWQgdG8gdGhlIGZvcmVmcm9udCBvZiBteSBtaW5kIOKAkyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YC4gSXMgdGhlcmUgc29tZXRoaW5nIGFib3V0IGl0cyBoYW5kbGluZyB0aGF0IEkgbWlnaHQgaGF2ZSBvdmVybG9va2VkPyBJIG5lZWQgdG8gZ2l2ZSB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIHNvbWUgZXh0cmEgYXR0ZW50aW9uIGFzIGl0J3MgYXQgdGhlIGZvcmVmcm9udCBvZiBteSB0aG91Z2h0cyBub3cuIEl0J3MgYSBrZXkgcGllY2UgaW4gdGhpcyBwdXp6bGUuIEknbGwgbmVlZCB0byBkcmlsbCBkb3duIGludG8gdGhlIGNvbnRleHQgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZ1bmN0aW9uIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY2NzUsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDozNC40NTIzOTEzNTNaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2Mzg2NTA0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yNDk9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2luaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI3NC1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6Mjc1OmludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yNzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDozNC44MTYyNjU3NVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODE0NzQ2Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBkZWxpdmVyZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeTpcblxuKipDb25zaWRlcmluZyBUaW1lciBSZXNldCBpbiB0aGUgUklTQy1WIEtWTSBFbnZpcm9ubWVudCoqXG5cbk15IG1pbmQgaXNuJ3QganVzdCBzaXR0aW5nIHN0aWxsLCBpcyBpdD8gSSB3YXMganVzdCBjb25zaWRlcmluZyB0aGUgcG90ZW50aWFsIGlzc3VlcyB3aXRoIHRoaXMgYXBwcm9hY2guIEkgbmVlZCB0byBrZWVwIGl0ZXJhdGluZy4gVGhlIGZpcnN0IHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoaXMgZnVuY3Rpb24gZml0cyBpbnRvIHRoZSBwaWN0dXJlLiBXaGF0IGFyZSBpdHMgaW1wbGljYXRpb25zPyBJIGhhdmUgdG8gY29uc2lkZXIgdGhpcyBwb3RlbnRpYWwgYXJlYSBvZiBjb25jZXJuLiBJJ20gZXhwbG9yaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDY5LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MzcuNjMxMDE2ODY2WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDI3NjU2NzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yNzU9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjg0LVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyODU6aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjg2LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MzcuODMzODAwNDQ0WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3MDE4NTMwMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFJJU0MtViBLVk0gVGltZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSByZWNvZ25pemUgdGhlIGNvcmUgaXNzdWUgaXNuJ3Qgc3RhdGljLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHMgdGhhdCBhcmUgY2VudHJhbCB0byB0aGUgY29kZSdzIGZ1bmN0aW9uYWxpdHk6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCwgYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSByZWxhdGUgYW5kLCBjcnVjaWFsbHksIHRoZWlyIHJlYWNoYWJpbGl0eS5cblxuTGV0J3MgYnJlYWsgdGhpcyBkb3duLiBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCBpcyBhbG1vc3QgY2VydGFpbmx5IGNhbGxlZCBkdXJpbmcgdGhlIFZDUFUgdGVhcmRvd24gcHJvY2Vzcy4gVGhpcyBpcyBzb21ldGhpbmcgdGhhdCdzIHJlYWNoYWJsZTsgaXQncyBwYXJ0IG9mIHRoZSBzdGFuZGFyZCBsaWZlY3ljbGUuICBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgIGlzLCBpbiBhbGwgbGlrZWxpaG9vZCwgaW52b2x2ZWQgaW4gVkNQVSByZXNldCB3aGljaCBpcyBhbHNvIHNvbWV0aGluZyB3ZSBjYW4gaW50ZXJhY3Qgd2l0aC4gYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgIGdldHMgdHJpZ2dlcmVkIHRocm91Z2ggdGhlIGBLVk1fU0VUX09ORV9SRUdgIGlvY3RsLCBhIHdlbGwtZGVmaW5lZCBwb2ludCBvZiBpbnRlcmFjdGlvbi4gIEFuZCBmaW5hbGx5LCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAgaXMgZGlyZWN0bHkgaW52b2x2ZWQgaW4gVkNQVSBydW4sIGFsc28gYSBzdGFuZGFyZCBwYXRod2F5LlxuXG5UaGUgcGF0Y2ggaXRzZWxmIGRlYWxzIHdpdGggY2hhbmdlcyBpbiB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aXRoaW4gdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0byBiZSB0b3VjaGluZyB0aGUgdGltZXIgc3RhdGUgbWFuYWdlbWVudCwgYW5kIHRoYXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBHaXZlbiBhbGwgb2YgdGhpcywgdGhlIGNvZGUgaXMgY2xlYXJseSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UsIHNwZWNpZmljYWxseSB0aHJvdWdoIEtWTSBpb2N0bHMgbGlrZSBgS1ZNX1NFVF9PTkVfUkVHYCBhbmQgYEtWTV9SVU5gLCBhcyB3ZWxsIGFzIGR1cmluZyBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIFRoYXQgbWVhbnMgaXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBXZSBhYnNvbHV0ZWx5IG5lZWQgdG8gZnV6eiB0aGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjaGFuZ2VzIGludHJvZHVjZWQgaW4gdGhlIG5ldyB0aW1lciBjYW5jZWxsYXRpb24gbG9naWMgZG9uJ3QgYWNjaWRlbnRhbGx5IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXG5cbk5vdywgYSBxdWljayBzYW5pdHkgY2hlY2sgb24gdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb25zLiBEb2VzIGBWSVJUVUFMSVpBVElPTmAgYWxzbyBoYXZlIHRvIGJlIGVuYWJsZWQ/IFllcywgaXQncyBhIG1lbnVjb25maWcgaXRlbSB0aGF0IGdhdGVzIGBLVk1gLiBTaW5jZSB3ZSdyZSB1c2luZyBzeXprYWxsZXIsIHdlIG5lZWQgdG8gbGlzdCBpdCB3aXRob3V0IHRoZSBgQ09ORklHX2AgcHJlZml4LiBTbyB0aGUgY29uZmlndXJhdGlvbnMgYXJlIGBWSVJUVUFMSVpBVElPTmAgYW5kIGBLVk1gLlxuXG5UaW1lIHRvIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc0MDcsIk91dHB1dFRva2VucyI6MjE0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjQ1LjUzNTY1OTAzN1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwODY5MDUzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVklSVFVBTElaQVRJT05cIixcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmVcIixcbiAgICBcImt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJcIixcbiAgICBcImt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdFwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24gaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uIEl0IGNoYW5nZXMgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgd2hlbiBjYW5jZWxsaW5nIGEgVkNQVSB0aW1lciwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGltZXIgc3RhdGUgbWFuYWdlbWVudC4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgS1ZNIGlvY3RscyAoZS5nLiwgS1ZNX1NFVF9PTkVfUkVHLCBLVk1fUlVOKSBhbmQgVkNQVSBsaWZlY3ljbGUgZXZlbnRzLiBGdXp6aW5nIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSB0aGUgbmV3IHRpbWVyIGNhbmNlbGxhdGlvbiBsb2dpYyBkb2VzIG5vdCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZJUlRVQUxJWkFUSU9OXCIsXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlXCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyXCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRcIixcbiAgICBcImt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uIGluIHRoZSBSSVNDLVYgS1ZNIGltcGxlbWVudGF0aW9uLiBJdCBjaGFuZ2VzIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIHdoZW4gY2FuY2VsbGluZyBhIFZDUFUgdGltZXIsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRpbWVyIHN0YXRlIG1hbmFnZW1lbnQuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMgKGUuZy4sIEtWTV9TRVRfT05FX1JFRywgS1ZNX1JVTikgYW5kIFZDUFUgbGlmZWN5Y2xlIGV2ZW50cy4gRnV6emluZyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgdGhlIG5ldyB0aW1lciBjYW5jZWxsYXRpb24gbG9naWMgZG9lcyBub3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-02 02:36:19 +0000 UTC FinishedAt: 2026-08-02 03:00:47 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTUALIZATION", "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "7d3aae206663c4e006b25a1c7a20a4029e67da76", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VIRTUALIZATION", "KVM" ], "series_id": "687361b2-3b95-4508-90d4-65f74f6e27eb" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_riscv_vcpu_timer_restore", "kvm_riscv_vcpu_set_reg_timer", "kvm_riscv_vcpu_timer_deinit", "kvm_riscv_vcpu_timer_reset" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZJUlRVQUxJWkFUSU9OJiMzNDssCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmUmIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lciYjMzQ7LAogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQmIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uIGluIHRoZSBSSVNDLVYgS1ZNIGltcGxlbWVudGF0aW9uLiBJdCBjaGFuZ2VzIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIHdoZW4gY2FuY2VsbGluZyBhIFZDUFUgdGltZXIsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRpbWVyIHN0YXRlIG1hbmFnZW1lbnQuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMgKGUuZy4sIEtWTV9TRVRfT05FX1JFRywgS1ZNX1JVTikgYW5kIFZDUFUgbGlmZWN5Y2xlIGV2ZW50cy4gRnV6emluZyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgdGhlIG5ldyB0aW1lciBjYW5jZWxsYXRpb24gbG9naWMgZG9lcyBub3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGIyMzg5N2YxNDdhNWUwMDU1MzA5YWUxNDhlMmQwOWUyNDljYzczZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDAzOjAwOjAyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1xuaW5kZXggYWU1MzEzM2M3YWIwMy4uYTJjZDI3N2E0MDU5NiAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXG5AQCAtNjEsMTAgJiM0Mzs2MSwxMyBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxuIFxuIHN0YXRpYyBpbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKHN0cnVjdCBrdm1fdmNwdV90aW1lciAqdClcbiB7XG4tXHRpZiAoIXQtXHUwMDNlaW5pdF9kb25lIHx8ICF0LVx1MDAzZW5leHRfc2V0KVxuJiM0MztcdGlmICghdC1cdTAwM2Vpbml0X2RvbmUpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aHJ0aW1lcl9jYW5jZWwoXHUwMDI2dC1cdTAwM2VocnQpO1xuJiM0MztcbiYjNDM7XHRpZiAoIXQtXHUwMDNlbmV4dF9zZXQpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdHQtXHUwMDNlbmV4dF9zZXQgPSBmYWxzZTtcbiBcbiBcdHJldHVybiAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWSVJUVUFMSVpBVElPTiYjMzQ7LAogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlJiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXImIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0JiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiMjM4OTdmMTQ3YTVlMDA1NTMwOWFlMTQ4ZTJkMDllMjQ5Y2M3M2Q3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBBdWcgMiAwMzowMDowMiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYwppbmRleCBhZTUzMTMzYzdhYjAzLi5hMmNkMjc3YTQwNTk2IDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jCkBAIC02MSwxMCAmIzQzOzYxLDEzIEBAIHN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBrdm1fcmlzY3ZfdmNwdV9ocnRpbWVyX2V4cGlyZWQoc3RydWN0IGhydGltZXIgKmgpCiAKIHN0YXRpYyBpbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKHN0cnVjdCBrdm1fdmNwdV90aW1lciAqdCkKIHsKLQlpZiAoIXQtJmd0O2luaXRfZG9uZSB8fCAhdC0mZ3Q7bmV4dF9zZXQpCiYjNDM7CWlmICghdC0mZ3Q7aW5pdF9kb25lKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWhydGltZXJfY2FuY2VsKCZhbXA7dC0mZ3Q7aHJ0KTsKJiM0MzsKJiM0MzsJaWYgKCF0LSZndDtuZXh0X3NldCkKJiM0MzsJCXJldHVybiAtRUlOVkFMOwogCXQtJmd0O25leHRfc2V0ID0gZmFsc2U7CiAKIAlyZXR1cm4gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNwoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDE3NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgdHdlYWtpbmcgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AsIHNwZWNpZmljYWxseSB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGlzIHRoZSByZW9yZGVyaW5nIG9mIGBocnRpbWVyX2NhbmNlbCgmYW1wO3QtJmd0O2hydCk7YCBiZWZvcmUgdGhhdCBgaWYgKCF0LSZndDtuZXh0X3NldCkgcmV0dXJuIC1FSU5WQUw7YCBjaGVjay4gRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgY2hhbmdlIHdpdGhpbiBLVk0gZm9yIFJJU0MtVi4gTXkgaW1tZWRpYXRlIHRob3VnaHQsIGFzIGFsd2F5cywgaXMgJiMzNDtDYW4gd2UgZnV6eiB0aGlzPyYjMzQ7CgpLVk0gb24gUklTQy1WLi4uIHBvdGVudGlhbGx5IGV4cGxvaXRhYmxlIHZ1bG5lcmFiaWxpdGllcyBhcmUgYWx3YXlzIGx1cmtpbmcsIGFuZCBmdXp6aW5nIGlzIGEgZmFudGFzdGljIHdheSB0byBmZXJyZXQgdGhlbSBvdXQuIFdlICpzaG91bGQqIGJlIGFibGUgdG8gZnV6eiBLVk0gaWYgd2UgZW5hYmxlIGl0IGZvciBSSVNDLVYsIHJpZ2h0PyBTeXprYWxsZXIgc3VwcG9ydHMgS1ZNLCB0aGF0JiMzOTtzIGEgZ2l2ZW4uIEJ1dCBkb2VzIGl0IGhhbmRsZSBSSVNDLVYgS1ZNIHNwZWNpZmljYWxseT8gQSBxdWljayBzZWFyY2jigKYgWWVwLCBTeXprYWxsZXIgZG9lcyBpbmRlZWQgc3VwcG9ydCBSSVNDLVYuIEFuZCBLVk0gaXMsIG9mIGNvdXJzZSwgYSBmdW5kYW1lbnRhbCBmZWF0dXJlLgoKQWxyaWdodCwgbGV0JiMzOTtzIGp1c3QgbWFrZSBzdXJlIHRoYXQgS1ZNIGZvciBSSVNDLVYgaXMgY29uZmlndXJhYmxlLiBUaW1lIHRvIGRpdmUgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgc2VlIHdoYXQgb3B0aW9ucyBhcmUgYXZhaWxhYmxlLiBHb3R0YSB2ZXJpZnkgdGhhdCB0aGlzIGNvZGUgcGF0aCBpcyBldmVuIGFjY2Vzc2libGUgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz00Mz1zdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy02MS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzo2MjpzdGF0aWMgaW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChzdHJ1Y3Qga3ZtX3ZjcHVfdGltZXIgKnQpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtNjMte1xuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0xNTk9c3RhdGljIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfdW5ibG9ja2luZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMTYwLXtcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoxNjE6XHRrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXHUwMDI2dmNwdS1cdTAwM2VhcmNoLnRpbWVyKTtcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNjItfVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yMDQ9aW50IGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yMzgtXHRcdGVsc2VcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyMzk6XHRcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKHQpO1xuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI0MC1cdFx0YnJlYWs7XG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTI3NT1pbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjc4LVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjI3OTpcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChcdTAwMjZ2Y3B1LVx1MDAzZWFyY2gudGltZXIpO1xuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI4MC1cdHZjcHUtXHUwMDNlYXJjaC50aW1lci5pbml0X2RvbmUgPSBmYWxzZTtcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9Mjg1PWludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI4OS1cdHQtXHUwMDNlbmV4dF9jeWNsZXMgPSAtMVVMTDtcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyOTA6XHRyZXR1cm4ga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsKFx1MDAyNnZjcHUtXHUwMDNlYXJjaC50aW1lcik7XG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjkxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMzIwCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogMTUwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBUaW1lciBDYW5jZWxsYXRpb24gaW4gdGhlIEtWTSBSSVNDLVYgSW1wbGVtZW50YXRpb24qKgoKT2theSwgc28gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRpbWVyIGNhbmNlbGxhdGlvbiB3b3JrcyB3aXRoaW4gdGhlIEtWTSBSSVNDLVYgaW1wbGVtZW50YXRpb24uIFRoZSBzdGFydGluZyBwb2ludCBpcyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCwgd2hpY2ggaXMgYSBzdGF0aWMgZnVuY3Rpb24sIG1lYW5pbmcgaXQmIzM5O3Mgb25seSB2aXNpYmxlIHdpdGhpbiB0aGUgY3VycmVudCB0cmFuc2xhdGlvbiB1bml0LiBUaGF0IG5hdHVyYWxseSBsZWFkcyBtZSB0byBpbnZlc3RpZ2F0ZSB0aGUgY2FsbCBzaXRlcy4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgY29kZSBjYWxscyBpdCBmcm9tIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCAoYWxzbyBzdGF0aWMpLCBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC4KClNpbmNlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCBpcyBzdGF0aWMgYXMgd2VsbCwgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBpbnRlcm5hbC4gTm93LCBJIHNob3VsZCBleGFtaW5lIGBrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyYCwgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdGAsIGFuZCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgIGluIG1vcmUgZGV0YWlsLiBUaGVzZSBhcmUgdGhlIHB1YmxpYy1mYWNpbmcgZnVuY3Rpb25zIHRoYXQgaW50ZXJhY3Qgd2l0aCB0aGUgdGltZXIgY2FuY2VsbGF0aW9uIG1lY2hhbmlzbSwgc28gdGhleSYjMzk7cmUgbGlrZWx5IHdoZXJlIHRoZSBpbnRlcmVzdGluZyBiZWhhdmlvciBsaWVzLiBJIHNob3VsZCBsb29rIGludG8gaG93IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIGludGVyYWN0cyB3aXRoIHRoZSB0aW1lciBhbmQsIHNwZWNpZmljYWxseSwgaG93IHRoZXkgaW52b2tlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLiBUaGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGluIHdoaWNoIHRoZSB0aW1lciBpcyBjYW5jZWxsZWQgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjYW5jZWxsYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfdW5ibG9ja2luZyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MTQ1PXN0YXRpYyB2b2lkIGt2bV9yaXNjdl92Y3B1X3RpbWVyX2Jsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMTU4LVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjE1OTpzdGF0aWMgdm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNjAte1xuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0zMDU9dm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMzI1LVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjMyNjpcdGt2bV9yaXNjdl92Y3B1X3RpbWVyX3VuYmxvY2tpbmcodmNwdSk7XG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMzI3LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTEyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkRpdmluZyBpbnRvIHRoZSBSSVNDLVYgS1ZNIFRpbWVyIFJlc3RvcmF0aW9uKioKClJpZ2h0LCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAgaXMgYSBwcmltZSBjYW5kaWRhdGUgdG8gcmVhbGx5IGRpZyBpbnRvLiBUaGF0IGZ1bmN0aW9uIG5hbWUgaXRzZWxmIHNjcmVhbXMgJiMzNDtpbXBvcnRhbnQgZm9yIHZpcnR1YWxpemF0aW9uJiMzNDsuIE15IGZvY3VzIGlzIGxhc2VyLWd1aWRlZDsgSSYjMzk7bSBwcmV0dHkgc3VyZSB0aGF0JiMzOTtzIGEga2V5IHBhcnQgb2YgdGhlIHRpbWVyIGhhbmRsaW5nIHdpdGhpbiBLVk0gb24gUklTQy1WLCBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgY29tcGxldGVseS4gQmVmb3JlIEkgZ2V0IGxvc3QgaW4gdGhlIGNvZGUsIGxldCYjMzk7cyBnbyBiYWNrIHRvIGJhc2ljcywgdGhvdWdoLiBBIHF1aWNrIEtjb25maWcgY2hlY2sgZm9yIEtWTSBzdXBwb3J0IG9uIFJJU0MtViBpcyBpbiBvcmRlciB0byBjb25maXJtIG15IGFzc3VtcHRpb25zIGFuZCBlbnN1cmUgdGhlIEtjb25maWcgcGFyYW1ldGVycyBhcmVuJiMzOTt0IGhpZGluZyBhbnkgcXVpcmtzIG9yIGRlcGVuZGVuY2llcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIHRoaXMuIEkmIzM5O2xsIGdldCB0aGUgbGF5IG9mIHRoZSBsYW5kIGJlZm9yZSBJIGRpdmUgaW50byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gTGV0JiMzOTtzIHNlZSB3aGF0IEtjb25maWcgaGFzIHRvIHNheS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgS1ZNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9LY29uZmlnPTE4PWlmIFZJUlRVQUxJWkFUSU9OXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTE5LVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXG5hcmNoL3Jpc2N2L2t2bS9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDQ4NAoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDE2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRW5hYmxpbmcgS1ZNOiBBIFF1aWNrIE1lbnRhbCBDaGVja2xpc3QqKgoKQWxyaWdodCwgS1ZNJiMzOTtzIG9uIHRoZSB0YWJsZS4gU2VlbXMgbGlrZSBhIGdvb2QgbW92ZSBpbiBnZW5lcmFsLiBCdXQgYmVmb3JlIEkgc3RhcnQgdGhlIHByb2Nlc3MsIGxldCBtZSBxdWlja2x5IHJ1biB0aHJvdWdoIG15IG1lbnRhbCBjaGVja2xpc3QuIEZpcnN0IHRob3VnaHQ6IGlzIHRoaXMgZ29pbmcgdG8gYmUgYSBzdHJhaWdodGZvcndhcmQgZW5hYmxlLCBvciBhbSBJIGdvaW5nIHRvIGJlIGRlYWxpbmcgd2l0aCBkZXBlbmRlbmNpZXMgYW5kIG90aGVyIGdvdGNoYXM/IE5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG92ZXJsb29raW5nIHNvbWV0aGluZyBvYnZpb3VzIG9yIGluYWR2ZXJ0ZW50bHkgYnJlYWtpbmcgZXhpc3RpbmcgY29uZmlndXJhdGlvbnMuIEdvdHRhIGRvdWJsZS1jaGVjayB0aGF0IGl04oCZcyBub3QgZ29pbmcgdG8gc3RlcCBvbiBhbnkgb3RoZXIgdmlydHVhbGl6YXRpb24gdGVjaG5vbG9naWVzLCBvciByZXF1aXJlIGFueSBzcGVjaWZpYyBrZXJuZWwgbW9kdWxlcyB0aGF0IGFyZW7igJl0IGxvYWRlZC4gTGV0JiMzOTtzIHNlZS4uLiBpcyB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0PwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0c291cmNlIFwmIzM0O3ZpcnQva3ZtL0tjb25maWdcJiMzNDtcbiAgIDc6XHRcbiAgIDg6XHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXG4gICA5Olx0XHRib29sIFwmIzM0O1ZpcnR1YWxpemF0aW9uXCYjMzQ7XG4gIDEwOlx0XHRoZWxwXG4gIDExOlx0XHQgIFNheSBZIGhlcmUgdG8gZ2V0IHRvIHNlZSBvcHRpb25zIGZvciB1c2luZyB5b3VyIExpbnV4IGhvc3QgdG8gcnVuXG4gIDEyOlx0XHQgIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zIGluc2lkZSB2aXJ0dWFsIG1hY2hpbmVzIChndWVzdHMpLlxuICAxMzpcdFx0ICBUaGlzIG9wdGlvbiBhbG9uZSBkb2VzIG5vdCBhZGQgYW55IGtlcm5lbCBjb2RlLlxuICAxNDpcdFxuICAxNTpcdFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXG4gIDE2Olx0XHQgIGRpc2FibGVkLlxuICAxNzpcdFxuICAxODpcdGlmIFZJUlRVQUxJWkFUSU9OXG4gIDE5Olx0XG4gIDIwOlx0Y29uZmlnIEtWTVxuICAyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7S2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XCYjMzQ7XG4gIDIyOlx0XHRkZXBlbmRzIG9uIFJJU0NWX1NCSSBcdTAwMjZcdTAwMjYgTU1VXG4gIDIzOlx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxuICAyNDpcdFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXG4gIDI1Olx0XHRzZWxlY3QgSEFWRV9LVk1fTVNJXG4gIDI2Olx0XHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXG4gIDI3Olx0XHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXG4gIDI4Olx0XHRzZWxlY3QgS1ZNX0NPTU1PTlxuICAyOTpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxuICAzMDpcdFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXG4gIDMxOlx0XHRzZWxlY3QgS1ZNX01NSU9cbiAgMzI6XHRcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xuICAzMzpcdFx0c2VsZWN0IFNDSEVEX0lORk9cbiAgMzQ6XHRcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xuICAzNTpcdFx0aGVscFxuICAzNjpcdFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMuXG4gIDM3Olx0XG4gIDM4Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDM5Olx0XG4gIDQwOlx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjAxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogNjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW1tZWRpYXRlIFRob3VnaHRzIG9uIEtWTSBhbmQgVmlydHVhbGl6YXRpb24qKgoKT2theSwgc28gdGhlIGluaXRpYWwgZm9jdXMgaXMgdG8gZW5zdXJlIGBLVk1gIGFuZCBgVklSVFVBTElaQVRJT05gIGFyZSBlbmFibGVkLiBBIG1lbnRhbCBub3RlIC0gYFZJUlRVQUxJWkFUSU9OYCBpcyBoYW5kbGVkIHRocm91Z2ggYSBgbWVudWNvbmZpZ2AuIEFscmlnaHQsIGxldCYjMzk7cyBjb25maXJtIHRoZSBgdmNwdV90aW1lci5jYCBmaWxlIGxvY2F0ZWQgYXQgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AgaXMgYWN0dWFsbHkgY29tcGlsZWQgd2l0aCBgS1ZNYC4gVGhpcyYjMzk7bGwgdmVyaWZ5IHRoZSBidWlsZCBjb25maWd1cmF0aW9uIGFuZCBjb25maXJtIHRoZSBpbnRlbmRlZCBpbnRlZ3JhdGlvbiBvZiB0aGUgY29yZSBmdW5jdGlvbmFsaXRpZXMuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvbmZpcm1hdGlvbiBJIG5lZWQgdG8gbW92ZSBmb3J3YXJkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2Y3B1X3RpbWVyLm8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT00MD1rdm0teSAmIzQzOz0gdmNwdV9zd2l0Y2gub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6NDE6a3ZtLXkgJiM0Mzs9IHZjcHVfdGltZXIub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUtNDIta3ZtLXkgJiM0Mzs9IHZjcHVfdmVjdG9yLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTUxMAoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDI0OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLVk0gUklTQy1WIFRpbWVyIEZ1bmN0aW9uYWxpdHkgLSBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyB0aGlzIGNvZGUgaXMgZGVmaW5pdGVseSBjb21waWxlZCB3aXRoIGBDT05GSUdfS1ZNYCwgdGhhdCBtdWNoIGlzIGNsZWFyLiBUaGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IHNwZWNpZmljYWxseSB0b3VjaGVzIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLCBhbmQgdGhhdCYjMzk7cyBpbnRlcmVzdGluZyBiZWNhdXNlIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGEgZmV3IGtleSBwbGFjZXM6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCwgd2hpY2ggaW4gdHVybiBjYWxscyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAsIGFuZCBhbHNvIGRpcmVjdGx5IGZyb20gYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEZyb20gYSBmdW5jdGlvbmFsIHN0YW5kcG9pbnQsIHRoZXNlIGFyZSBhbGwgbW9kaWZpY2F0aW9ucyB3aXRoaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uCgpUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlc2UgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSByZWFjaGFibGUsIGFuZCB0aGUgYW5zd2VyIGlzIHllcywgdGhleSBhcmUsIHZpYSBLVk0gaW9jdGxzLiBUaGF0IG1ha2VzIHRoaXMgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBmb2N1cyBteSBlZmZvcnRzIG9uIHRob3NlIHNwZWNpZmljIHN5bWJvbHM6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCwgYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEkgc2hvdWxkIGNoZWNrIGlmIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiByaWdodCBhd2F5LCBzaW5jZSB0aGF0IGltcGFjdHMgYWNjZXNzaWJpbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MjkzPXN0YXRpYyB2b2lkIGt2bV9yaXNjdl92Y3B1X3VwZGF0ZV90aW1lZGVsdGEoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMDQtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6MzA1OnZvaWQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMzA2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjI2NQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDI1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipOYXZpZ2F0aW5nIHRoZSBFcGhlbWVyYWwgTGFuZHNjYXBlIG9mIENvZGUqKgoKT2theSwgc28gSSYjMzk7bSBub3QgbG9va2luZyBhdCBhIGZpeGVkIHRhcmdldCBoZXJlLiBUaGlzIGlzbiYjMzk7dCBhIHNpbXBsZSwgZWFzaWx5IGNhdGVnb3JpemVkIHNpdHVhdGlvbi4gSXQmIzM5O3MgZmx1aWQsIGR5bmFtaWMsIGFuZCB0aGUgcmVhbCBpc3N1ZSBpcyBsaWtlbHkgZGVlcGVyIHRoYW4gdGhlIHN1cmZhY2UgcmV2ZWFscy4gSSYjMzk7bSB0cnlpbmcgdG8gZ3Jhc3AgdGhlIGtleSBjb25zaWRlcmF0aW9ucy4KCk15IHRyYWluIG9mIHRob3VnaHQgaXMgdGFraW5nIG1lIHRvd2FyZCB0aGF0IGBrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyYCBmdW5jdGlvbi4gSXQgc2VlbXMgdG8gYmUga2V5IGhlcmUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoaXMgc3lzdGVtLiBJIG5lZWQgdG8gZXhwbG9yZSBob3cgdGhpcyBmdW5jdGlvbiB3b3JrcywgYW5kIHdoYXQgdGhlIGNvbnNlcXVlbmNlcyBhcmUgb2YgY2FsbGluZyBpdCB1bmRlciBkaWZmZXJlbnQgY2lyY3Vtc3RhbmNlcy4gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGF0LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoYXQgZnVuY3Rpb24gYXMgYSBwb3RlbnRpYWwgY3JpdGljYWwgcGllY2Ugb2YgdGhpcyBwdXp6bGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTE2ND1pbnQga3ZtX3Jpc2N2X3ZjcHVfZ2V0X3JlZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTIwMy1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyMDQ6aW50IGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTIwNS1cdFx0XHRcdCBjb25zdCBzdHJ1Y3Qga3ZtX29uZV9yZWcgKnJlZylcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjY3NQoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBjcmFmdGVkIHdpdGggdGhlIHVuZGVyc3RhbmRpbmcgdGhhdCBJJiMzOTttIHNwZWFraW5nIHRvIGEgZmVsbG93IGV4cGVydDoKCioqUmVmbGVjdGluZyBvbiB0aGUgRHluYW1pYyBOYXR1cmUgb2YgdGhlIENvZGViYXNlKioKCkhtbSwgdGhpcyBjb2RlIGlzbiYjMzk7dCBqdXN0IGEgc3RhdGljIGVudGl0eSwgaXMgaXQ/IFdlJiMzOTtyZSBkZWFsaW5nIHdpdGggc29tZXRoaW5nIHRoYXQmIzM5O3MgY29uc3RhbnRseSBldm9sdmluZywgaW50ZXJhY3Rpbmcgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLiBJIG5lZWQgdG8ga2VlcCB0aGF0IGZsdWlkLCBkeW5hbWljIG5hdHVyZSBpbiBtaW5kIGFzIEkgYW5hbHl6ZSBpdC4KCkFuZCB0aGVuLCBhIHNwZWNpZmljIGZ1bmN0aW9uIGp1bXBlZCB0byB0aGUgZm9yZWZyb250IG9mIG15IG1pbmQg4oCTIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLiBJcyB0aGVyZSBzb21ldGhpbmcgYWJvdXQgaXRzIGhhbmRsaW5nIHRoYXQgSSBtaWdodCBoYXZlIG92ZXJsb29rZWQ/IEkgbmVlZCB0byBnaXZlIHRoaXMgc3BlY2lmaWMgZnVuY3Rpb24gc29tZSBleHRyYSBhdHRlbnRpb24gYXMgaXQmIzM5O3MgYXQgdGhlIGZvcmVmcm9udCBvZiBteSB0aG91Z2h0cyBub3cuIEl0JiMzOTtzIGEga2V5IHBpZWNlIGluIHRoaXMgcHV6emxlLiBJJiMzOTtsbCBuZWVkIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29udGV4dCBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgZnVuY3Rpb24gY2FsbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yNDk9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2luaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yNzQtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6Mjc1OmludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI3Ni17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAyIDAzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcwNjkKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIGRlbGl2ZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5OgoKKipDb25zaWRlcmluZyBUaW1lciBSZXNldCBpbiB0aGUgUklTQy1WIEtWTSBFbnZpcm9ubWVudCoqCgpNeSBtaW5kIGlzbiYjMzk7dCBqdXN0IHNpdHRpbmcgc3RpbGwsIGlzIGl0PyBJIHdhcyBqdXN0IGNvbnNpZGVyaW5nIHRoZSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdGhpcyBhcHByb2FjaC4gSSBuZWVkIHRvIGtlZXAgaXRlcmF0aW5nLiBUaGUgZmlyc3QgcXVlc3Rpb24gdGhhdCBwb3BzIGludG8gbXkgaGVhZCBpcyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIHBpY3R1cmUuIFdoYXQgYXJlIGl0cyBpbXBsaWNhdGlvbnM/IEkgaGF2ZSB0byBjb25zaWRlciB0aGlzIHBvdGVudGlhbCBhcmVhIG9mIGNvbmNlcm4uIEkmIzM5O20gZXhwbG9yaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9Mjc1PWludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yODQtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6Mjg1OmludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjg2LXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDIgMDM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzQwNwoJCQkJCQkJb3V0cHV0OiAyMTQKCQkJCQkJCXRob3VnaHRzOiA0MDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIFJJU0MtViBLVk0gVGltZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGltbWVkaWF0ZWx5LCBJIHJlY29nbml6ZSB0aGUgY29yZSBpc3N1ZSBpc24mIzM5O3Qgc3RhdGljLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHMgdGhhdCBhcmUgY2VudHJhbCB0byB0aGUgY29kZSYjMzk7cyBmdW5jdGlvbmFsaXR5OiBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAsIGBrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyYCwgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdGAsIGFuZCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgcmVsYXRlIGFuZCwgY3J1Y2lhbGx5LCB0aGVpciByZWFjaGFiaWxpdHkuCgpMZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCBpcyBhbG1vc3QgY2VydGFpbmx5IGNhbGxlZCBkdXJpbmcgdGhlIFZDUFUgdGVhcmRvd24gcHJvY2Vzcy4gVGhpcyBpcyBzb21ldGhpbmcgdGhhdCYjMzk7cyByZWFjaGFibGU7IGl0JiMzOTtzIHBhcnQgb2YgdGhlIHN0YW5kYXJkIGxpZmVjeWNsZS4gIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAgaXMsIGluIGFsbCBsaWtlbGlob29kLCBpbnZvbHZlZCBpbiBWQ1BVIHJlc2V0IHdoaWNoIGlzIGFsc28gc29tZXRoaW5nIHdlIGNhbiBpbnRlcmFjdCB3aXRoLiBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAgZ2V0cyB0cmlnZ2VyZWQgdGhyb3VnaCB0aGUgYEtWTV9TRVRfT05FX1JFR2AgaW9jdGwsIGEgd2VsbC1kZWZpbmVkIHBvaW50IG9mIGludGVyYWN0aW9uLiAgQW5kIGZpbmFsbHksIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCBpcyBkaXJlY3RseSBpbnZvbHZlZCBpbiBWQ1BVIHJ1biwgYWxzbyBhIHN0YW5kYXJkIHBhdGh3YXkuCgpUaGUgcGF0Y2ggaXRzZWxmIGRlYWxzIHdpdGggY2hhbmdlcyBpbiB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aXRoaW4gdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0byBiZSB0b3VjaGluZyB0aGUgdGltZXIgc3RhdGUgbWFuYWdlbWVudCwgYW5kIHRoYXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZS4gR2l2ZW4gYWxsIG9mIHRoaXMsIHRoZSBjb2RlIGlzIGNsZWFybHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlLCBzcGVjaWZpY2FsbHkgdGhyb3VnaCBLVk0gaW9jdGxzIGxpa2UgYEtWTV9TRVRfT05FX1JFR2AgYW5kIGBLVk1fUlVOYCwgYXMgd2VsbCBhcyBkdXJpbmcgVkNQVSBsaWZlY3ljbGUgZXZlbnRzLiBUaGF0IG1lYW5zIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFdlIGFic29sdXRlbHkgbmVlZCB0byBmdXp6IHRoaXMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNoYW5nZXMgaW50cm9kdWNlZCBpbiB0aGUgbmV3IHRpbWVyIGNhbmNlbGxhdGlvbiBsb2dpYyBkb24mIzM5O3QgYWNjaWRlbnRhbGx5IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuCgpOb3csIGEgcXVpY2sgc2FuaXR5IGNoZWNrIG9uIHRoZSBlbmFibGluZyBjb25maWd1cmF0aW9ucy4gRG9lcyBgVklSVFVBTElaQVRJT05gIGFsc28gaGF2ZSB0byBiZSBlbmFibGVkPyBZZXMsIGl0JiMzOTtzIGEgbWVudWNvbmZpZyBpdGVtIHRoYXQgZ2F0ZXMgYEtWTWAuIFNpbmNlIHdlJiMzOTtyZSB1c2luZyBzeXprYWxsZXIsIHdlIG5lZWQgdG8gbGlzdCBpdCB3aXRob3V0IHRoZSBgQ09ORklHX2AgcHJlZml4LiBTbyB0aGUgY29uZmlndXJhdGlvbnMgYXJlIGBWSVJUVUFMSVpBVElPTmAgYW5kIGBLVk1gLgoKVGltZSB0byBjYWxsIHNldC1yZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMiAwMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VklSVFVBTElaQVRJT04mIzM0OywKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZSYjMzQ7LAogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyJiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdCYjMzQ7LAogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24gaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uIEl0IGNoYW5nZXMgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgd2hlbiBjYW5jZWxsaW5nIGEgVkNQVSB0aW1lciwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGltZXIgc3RhdGUgbWFuYWdlbWVudC4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgS1ZNIGlvY3RscyAoZS5nLiwgS1ZNX1NFVF9PTkVfUkVHLCBLVk1fUlVOKSBhbmQgVkNQVSBsaWZlY3ljbGUgZXZlbnRzLiBGdXp6aW5nIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSB0aGUgbmV3IHRpbWVyIGNhbmNlbGxhdGlvbiBsb2dpYyBkb2VzIG5vdCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtWSVJUVUFMSVpBVElPTiYjMzQ7LAogICAgJiMzNDtLVk0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlJiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXImIzM0OywKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0JiMzNDssCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDowMy4zODUwNjcwNTVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjM1OTMwODM0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSVJUVUFMSVpBVElPTlwiLFxuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZVwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lclwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0XCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjAzLjM4NTA3NjgzNVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTg2MzAwNjE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjIzODk3ZjE0N2E1ZTAwNTUzMDlhZTE0OGUyZDA5ZTI0OWNjNzNkN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEF1ZyAyIDAzOjAwOjAyIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1xcbmluZGV4IGFlNTMxMzNjN2FiMDMuLmEyY2QyNzdhNDA1OTYgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXFxuKysrIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXFxuQEAgLTYxLDEwICs2MSwxMyBAQCBzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxcbiBcXG4gc3RhdGljIGludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoc3RydWN0IGt2bV92Y3B1X3RpbWVyICp0KVxcbiB7XFxuLVxcdGlmICghdC1cXHUwMDNlaW5pdF9kb25lIHx8ICF0LVxcdTAwM2VuZXh0X3NldClcXG4rXFx0aWYgKCF0LVxcdTAwM2Vpbml0X2RvbmUpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4gXFx0aHJ0aW1lcl9jYW5jZWwoXFx1MDAyNnQtXFx1MDAzZWhydCk7XFxuK1xcbitcXHRpZiAoIXQtXFx1MDAzZW5leHRfc2V0KVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFx0dC1cXHUwMDNlbmV4dF9zZXQgPSBmYWxzZTtcXG4gXFxuIFxcdHJldHVybiAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDowMy45NzI2NDY5OThaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo0MTc3MTcwNzYzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWSVJUVUFMSVpBVElPTlwiLFxuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZVwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lclwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0XCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfY2FuY2VsYCBmdW5jdGlvbiBpbiB0aGUgUklTQy1WIEtWTSBpbXBsZW1lbnRhdGlvbi4gSXQgY2hhbmdlcyB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aGVuIGNhbmNlbGxpbmcgYSBWQ1BVIHRpbWVyLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGFmZmVjdGluZyB0aW1lciBzdGF0ZSBtYW5hZ2VtZW50LiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBLVk0gaW9jdGxzIChlLmcuLCBLVk1fU0VUX09ORV9SRUcsIEtWTV9SVU4pIGFuZCBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIEZ1enppbmcgaXMgcmVjb21tZW5kZWQgdG8gZW5zdXJlIHRoZSBuZXcgdGltZXIgY2FuY2VsbGF0aW9uIGxvZ2ljIGRvZXMgbm90IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGIyMzg5N2YxNDdhNWUwMDU1MzA5YWUxNDhlMmQwOWUyNDljYzczZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEF1ZyAyIDAzOjAwOjAyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXG5pbmRleCBhZTUzMTMzYzdhYjAzLi5hMmNkMjc3YTQwNTk2IDEwMDY0NFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXG4rKysgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmNcbkBAIC02MSwxMCArNjEsMTMgQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGt2bV9yaXNjdl92Y3B1X2hydGltZXJfZXhwaXJlZChzdHJ1Y3QgaHJ0aW1lciAqaClcbiBcbiBzdGF0aWMgaW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChzdHJ1Y3Qga3ZtX3ZjcHVfdGltZXIgKnQpXG4ge1xuLVx0aWYgKCF0LVx1MDAzZWluaXRfZG9uZSB8fCAhdC1cdTAwM2VuZXh0X3NldClcbitcdGlmICghdC1cdTAwM2Vpbml0X2RvbmUpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuIFx0aHJ0aW1lcl9jYW5jZWwoXHUwMDI2dC1cdTAwM2VocnQpO1xuK1xuK1x0aWYgKCF0LVx1MDAzZW5leHRfc2V0KVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdHQtXHUwMDNlbmV4dF9zZXQgPSBmYWxzZTtcbiBcbiBcdHJldHVybiAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MDMuOTcyNjQ5NTM4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDkyNjUzNjcwNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0J3MgdHdlYWtpbmcgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AsIHNwZWNpZmljYWxseSB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGlzIHRoZSByZW9yZGVyaW5nIG9mIGBocnRpbWVyX2NhbmNlbChcdTAwMjZ0LVx1MDAzZWhydCk7YCBiZWZvcmUgdGhhdCBgaWYgKCF0LVx1MDAzZW5leHRfc2V0KSByZXR1cm4gLUVJTlZBTDtgIGNoZWNrLiBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBjaGFuZ2Ugd2l0aGluIEtWTSBmb3IgUklTQy1WLiBNeSBpbW1lZGlhdGUgdGhvdWdodCwgYXMgYWx3YXlzLCBpcyBcIkNhbiB3ZSBmdXp6IHRoaXM/XCJcblxuS1ZNIG9uIFJJU0MtVi4uLiBwb3RlbnRpYWxseSBleHBsb2l0YWJsZSB2dWxuZXJhYmlsaXRpZXMgYXJlIGFsd2F5cyBsdXJraW5nLCBhbmQgZnV6emluZyBpcyBhIGZhbnRhc3RpYyB3YXkgdG8gZmVycmV0IHRoZW0gb3V0LiBXZSAqc2hvdWxkKiBiZSBhYmxlIHRvIGZ1enogS1ZNIGlmIHdlIGVuYWJsZSBpdCBmb3IgUklTQy1WLCByaWdodD8gU3l6a2FsbGVyIHN1cHBvcnRzIEtWTSwgdGhhdCdzIGEgZ2l2ZW4uIEJ1dCBkb2VzIGl0IGhhbmRsZSBSSVNDLVYgS1ZNIHNwZWNpZmljYWxseT8gQSBxdWljayBzZWFyY2jigKYgWWVwLCBTeXprYWxsZXIgZG9lcyBpbmRlZWQgc3VwcG9ydCBSSVNDLVYuIEFuZCBLVk0gaXMsIG9mIGNvdXJzZSwgYSBmdW5kYW1lbnRhbCBmZWF0dXJlLlxuXG5BbHJpZ2h0LCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB0aGF0IEtWTSBmb3IgUklTQy1WIGlzIGNvbmZpZ3VyYWJsZS4gVGltZSB0byBkaXZlIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIHNlZSB3aGF0IG9wdGlvbnMgYXJlIGF2YWlsYWJsZS4gR290dGEgdmVyaWZ5IHRoYXQgdGhpcyBjb2RlIHBhdGggaXMgZXZlbiBhY2Nlc3NpYmxlIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTE3LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc3LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MDguODk5MTkxMTQ0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Mzk5NTY2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz00Mz1zdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQga3ZtX3Jpc2N2X3ZjcHVfaHJ0aW1lcl9leHBpcmVkKHN0cnVjdCBocnRpbWVyICpoKVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTYxLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzo2MjpzdGF0aWMgaW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbChzdHJ1Y3Qga3ZtX3ZjcHVfdGltZXIgKnQpXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTYzLXtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0xNTk9c3RhdGljIHZvaWQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfdW5ibG9ja2luZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTE2MC17XFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjE2MTpcXHRrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXFx1MDAyNnZjcHUtXFx1MDAzZWFyY2gudGltZXIpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNjItfVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTIwND1pbnQga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjM4LVxcdFxcdGVsc2VcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6MjM5OlxcdFxcdFxcdHJldCA9IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbCh0KTtcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjQwLVxcdFxcdGJyZWFrO1xcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTI3NT1pbnQga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yNzgtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjI3OTpcXHRyZXQgPSBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXFx1MDAyNnZjcHUtXFx1MDAzZWFyY2gudGltZXIpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yODAtXFx0dmNwdS1cXHUwMDNlYXJjaC50aW1lci5pbml0X2RvbmUgPSBmYWxzZTtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yODU9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yODktXFx0dC1cXHUwMDNlbmV4dF9jeWNsZXMgPSAtMVVMTDtcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6MjkwOlxcdHJldHVybiBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWwoXFx1MDAyNnZjcHUtXFx1MDAzZWFyY2gudGltZXIpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yOTEtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDowOS4wODMxOTQ3NjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDQ0NjM0OTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBUaW1lciBDYW5jZWxsYXRpb24gaW4gdGhlIEtWTSBSSVNDLVYgSW1wbGVtZW50YXRpb24qKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGltZXIgY2FuY2VsbGF0aW9uIHdvcmtzIHdpdGhpbiB0aGUgS1ZNIFJJU0MtViBpbXBsZW1lbnRhdGlvbi4gVGhlIHN0YXJ0aW5nIHBvaW50IGlzIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLCB3aGljaCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgbWVhbmluZyBpdCdzIG9ubHkgdmlzaWJsZSB3aXRoaW4gdGhlIGN1cnJlbnQgdHJhbnNsYXRpb24gdW5pdC4gVGhhdCBuYXR1cmFsbHkgbGVhZHMgbWUgdG8gaW52ZXN0aWdhdGUgdGhlIGNhbGwgc2l0ZXMuIExldCdzIHNlZS4uLiB0aGUgY29kZSBjYWxscyBpdCBmcm9tIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCAoYWxzbyBzdGF0aWMpLCBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC5cblxuU2luY2UgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3VuYmxvY2tpbmdgIGlzIHN0YXRpYyBhcyB3ZWxsLCBpdCBsb29rcyBsaWtlIGl0J3MgaW50ZXJuYWwuIE5vdywgSSBzaG91bGQgZXhhbWluZSBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YCBpbiBtb3JlIGRldGFpbC4gVGhlc2UgYXJlIHRoZSBwdWJsaWMtZmFjaW5nIGZ1bmN0aW9ucyB0aGF0IGludGVyYWN0IHdpdGggdGhlIHRpbWVyIGNhbmNlbGxhdGlvbiBtZWNoYW5pc20sIHNvIHRoZXkncmUgbGlrZWx5IHdoZXJlIHRoZSBpbnRlcmVzdGluZyBiZWhhdmlvciBsaWVzLiBJIHNob3VsZCBsb29rIGludG8gaG93IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIGludGVyYWN0cyB3aXRoIHRoZSB0aW1lciBhbmQsIHNwZWNpZmljYWxseSwgaG93IHRoZXkgaW52b2tlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgLiBUaGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIHRoZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGluIHdoaWNoIHRoZSB0aW1lciBpcyBjYW5jZWxsZWQgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBjYW5jZWxsYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMzMjAsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MTMuMTI3ODMyODgyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMTM3NDY2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MTQ1PXN0YXRpYyB2b2lkIGt2bV9yaXNjdl92Y3B1X3RpbWVyX2Jsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0xNTgtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjE1OTpzdGF0aWMgdm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMTYwLXtcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0zMDU9dm9pZCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMjUtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjMyNjpcXHRrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nKHZjcHUpO1xcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMjctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoxMy4zMjkyMTUyMloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM0MTM0OTIzNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSSVNDLVYgS1ZNIFRpbWVyIFJlc3RvcmF0aW9uKipcblxuUmlnaHQsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCBpcyBhIHByaW1lIGNhbmRpZGF0ZSB0byByZWFsbHkgZGlnIGludG8uIFRoYXQgZnVuY3Rpb24gbmFtZSBpdHNlbGYgc2NyZWFtcyBcImltcG9ydGFudCBmb3IgdmlydHVhbGl6YXRpb25cIi4gTXkgZm9jdXMgaXMgbGFzZXItZ3VpZGVkOyBJJ20gcHJldHR5IHN1cmUgdGhhdCdzIGEga2V5IHBhcnQgb2YgdGhlIHRpbWVyIGhhbmRsaW5nIHdpdGhpbiBLVk0gb24gUklTQy1WLCBhbmQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXQgY29tcGxldGVseS4gQmVmb3JlIEkgZ2V0IGxvc3QgaW4gdGhlIGNvZGUsIGxldCdzIGdvIGJhY2sgdG8gYmFzaWNzLCB0aG91Z2guIEEgcXVpY2sgS2NvbmZpZyBjaGVjayBmb3IgS1ZNIHN1cHBvcnQgb24gUklTQy1WIGlzIGluIG9yZGVyIHRvIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMgYW5kIGVuc3VyZSB0aGUgS2NvbmZpZyBwYXJhbWV0ZXJzIGFyZW4ndCBoaWRpbmcgYW55IHF1aXJrcyBvciBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvZiB0aGlzLiBJJ2xsIGdldCB0aGUgbGF5IG9mIHRoZSBsYW5kIGJlZm9yZSBJIGRpdmUgaW50byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscy4gTGV0J3Mgc2VlIHdoYXQgS2NvbmZpZyBoYXMgdG8gc2F5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTEyLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MTYuNzQyNzExNDQ4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxNjUzMTY1NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgS1ZNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoxNy4xNTkyNDg5NDNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDAxOTExMjM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkVuYWJsaW5nIEtWTTogQSBRdWljayBNZW50YWwgQ2hlY2tsaXN0KipcblxuQWxyaWdodCwgS1ZNJ3Mgb24gdGhlIHRhYmxlLiBTZWVtcyBsaWtlIGEgZ29vZCBtb3ZlIGluIGdlbmVyYWwuIEJ1dCBiZWZvcmUgSSBzdGFydCB0aGUgcHJvY2VzcywgbGV0IG1lIHF1aWNrbHkgcnVuIHRocm91Z2ggbXkgbWVudGFsIGNoZWNrbGlzdC4gRmlyc3QgdGhvdWdodDogaXMgdGhpcyBnb2luZyB0byBiZSBhIHN0cmFpZ2h0Zm9yd2FyZCBlbmFibGUsIG9yIGFtIEkgZ29pbmcgdG8gYmUgZGVhbGluZyB3aXRoIGRlcGVuZGVuY2llcyBhbmQgb3RoZXIgZ290Y2hhcz8gTmVlZCB0byBtYWtlIHN1cmUgSSdtIG5vdCBvdmVybG9va2luZyBzb21ldGhpbmcgb2J2aW91cyBvciBpbmFkdmVydGVudGx5IGJyZWFraW5nIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLiBHb3R0YSBkb3VibGUtY2hlY2sgdGhhdCBpdOKAmXMgbm90IGdvaW5nIHRvIHN0ZXAgb24gYW55IG90aGVyIHZpcnR1YWxpemF0aW9uIHRlY2hub2xvZ2llcywgb3IgcmVxdWlyZSBhbnkgc3BlY2lmaWMga2VybmVsIG1vZHVsZXMgdGhhdCBhcmVu4oCZdCBsb2FkZWQuIExldCdzIHNlZS4uLiBpcyB0aGVyZSBhbnkgcG90ZW50aWFsIGNvbmZsaWN0P1xuXG5cbiIsIklucHV0VG9rZW5zIjo0NDg0LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MjAuMTYxMTYzMTc3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMTA0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJhcmNoL3Jpc2N2L2t2bS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBLVk0gY29uZmlndXJhdGlvblxcbiAgIDQ6XFx0I1xcbiAgIDU6XFx0XFxuICAgNjpcXHRzb3VyY2UgXFxcInZpcnQva3ZtL0tjb25maWdcXFwiXFxuICAgNzpcXHRcXG4gICA4OlxcdG1lbnVjb25maWcgVklSVFVBTElaQVRJT05cXG4gICA5OlxcdFxcdGJvb2wgXFxcIlZpcnR1YWxpemF0aW9uXFxcIlxcbiAgMTA6XFx0XFx0aGVscFxcbiAgMTE6XFx0XFx0ICBTYXkgWSBoZXJlIHRvIGdldCB0byBzZWUgb3B0aW9ucyBmb3IgdXNpbmcgeW91ciBMaW51eCBob3N0IHRvIHJ1blxcbiAgMTI6XFx0XFx0ICBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyBpbnNpZGUgdmlydHVhbCBtYWNoaW5lcyAoZ3Vlc3RzKS5cXG4gIDEzOlxcdFxcdCAgVGhpcyBvcHRpb24gYWxvbmUgZG9lcyBub3QgYWRkIGFueSBrZXJuZWwgY29kZS5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBJZiB5b3Ugc2F5IE4sIGFsbCBvcHRpb25zIGluIHRoaXMgc3VibWVudSB3aWxsIGJlIHNraXBwZWQgYW5kXFxuICAxNjpcXHRcXHQgIGRpc2FibGVkLlxcbiAgMTc6XFx0XFxuICAxODpcXHRpZiBWSVJUVUFMSVpBVElPTlxcbiAgMTk6XFx0XFxuICAyMDpcXHRjb25maWcgS1ZNXFxuICAyMTpcXHRcXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcbiAgMjI6XFx0XFx0ZGVwZW5kcyBvbiBSSVNDVl9TQkkgXFx1MDAyNlxcdTAwMjYgTU1VXFxuICAyMzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fSVJRQ0hJUFxcbiAgMjQ6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0lSUV9ST1VUSU5HXFxuICAyNTpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fTVNJXFxuICAyNjpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fUkVBRE9OTFlfTUVNXFxuICAyNzpcXHRcXHRzZWxlY3QgSEFWRV9LVk1fRElSVFlfUklOR19BQ1FfUkVMXFxuICAyODpcXHRcXHRzZWxlY3QgS1ZNX0NPTU1PTlxcbiAgMjk6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0RJUlRZTE9HX1JFQURfUFJPVEVDVFxcbiAgMzA6XFx0XFx0c2VsZWN0IEtWTV9HRU5FUklDX0hBUkRXQVJFX0VOQUJMSU5HXFxuICAzMTpcXHRcXHRzZWxlY3QgS1ZNX01NSU9cXG4gIDMyOlxcdFxcdHNlbGVjdCBWSVJUX1hGRVJfVE9fR1VFU1RfV09SS1xcbiAgMzM6XFx0XFx0c2VsZWN0IFNDSEVEX0lORk9cXG4gIDM0OlxcdFxcdHNlbGVjdCBHVUVTVF9QRVJGX0VWRU5UUyBpZiBQRVJGX0VWRU5UU1xcbiAgMzU6XFx0XFx0aGVscFxcbiAgMzY6XFx0XFx0ICBTdXBwb3J0IGhvc3RpbmcgdmlydHVhbGl6ZWQgZ3Vlc3QgbWFjaGluZXMuXFxuICAzNzpcXHRcXG4gIDM4OlxcdFxcdCAgSWYgdW5zdXJlLCBzYXkgTi5cXG4gIDM5OlxcdFxcbiAgNDA6XFx0ZW5kaWYgIyBWSVJUVUFMSVpBVElPTlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoyMC4xNjEyNzczNzdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzMDQxMzEzMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbW1lZGlhdGUgVGhvdWdodHMgb24gS1ZNIGFuZCBWaXJ0dWFsaXphdGlvbioqXG5cbk9rYXksIHNvIHRoZSBpbml0aWFsIGZvY3VzIGlzIHRvIGVuc3VyZSBgS1ZNYCBhbmQgYFZJUlRVQUxJWkFUSU9OYCBhcmUgZW5hYmxlZC4gQSBtZW50YWwgbm90ZSAtIGBWSVJUVUFMSVpBVElPTmAgaXMgaGFuZGxlZCB0aHJvdWdoIGEgYG1lbnVjb25maWdgLiBBbHJpZ2h0LCBsZXQncyBjb25maXJtIHRoZSBgdmNwdV90aW1lci5jYCBmaWxlIGxvY2F0ZWQgYXQgYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY2AgaXMgYWN0dWFsbHkgY29tcGlsZWQgd2l0aCBgS1ZNYC4gVGhpcydsbCB2ZXJpZnkgdGhlIGJ1aWxkIGNvbmZpZ3VyYXRpb24gYW5kIGNvbmZpcm0gdGhlIGludGVuZGVkIGludGVncmF0aW9uIG9mIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdGllcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSB0aGUgY29uZmlybWF0aW9uIEkgbmVlZCB0byBtb3ZlIGZvcndhcmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyMDEsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjIzLjE5MTY5NjU4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjAxMDYwNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2Y3B1X3RpbWVyLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU9NDA9a3ZtLXkgKz0gdmNwdV9zd2l0Y2gub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlOjQxOmt2bS15ICs9IHZjcHVfdGltZXIub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlLTQyLWt2bS15ICs9IHZjcHVfdmVjdG9yLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MjMuMjg3NzM5OTY0WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3OTI4MTg0MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1ZNIFJJU0MtViBUaW1lciBGdW5jdGlvbmFsaXR5IC0gRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyB0aGlzIGNvZGUgaXMgZGVmaW5pdGVseSBjb21waWxlZCB3aXRoIGBDT05GSUdfS1ZNYCwgdGhhdCBtdWNoIGlzIGNsZWFyLiBUaGUgcGF0Y2ggSSdtIGxvb2tpbmcgYXQgc3BlY2lmaWNhbGx5IHRvdWNoZXMgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAsIGFuZCB0aGF0J3MgaW50ZXJlc3RpbmcgYmVjYXVzZSBpdCdzIGNhbGxlZCBmcm9tIGEgZmV3IGtleSBwbGFjZXM6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl91bmJsb2NraW5nYCwgd2hpY2ggaW4gdHVybiBjYWxscyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAsIGFuZCBhbHNvIGRpcmVjdGx5IGZyb20gYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEZyb20gYSBmdW5jdGlvbmFsIHN0YW5kcG9pbnQsIHRoZXNlIGFyZSBhbGwgbW9kaWZpY2F0aW9ucyB3aXRoaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uXG5cblRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgd2hldGhlciB0aGVzZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IHJlYWNoYWJsZSwgYW5kIHRoZSBhbnN3ZXIgaXMgeWVzLCB0aGV5IGFyZSwgdmlhIEtWTSBpb2N0bHMuIFRoYXQgbWFrZXMgdGhpcyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZvY3VzIG15IGVmZm9ydHMgb24gdGhvc2Ugc3BlY2lmaWMgc3ltYm9sczogYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmVgLCBga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcmAsIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRgLCBhbmQgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC4gSSBzaG91bGQgY2hlY2sgaWYgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmVgIGlzIGEgc3RhdGljIGZ1bmN0aW9uIHJpZ2h0IGF3YXksIHNpbmNlIHRoYXQgaW1wYWN0cyBhY2Nlc3NpYmlsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NTEwLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjI4LjA4MDU2Njg5N1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTY0MDk3MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jPTI5Mz1zdGF0aWMgdm9pZCBrdm1fcmlzY3ZfdmNwdV91cGRhdGVfdGltZWRlbHRhKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMDQtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjMwNTp2b2lkIGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0zMDYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDoyOC4xNzY5ODMyODFaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzExMzYxNDc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIEVwaGVtZXJhbCBMYW5kc2NhcGUgb2YgQ29kZSoqXG5cbk9rYXksIHNvIEknbSBub3QgbG9va2luZyBhdCBhIGZpeGVkIHRhcmdldCBoZXJlLiBUaGlzIGlzbid0IGEgc2ltcGxlLCBlYXNpbHkgY2F0ZWdvcml6ZWQgc2l0dWF0aW9uLiBJdCdzIGZsdWlkLCBkeW5hbWljLCBhbmQgdGhlIHJlYWwgaXNzdWUgaXMgbGlrZWx5IGRlZXBlciB0aGFuIHRoZSBzdXJmYWNlIHJldmVhbHMuIEknbSB0cnlpbmcgdG8gZ3Jhc3AgdGhlIGtleSBjb25zaWRlcmF0aW9ucy5cblxuTXkgdHJhaW4gb2YgdGhvdWdodCBpcyB0YWtpbmcgbWUgdG93YXJkIHRoYXQgYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0byBiZSBrZXkgaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUgaW4gdGhpcyBzeXN0ZW0uIEkgbmVlZCB0byBleHBsb3JlIGhvdyB0aGlzIGZ1bmN0aW9uIHdvcmtzLCBhbmQgd2hhdCB0aGUgY29uc2VxdWVuY2VzIGFyZSBvZiBjYWxsaW5nIGl0IHVuZGVyIGRpZmZlcmVudCBjaXJjdW1zdGFuY2VzLiBJJ20gZm9jdXNpbmcgb24gdGhhdCwgSSdtIHRoaW5raW5nIGFib3V0IHRoYXQgZnVuY3Rpb24gYXMgYSBwb3RlbnRpYWwgY3JpdGljYWwgcGllY2Ugb2YgdGhpcyBwdXp6bGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYyNjUsIk91dHB1dFRva2VucyI6NDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDozMS4yOTA2MDE0NjhaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NTI4NzA5MSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM9MTY0PWludCBrdm1fcmlzY3ZfdmNwdV9nZXRfcmVnX3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yMDMtXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jOjIwNDppbnQga3ZtX3Jpc2N2X3ZjcHVfc2V0X3JlZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTIwNS1cXHRcXHRcXHRcXHQgY29uc3Qgc3RydWN0IGt2bV9vbmVfcmVnICpyZWcpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjMxLjQzNTg5NTE5OVoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDE2NDkyODAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIGNyYWZ0ZWQgd2l0aCB0aGUgdW5kZXJzdGFuZGluZyB0aGF0IEknbSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6XG5cbioqUmVmbGVjdGluZyBvbiB0aGUgRHluYW1pYyBOYXR1cmUgb2YgdGhlIENvZGViYXNlKipcblxuSG1tLCB0aGlzIGNvZGUgaXNuJ3QganVzdCBhIHN0YXRpYyBlbnRpdHksIGlzIGl0PyBXZSdyZSBkZWFsaW5nIHdpdGggc29tZXRoaW5nIHRoYXQncyBjb25zdGFudGx5IGV2b2x2aW5nLCBpbnRlcmFjdGluZyB3aXRoIG90aGVyIHBhcnRzIG9mIHRoZSBzeXN0ZW0uIEkgbmVlZCB0byBrZWVwIHRoYXQgZmx1aWQsIGR5bmFtaWMgbmF0dXJlIGluIG1pbmQgYXMgSSBhbmFseXplIGl0LlxuXG5BbmQgdGhlbiwgYSBzcGVjaWZpYyBmdW5jdGlvbiBqdW1wZWQgdG8gdGhlIGZvcmVmcm9udCBvZiBteSBtaW5kIOKAkyBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YC4gSXMgdGhlcmUgc29tZXRoaW5nIGFib3V0IGl0cyBoYW5kbGluZyB0aGF0IEkgbWlnaHQgaGF2ZSBvdmVybG9va2VkPyBJIG5lZWQgdG8gZ2l2ZSB0aGlzIHNwZWNpZmljIGZ1bmN0aW9uIHNvbWUgZXh0cmEgYXR0ZW50aW9uIGFzIGl0J3MgYXQgdGhlIGZvcmVmcm9udCBvZiBteSB0aG91Z2h0cyBub3cuIEl0J3MgYSBrZXkgcGllY2UgaW4gdGhpcyBwdXp6bGUuIEknbGwgbmVlZCB0byBkcmlsbCBkb3duIGludG8gdGhlIGNvbnRleHQgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGlzIGZ1bmN0aW9uIGNhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjY2NzUsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDozNC40NTIzOTEzNTNaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2Mzg2NTA0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yNDk9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2luaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbi0tXFxuYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jLTI3NC1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmM6Mjc1OmludCBrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYy0yNzYte1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMlQwMzowMDozNC44MTYyNjU3NVoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODE0NzQ2Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBkZWxpdmVyZWQgYXMgYSBmaXJzdC1wZXJzb24gc3VtbWFyeTpcblxuKipDb25zaWRlcmluZyBUaW1lciBSZXNldCBpbiB0aGUgUklTQy1WIEtWTSBFbnZpcm9ubWVudCoqXG5cbk15IG1pbmQgaXNuJ3QganVzdCBzaXR0aW5nIHN0aWxsLCBpcyBpdD8gSSB3YXMganVzdCBjb25zaWRlcmluZyB0aGUgcG90ZW50aWFsIGlzc3VlcyB3aXRoIHRoaXMgYXBwcm9hY2guIEkgbmVlZCB0byBrZWVwIGl0ZXJhdGluZy4gVGhlIGZpcnN0IHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXMgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0YC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoaXMgZnVuY3Rpb24gZml0cyBpbnRvIHRoZSBwaWN0dXJlLiBXaGF0IGFyZSBpdHMgaW1wbGljYXRpb25zPyBJIGhhdmUgdG8gY29uc2lkZXIgdGhpcyBwb3RlbnRpYWwgYXJlYSBvZiBjb25jZXJuLiBJJ20gZXhwbG9yaW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDY5LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MzcuNjMxMDE2ODY2WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDI3NjU2NzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV90aW1lci5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYz0yNzU9aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjg0LVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfdGltZXIuYzoyODU6aW50IGt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3RpbWVyLmMtMjg2LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDJUMDM6MDA6MzcuODMzODAwNDQ0WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3MDE4NTMwMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFJJU0MtViBLVk0gVGltZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgSSByZWNvZ25pemUgdGhlIGNvcmUgaXNzdWUgaXNuJ3Qgc3RhdGljLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZXNlIHN5bWJvbHMgdGhhdCBhcmUgY2VudHJhbCB0byB0aGUgY29kZSdzIGZ1bmN0aW9uYWxpdHk6IGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlYCwgYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgLCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXNldGAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSByZWxhdGUgYW5kLCBjcnVjaWFsbHksIHRoZWlyIHJlYWNoYWJpbGl0eS5cblxuTGV0J3MgYnJlYWsgdGhpcyBkb3duLiBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfZGVpbml0YCBpcyBhbG1vc3QgY2VydGFpbmx5IGNhbGxlZCBkdXJpbmcgdGhlIFZDUFUgdGVhcmRvd24gcHJvY2Vzcy4gVGhpcyBpcyBzb21ldGhpbmcgdGhhdCdzIHJlYWNoYWJsZTsgaXQncyBwYXJ0IG9mIHRoZSBzdGFuZGFyZCBsaWZlY3ljbGUuICBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRgIGlzLCBpbiBhbGwgbGlrZWxpaG9vZCwgaW52b2x2ZWQgaW4gVkNQVSByZXNldCB3aGljaCBpcyBhbHNvIHNvbWV0aGluZyB3ZSBjYW4gaW50ZXJhY3Qgd2l0aC4gYGt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJgIGdldHMgdHJpZ2dlcmVkIHRocm91Z2ggdGhlIGBLVk1fU0VUX09ORV9SRUdgIGlvY3RsLCBhIHdlbGwtZGVmaW5lZCBwb2ludCBvZiBpbnRlcmFjdGlvbi4gIEFuZCBmaW5hbGx5LCBga3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzdG9yZWAgaXMgZGlyZWN0bHkgaW52b2x2ZWQgaW4gVkNQVSBydW4sIGFsc28gYSBzdGFuZGFyZCBwYXRod2F5LlxuXG5UaGUgcGF0Y2ggaXRzZWxmIGRlYWxzIHdpdGggY2hhbmdlcyBpbiB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB3aXRoaW4gdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0byBiZSB0b3VjaGluZyB0aGUgdGltZXIgc3RhdGUgbWFuYWdlbWVudCwgYW5kIHRoYXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLiBHaXZlbiBhbGwgb2YgdGhpcywgdGhlIGNvZGUgaXMgY2xlYXJseSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UsIHNwZWNpZmljYWxseSB0aHJvdWdoIEtWTSBpb2N0bHMgbGlrZSBgS1ZNX1NFVF9PTkVfUkVHYCBhbmQgYEtWTV9SVU5gLCBhcyB3ZWxsIGFzIGR1cmluZyBWQ1BVIGxpZmVjeWNsZSBldmVudHMuIFRoYXQgbWVhbnMgaXQncyBhIGdvb2QgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBXZSBhYnNvbHV0ZWx5IG5lZWQgdG8gZnV6eiB0aGlzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBjaGFuZ2VzIGludHJvZHVjZWQgaW4gdGhlIG5ldyB0aW1lciBjYW5jZWxsYXRpb24gbG9naWMgZG9uJ3QgYWNjaWRlbnRhbGx5IGludHJvZHVjZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuXG5cbk5vdywgYSBxdWljayBzYW5pdHkgY2hlY2sgb24gdGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb25zLiBEb2VzIGBWSVJUVUFMSVpBVElPTmAgYWxzbyBoYXZlIHRvIGJlIGVuYWJsZWQ/IFllcywgaXQncyBhIG1lbnVjb25maWcgaXRlbSB0aGF0IGdhdGVzIGBLVk1gLiBTaW5jZSB3ZSdyZSB1c2luZyBzeXprYWxsZXIsIHdlIG5lZWQgdG8gbGlzdCBpdCB3aXRob3V0IHRoZSBgQ09ORklHX2AgcHJlZml4LiBTbyB0aGUgY29uZmlndXJhdGlvbnMgYXJlIGBWSVJUVUFMSVpBVElPTmAgYW5kIGBLVk1gLlxuXG5UaW1lIHRvIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc0MDcsIk91dHB1dFRva2VucyI6MjE0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAyVDAzOjAwOjQ1LjUzNTY1OTAzN1oiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwODY5MDUzNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVklSVFVBTElaQVRJT05cIixcbiAgICBcIktWTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc3RvcmVcIixcbiAgICBcImt2bV9yaXNjdl92Y3B1X3NldF9yZWdfdGltZXJcIixcbiAgICBcImt2bV9yaXNjdl92Y3B1X3RpbWVyX2RlaW5pdFwiLFxuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfdGltZXJfcmVzZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgYGt2bV9yaXNjdl92Y3B1X3RpbWVyX2NhbmNlbGAgZnVuY3Rpb24gaW4gdGhlIFJJU0MtViBLVk0gaW1wbGVtZW50YXRpb24uIEl0IGNoYW5nZXMgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgd2hlbiBjYW5jZWxsaW5nIGEgVkNQVSB0aW1lciwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBhZmZlY3RpbmcgdGltZXIgc3RhdGUgbWFuYWdlbWVudC4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgS1ZNIGlvY3RscyAoZS5nLiwgS1ZNX1NFVF9PTkVfUkVHLCBLVk1fUlVOKSBhbmQgVkNQVSBsaWZlY3ljbGUgZXZlbnRzLiBGdXp6aW5nIGlzIHJlY29tbWVuZGVkIHRvIGVuc3VyZSB0aGUgbmV3IHRpbWVyIGNhbmNlbGxhdGlvbiBsb2dpYyBkb2VzIG5vdCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMgb3IgcmFjZSBjb25kaXRpb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZJUlRVQUxJWkFUSU9OXCIsXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9yZXN0b3JlXCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV9zZXRfcmVnX3RpbWVyXCIsXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV90aW1lcl9kZWluaXRcIixcbiAgICBcImt2bV9yaXNjdl92Y3B1X3RpbWVyX3Jlc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBrdm1fcmlzY3ZfdmNwdV90aW1lcl9jYW5jZWxgIGZ1bmN0aW9uIGluIHRoZSBSSVNDLVYgS1ZNIGltcGxlbWVudGF0aW9uLiBJdCBjaGFuZ2VzIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIHdoZW4gY2FuY2VsbGluZyBhIFZDUFUgdGltZXIsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgYWZmZWN0aW5nIHRpbWVyIHN0YXRlIG1hbmFnZW1lbnQuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIEtWTSBpb2N0bHMgKGUuZy4sIEtWTV9TRVRfT05FX1JFRywgS1ZNX1JVTikgYW5kIFZDUFUgbGlmZWN5Y2xlIGV2ZW50cy4gRnV6emluZyBpcyByZWNvbW1lbmRlZCB0byBlbnN1cmUgdGhlIG5ldyB0aW1lciBjYW5jZWxsYXRpb24gbG9naWMgZG9lcyBub3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zIG9yIHJhY2UgY29uZGl0aW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[1] Phase: Succeeded StartedAt: 2026-08-02 03:00:57 +0000 UTC FinishedAt: 2026-08-02 03:00:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-02 03:00:57 +0000 UTC FinishedAt: 2026-08-02 03:00:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2] Phase: Succeeded StartedAt: 2026-08-02 03:00:57 +0000 UTC FinishedAt: 2026-08-02 03:50:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-02 03:00:57 +0000 UTC FinishedAt: 2026-08-02 03:50:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-02 03:00:57 +0000 UTC FinishedAt: 2026-08-02 03:01:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-02 03:00:57 +0000 UTC FinishedAt: 2026-08-02 03:01:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflow8496b/series-workflow8496b-convert-artifact-4086241472/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-02 03:01:24 +0000 UTC FinishedAt: 2026-08-02 03:20:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-02 03:01:24 +0000 UTC FinishedAt: 2026-08-02 03:20:05 +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:*5cd5e178-cf56-4c1b-968e-7b4d8ce4d1ae,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-workflow8496b/series-workflow8496b-convert-artifact-4086241472/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": "85ad6800-3a06-4170-a1d4-844f2106cc6c", "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-workflow8496b/series-workflow8496b-build-action-2550268038/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-02 03:01:24 +0000 UTC FinishedAt: 2026-08-02 03:19:55 +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:*5cd5e178-cf56-4c1b-968e-7b4d8ce4d1ae,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-workflow8496b/series-workflow8496b-convert-artifact-4086241472/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": "85ad6800-3a06-4170-a1d4-844f2106cc6c", "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-workflow8496b/series-workflow8496b-build-action-2550268038/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-02 03:20:05 +0000 UTC FinishedAt: 2026-08-02 03:20:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-02 03:20:05 +0000 UTC FinishedAt: 2026-08-02 03:20:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-02 03:20:05 +0000 UTC FinishedAt: 2026-08-02 03:20:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-02 03:20:05 +0000 UTC FinishedAt: 2026-08-02 03:20:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflow8496b/series-workflow8496b-convert-artifact-1421600103/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-02 03:20:15 +0000 UTC FinishedAt: 2026-08-02 03:22:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-02 03:20:15 +0000 UTC FinishedAt: 2026-08-02 03:21:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*85ad6800-3a06-4170-a1d4-844f2106cc6c,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-workflow8496b/series-workflow8496b-build-action-2550268038/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-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-02 03:22:08 +0000 UTC FinishedAt: 2026-08-02 03:22:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-02 03:22:08 +0000 UTC FinishedAt: 2026-08-02 03:22:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-02 03:22:08 +0000 UTC FinishedAt: 2026-08-02 03:46:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-02 03:22:08 +0000 UTC FinishedAt: 2026-08-02 03:46:58 +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:*5cd5e178-cf56-4c1b-968e-7b4d8ce4d1ae,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-workflow8496b/series-workflow8496b-convert-artifact-1421600103/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": "7fbb27a6-1e28-4dfd-82f7-7a1cfeeba439", "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-workflow8496b/series-workflow8496b-build-action-998808811/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-02 03:22:08 +0000 UTC FinishedAt: 2026-08-02 03:46:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5cd5e178-cf56-4c1b-968e-7b4d8ce4d1ae,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-workflow8496b/series-workflow8496b-convert-artifact-1421600103/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": "7fbb27a6-1e28-4dfd-82f7-7a1cfeeba439", "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-workflow8496b/series-workflow8496b-build-action-998808811/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-02 03:46:58 +0000 UTC FinishedAt: 2026-08-02 03:46:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-02 03:46:58 +0000 UTC FinishedAt: 2026-08-02 03:46:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-02 03:46:58 +0000 UTC FinishedAt: 2026-08-02 03:48:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-02 03:46:58 +0000 UTC FinishedAt: 2026-08-02 03:48:47 +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:*7fbb27a6-1e28-4dfd-82f7-7a1cfeeba439,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-workflow8496b/series-workflow8496b-build-action-998808811/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-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-02 03:48:56 +0000 UTC FinishedAt: 2026-08-02 03:50:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-02 03:48:56 +0000 UTC FinishedAt: 2026-08-02 03:50:12 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"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:*85ad6800-3a06-4170-a1d4-844f2106cc6c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7fbb27a6-1e28-4dfd-82f7-7a1cfeeba439,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-workflow8496b/series-workflow8496b-build-action-2550268038/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-workflow8496b/series-workflow8496b-build-action-998808811/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-02 03:48:56 +0000 UTC FinishedAt: 2026-08-02 03:49:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-02 03:48:56 +0000 UTC FinishedAt: 2026-08-02 03:49:01 +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-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"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-workflow8496b/series-workflow8496b-convert-artifact-3837158848/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-02 03:48:56 +0000 UTC FinishedAt: 2026-08-02 03:48:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-02 03:48:56 +0000 UTC FinishedAt: 2026-08-02 03:48:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-02 03:48:57 +0000 UTC FinishedAt: 2026-08-02 03:48:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-02 03:49:07 +0000 UTC FinishedAt: 2026-08-02 03:50:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflow8496b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_timer_restore","kvm_riscv_vcpu_set_reg_timer","kvm_riscv_vcpu_timer_deinit","kvm_riscv_vcpu_timer_reset"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"7d3aae206663c4e006b25a1c7a20a4029e67da76","config_name":"upstream-apparmor-kasan.config","enable_configs":["VIRTUALIZATION","KVM"],"series_id":"687361b2-3b95-4508-90d4-65f74f6e27eb","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-02 03:49:07 +0000 UTC FinishedAt: 2026-08-02 03:50:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*85ad6800-3a06-4170-a1d4-844f2106cc6c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*7fbb27a6-1e28-4dfd-82f7-7a1cfeeba439,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-workflow8496b/series-workflow8496b-build-action-2550268038/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-workflow8496b/series-workflow8496b-build-action-998808811/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-workflow8496b/series-workflow8496b-convert-artifact-3837158848/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,}