Name: series-workflow4727d Phase: Succeeded StartedAt: 2026-07-05 00:34:01 +0000 UTC FinishedAt: 2026-07-05 05:05:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[0] Phase: Succeeded StartedAt: 2026-07-05 00:34:01 +0000 UTC FinishedAt: 2026-07-05 01:08:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[0].run-triage Phase: Succeeded StartedAt: 2026-07-05 00:34:01 +0000 UTC FinishedAt: 2026-07-05 01:08:17 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "549ea208-209e-4781-bb55-df6bffa2b6d5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_sf_do_5_2_6_stale", "sctp_sf_cookie_echoed_err" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfY29va2llX2VjaG9lZF9lcnImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJiMzOTtzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDE6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjYzIzZDAyN2UyZWUzOWNiYWFlMGMxZjU0MGQ3NDVhODRmYjBiZDFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAwMTowNjo0MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG5pbmRleCBkMjNkOTM1ZTEyOGU5Ni4uZTRiNGI2MzE2MmNmNmMgMTAwNjQ0XG4tLS0gYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcbkBAIC0yNTkyLDYgJiM0MzsyNTkyLDkgQEAgc3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxuIFxuIFx0ZXJyID0gKHN0cnVjdCBzY3RwX2VycmhkciAqKShjaHVuay1cdTAwM2Vza2ItXHUwMDNlZGF0YSk7XG4gXG4mIzQzO1x0aWYgKCh1OCAqKWVyciAmIzQzOyBzaXplb2YoKmVycikgJiM0Mzsgc2l6ZW9mKF9fYmUzMikgXHUwMDNlIGNodW5rLVx1MDAzZWNodW5rX2VuZClcbiYjNDM7XHRcdHJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFuZHMpO1xuJiM0MztcbiBcdC8qIFdoZW4gY2FsY3VsYXRpbmcgdGhlIHRpbWUgZXh0ZW5zaW9uLCBhbiBpbXBsZW1lbnRhdGlvblxuIFx0ICogU0hPVUxEIHVzZSB0aGUgUlRUIGluZm9ybWF0aW9uIG1lYXN1cmVkIGJhc2VkIG9uIHRoZVxuIFx0ICogcHJldmlvdXMgQ09PS0lFIEVDSE8gLyBFUlJPUiBleGNoYW5nZSwgYW5kIHNob3VsZCBhZGQgbm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwMTowNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9zZl9kb181XzJfNl9zdGFsZSYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgaW4gU0NUUCYjMzk7cyBzdGFsZSBjb29raWUgZXJyb3IgaGFuZGxpbmcgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjYzIzZDAyN2UyZWUzOWNiYWFlMGMxZjU0MGQ3NDVhODRmYjBiZDFlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgNSAwMTowNjo0MSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKaW5kZXggZDIzZDkzNWUxMjhlOTYuLmU0YjRiNjMxNjJjZjZjIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwpAQCAtMjU5Miw2ICYjNDM7MjU5Miw5IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZSgKIAogCWVyciA9IChzdHJ1Y3Qgc2N0cF9lcnJoZHIgKikoY2h1bmstJmd0O3NrYi0mZ3Q7ZGF0YSk7CiAKJiM0MzsJaWYgKCh1OCAqKWVyciAmIzQzOyBzaXplb2YoKmVycikgJiM0Mzsgc2l6ZW9mKF9fYmUzMikgJmd0OyBjaHVuay0mZ3Q7Y2h1bmtfZW5kKQomIzQzOwkJcmV0dXJuIHNjdHBfc2ZfcGRpc2NhcmQobmV0LCBlcCwgYXNvYywgdHlwZSwgYXJnLCBjb21tYW5kcyk7CiYjNDM7CiAJLyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uCiAJICogU0hPVUxEIHVzZSB0aGUgUlRUIGluZm9ybWF0aW9uIG1lYXN1cmVkIGJhc2VkIG9uIHRoZQogCSAqIHByZXZpb3VzIENPT0tJRSBFQ0hPIC8gRVJST1IgZXhjaGFuZ2UsIGFuZCBzaG91bGQgYWRkIG5vCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqU0NUUCBQYXRjaCBBbmFseXNpcyBhbmQgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gSXQmIzM5O3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGFkZGl0aW9uLCBhIGJvdW5kcyBjaGVjayB3aXRoaW4gYHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVgLiBCYXNpY2FsbHksIGl0JiMzOTtzIGd1YXJkaW5nIGFnYWluc3QgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkIG9yIHNvbWV0aGluZyBvZiB0aGF0IG5hdHVyZSBkdXJpbmcgZXJyb3IgaGFuZGxpbmcgd2l0aGluIHRoZSBTQ1RQIHByb3RvY29sLCBwYXJ0aWN1bGFybHkgd2hlbiBkZWFsaW5nIHdpdGggY2h1bmsgcHJvY2Vzc2luZy4gRnVuY3Rpb25hbGx5LCB0aGlzIGxvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4KCkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZeKAlGRlYWxpbmcgd2l0aCBlcnJvciBoYW5kbGluZyBhbmQgbGlrZWx5IGRhdGEgdmFsaWRhdGlvbiwgaXQmIzM5O3MgaW1tZWRpYXRlbHkgb2J2aW91cyB0aGF0IHRoaXMgbmVlZHMgZnV6emluZy4gQSBib3VuZHMgY2hlY2sgbGlrZSB0aGlzIGlzIGFsbW9zdCBhbHdheXMgYWRkZWQgdG8gYXZvaWQgdW5leHBlY3RlZCByZWFkcywgc28gYSBmdXp6aW5nIGNhbXBhaWduIHRvIGlkZW50aWZ5IGNvbmRpdGlvbnMgdGhlIGJvdW5kcyBjaGVjayBpcyBtZWFudCB0byBwcm90ZWN0IGFnYWluc3Qgd291bGQgYmUgcHJ1ZGVudC4KCk5vdywgbGV0JiMzOTtzIGdldCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgc2V0IHVwIHByb3Blcmx5IHRvIHRlc3QgdGhpcy4gVGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gSSBuZWVkIHRvIGVuc3VyZSBTQ1RQIGlzIGVuYWJsZWQgaXMgYENPTkZJR19JUF9TQ1RQYC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcywgcHJvYmFibHkgaW4gYG5ldC9zY3RwL0tjb25maWdgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCB0byB2ZXJpZnkgdGhlIGV4YWN0IGRlcGVuZGVuY2llcyBhbmQgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uLiBUaGlzIGlzIHN0YW5kYXJkIHByb2NlZHVyZSB0byBjb25maXJtIHRoZSBjb2RlIHdpbGwgYmUgY29tcGlsZWQgYW5kIHRvIHR1bmUgYW55IGFzc29jaWF0ZWQgY29tcGlsZSBmbGFncy4gRnJvbSB0aGVyZSwgSSYjMzk7bGwgbmVlZCB0byBkZXZlbG9wIGZ1enppbmcgaGFybmVzc2VzIG9yIHV0aWxpemUgZXhpc3Rpbmcgb25lcywgZm9jdXNpbmcgb24gY3JhZnRlZCBTQ1RQIHBhY2tldHMgZGVzaWduZWQgdG8gdHJpZ2dlciBlZGdlIGNhc2VzIGluIHRoZSBlcnJvciBwYXRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJUF9TQ1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9LY29uZmlnLTUtXG5uZXQvc2N0cC9LY29uZmlnOjY6bWVudWNvbmZpZyBJUF9TQ1RQXG5uZXQvc2N0cC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtUaGUgU0NUUCBQcm90b2NvbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0ODAKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgc2l0dWF0aW9uOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgRnVuY3Rpb24qKgoKT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElQX1NDVFBgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBmdW5jdGlvbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGZ1bmN0aW9uIGluIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AgaXMgaGFuZGxpbmcgdGhpbmdzIHVuZGVyIHRoaXMgY29uZmlndXJhdGlvbi4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSByZXZpZXdpbmcgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGF0IHNwZWNpZmljIGZ1bmN0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIHN0YWxlIGhhbmRsaW5nIGxvZ2ljIGFuZCBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBzdGF0ZSBtYWNoaW5lLiBVbmRlcnN0YW5kaW5nIGl0cyBiZWhhdmlvciB3aXRoaW4gdGhlIFNDVFAgY29udGV4dCBpcyBjcnVjaWFsLCBnaXZlbiB0aGUgYElQX1NDVFBgIHNldHRpbmcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBlZGdlIGNhc2VzIGFzIHdlbGwgdG8gZnVsbHkgZ3Jhc3AgaXRzIGltcGxpY2F0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwMTowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NjU9c3RhdGljIHZvaWQgc2N0cF9zZW5kX3N0YWxlX2Nvb2tpZV9lcnIoc3RydWN0IG5ldCAqbmV0LFxuLS1cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTcwLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBzY3RwX2NodW5rICplcnJfY2h1bmspO1xubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NzE6c3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNzItXHRcdFx0XHRcdHN0cnVjdCBuZXQgKm5ldCxcbi0tXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz0yNTA1PWVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyKFxuLS1cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTI1MzItXHRcdGlmIChTQ1RQX0VSUk9SX1NUQUxFX0NPT0tJRSA9PSBlcnItXHUwMDNlY2F1c2UpXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYzoyNTMzOlx0XHRcdHJldHVybiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKG5ldCwgZXAsIGFzb2MsIHR5cGUsXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTM0LVx0XHRcdFx0XHRcdFx0YXJnLCBjb21tYW5kcyk7XG4tLVxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtMjU2OS0gKi9cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjI1NzA6c3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtMjU3MS1cdFx0XHRcdFx0c3RydWN0IG5ldCAqbmV0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNjUKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gU0NUUCBTdGFsZSBDb29raWUgSGFuZGxpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYC4gSXQgbG9va3MgbGlrZSBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgaXMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnJgLiAgR2l2ZW4gdGhpcyBjb25uZWN0aW9uLCBJIHNob3VsZCBhZGQgYm90aCBmdW5jdGlvbnMgdG8gYEZvY3VzU3ltYm9sc2AuIFRoYXQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIGhhbmRsZSBvbiB0aGVpciBpbnRlcmFjdGlvbi4KCk5vdywgYmVmb3JlIEkgcHJvY2VlZCwgSSBuZWVkIHRvIGNvbnNpZGVyIGlmIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyBhcmUgbmVjZXNzYXJ5LiBGcm9tIG15IGV4cGVyaWVuY2Ugd2l0aCBTQ1RQLCBgSVBfU0NUUGAgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgdGhlIGNvZGUuIEkgcmVtZW1iZXIgdGhlcmUgd2FzIGEgcXVlc3Rpb24gYWJvdXQgd2hldGhlciBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgd2FzIHN0YXRpYyBvciBub3QuIFl1cCwgaXQgaXMgZGVjbGFyZWQgc3RhdGljLiBXYWl0IGEgbWludXRlISBgc2N0cF9zZl9jb29raWVfZWNob2VkX2VycmAgaXMgKm5vdCogc3RhdGljLiBUaGlzIG1lYW5zIGJvdGggZnVuY3Rpb25zIGNhbiwgYW5kIHNob3VsZCwgYmUgYWRkZWQgdG8gYEZvY3VzU3ltYm9sc2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KCkxldCYjMzk7cyBkbyBhIHF1aWNrIHNjYW4gb2YgYHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVgIGluIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIFRoYXQgc2hvdWxkIHJlZnJlc2ggbXkgbWVtb3J5IG9mIGl0cyBpbnRlcm5hbHMgYW5kIGhvdyBpdCBoYW5kbGVzIHN0YWxlIGNvb2tpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDE6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI1NzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjU3MDpcdHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcbjI1NzE6XHRcdFx0XHRcdFx0c3RydWN0IG5ldCAqbmV0LFxuMjU3MjpcdFx0XHRcdFx0XHRjb25zdCBzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXAsXG4yNTczOlx0XHRcdFx0XHRcdGNvbnN0IHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxuMjU3NDpcdFx0XHRcdFx0XHRjb25zdCB1bmlvbiBzY3RwX3N1YnR5cGUgdHlwZSxcbjI1NzU6XHRcdFx0XHRcdFx0dm9pZCAqYXJnLFxuMjU3NjpcdFx0XHRcdFx0XHRzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcylcbjI1Nzc6XHR7XG4yNTc4Olx0XHRpbnQgYXR0ZW1wdHMgPSBhc29jLVx1MDAzZWluaXRfZXJyX2NvdW50ZXIgJiM0MzsgMTtcbjI1Nzk6XHRcdHN0cnVjdCBzY3RwX2NodW5rICpjaHVuayA9IGFyZywgKnJlcGx5O1xuMjU4MDpcdFx0c3RydWN0IHNjdHBfY29va2llX3ByZXNlcnZlX3BhcmFtIGJodDtcbjI1ODE6XHRcdHN0cnVjdCBzY3RwX2JpbmRfYWRkciAqYnA7XG4yNTgyOlx0XHRzdHJ1Y3Qgc2N0cF9lcnJoZHIgKmVycjtcbjI1ODM6XHRcdHUzMiBzdGFsZTtcbjI1ODQ6XHRcbjI1ODU6XHRcdGlmIChhdHRlbXB0cyBcdTAwM2UgYXNvYy1cdTAwM2VtYXhfaW5pdF9hdHRlbXB0cykge1xuMjU4NjpcdFx0XHRzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX1NFVF9TS19FUlIsXG4yNTg3Olx0XHRcdFx0XHRTQ1RQX0VSUk9SKEVUSU1FRE9VVCkpO1xuMjU4ODpcdFx0XHRzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX0lOSVRfRkFJTEVELFxuMjU4OTpcdFx0XHRcdFx0U0NUUF9QRVJSKFNDVFBfRVJST1JfU1RBTEVfQ09PS0lFKSk7XG4yNTkwOlx0XHRcdHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0RFTEVURV9UQ0I7XG4yNTkxOlx0XHR9XG4yNTkyOlx0XG4yNTkzOlx0XHRlcnIgPSAoc3RydWN0IHNjdHBfZXJyaGRyICopKGNodW5rLVx1MDAzZXNrYi1cdTAwM2VkYXRhKTtcbjI1OTQ6XHRcbjI1OTU6XHRcdGlmICgodTggKillcnIgJiM0Mzsgc2l6ZW9mKCplcnIpICYjNDM7IHNpemVvZihfX2JlMzIpIFx1MDAzZSBjaHVuay1cdTAwM2VjaHVua19lbmQpXG4yNTk2Olx0XHRcdHJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFuZHMpO1xuMjU5NzpcdFxuMjU5ODpcdFx0LyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uXG4yNTk5Olx0XHQgKiBTSE9VTEQgdXNlIHRoZSBSVFQgaW5mb3JtYXRpb24gbWVhc3VyZWQgYmFzZWQgb24gdGhlXG4yNjAwOlx0XHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xuMjYwMTpcdFx0ICogbW9yZSB0aGFuIDEgc2Vjb25kIGJleW9uZCB0aGUgbWVhc3VyZWQgUlRULCBkdWUgdG8gbG9uZ1xuMjYwMjpcdFx0ICogU3RhdGUgQ29va2llIGxpZmV0aW1lcyBtYWtpbmcgdGhlIGVuZHBvaW50IG1vcmUgc3ViamVjdCB0b1xuMjYwMzpcdFx0ICogYSByZXBsYXkgYXR0YWNrLlxuMjYwNDpcdFx0ICogTWVhc3VyZSBvZiBTdGFsZW5lc3MmIzM5O3MgdW5pdCBpcyB1c2VjLiAoMS8xMDAwMDAwIHNlYylcbjI2MDU6XHRcdCAqIFN1Z2dlc3RlZCBDb29raWUgTGlmZS1zcGFuIEluY3JlbWVudCYjMzk7cyB1bml0IGlzIG1zZWMuXG4yNjA2Olx0XHQgKiAoMS8xMDAwIHNlYylcbjI2MDc6XHRcdCAqIEluIGdlbmVyYWwsIGlmIHlvdSB1c2UgdGhlIHN1Z2dlc3RlZCBjb29raWUgbGlmZSwgdGhlIHZhbHVlXG4yNjA4Olx0XHQgKiBmb3VuZCBpbiB0aGUgZmllbGQgb2YgbWVhc3VyZSBvZiBzdGFsZW5lc3Mgc2hvdWxkIGJlIGRvdWJsZWRcbjI2MDk6XHRcdCAqIHRvIGdpdmUgYW1wbGUgdGltZSB0byByZXRyYW5zbWl0IHRoZSBuZXcgY29va2llIGFuZCB0aHVzXG4yNjEwOlx0XHQgKiB5aWVsZCBhIGhpZ2hlciBwcm9iYWJpbGl0eSBvZiBzdWNjZXNzIG9uIHRoZSByZWF0dGVtcHQuXG4yNjExOlx0XHQgKi9cbjI2MTI6XHRcdHN0YWxlID0gbnRvaGwoKihfX2JlMzIgKikoKHU4ICopZXJyICYjNDM7IHNpemVvZigqZXJyKSkpO1xuMjYxMzpcdFx0c3RhbGUgPSAoc3RhbGUgKiAyKSAvIDEwMDA7XG4yNjE0Olx0XG4yNjE1Olx0XHRiaHQucGFyYW1faGRyLnR5cGUgPSBTQ1RQX1BBUkFNX0NPT0tJRV9QUkVTRVJWQVRJVkU7XG4yNjE2Olx0XHRiaHQucGFyYW1faGRyLmxlbmd0aCA9IGh0b25zKHNpemVvZihiaHQpKTtcbjI2MTc6XHRcdGJodC5saWZlc3Bhbl9pbmNyZW1lbnQgPSBodG9ubChzdGFsZSk7XG4yNjE4Olx0XG4yNjE5Olx0XHQvKiBCdWlsZCB0aGF0IG5ldyBJTklUIGNodW5rLiAgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwMTowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjcxCgkJCQkJCQlvdXRwdXQ6IDExNAoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaCwgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBzb21lb25lIHdobyB1bmRlcnN0YW5kcyB0aGUgaW50cmljYWNpZXMgb2YgU0NUUDoKCioqQW5hbHl6aW5nIHRoZSBTQ1RQIEJvdW5kcyBDaGVjayoqCgpSaWdodCwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYm91bmRzIGNoZWNrIGJlZm9yZSB3ZSBhY2Nlc3MgdGhlIGBzdGFsZWAgbWVtYmVyIG9mIHRoZSBgZXJyYCBzdHJ1Y3R1cmUuIFRoYXQgaW1tZWRpYXRlbHkgc2lnbmFscyBhIHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlLiBUaGUgZmFjdCB0aGF0IHRoZXkmIzM5O3ZlIGlkZW50aWZpZWQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGlzIGNvbmNlcm5pbmc7IHRoZXNlIGFyZSBwcmVjaXNlbHkgdGhlIHR5cGVzIG9mIHZ1bG5lcmFiaWxpdGllcyB0aGF0IGNhbiBsZWFkIHRvIGNyYXNoZXMgb3IsIHdvcnNlLCBleHBsb2l0YWJsZSBmbGF3cyBpbiB0aGUgU0NUUCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlIGJlY2F1c2UsIGFzIGV4cGVydHMsIHdlIGtub3cgdGhhdCBzdWNoIGEgY2hlY2sgYWx0ZXJzIHRoZSBwcm9ncmFtIGZsb3cgdG8gZW5zdXJlIHNhZmUgYWNjZXNzLgoKR2l2ZW4gdGhlIHBvdGVudGlhbCBzZXZlcml0eSBvZiBvdXQtb2YtYm91bmRzIHJlYWRzLCBmdXp6aW5nIGlzIGFuICpleGNlbGxlbnQqIGlkZWEuIEl04oCZcyBhbiBlZmZlY3RpdmUgd2F5IHRvIHVuZWFydGggc3VidGxlIGJ1Z3MgdGhhdCBtaWdodCBub3QgYmUgYXBwYXJlbnQgdGhyb3VnaCBzdGF0aWMgYW5hbHlzaXMuIFRoZSBgSVBfU0NUUGAgY29uZmlnIGFsc28gc3VnZ2VzdHMgdGhlIGNvbnRleHQgb2YgdGhlIGJ1ZywgYW5kIHRoZSBmb2N1cyBzeW1ib2xzLCBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYCwgcGluIGRvd24gdGhlIGNyaXRpY2FsIGFyZWFzIHRoaXMgY29kZSBpcyBsaWtlbHkgdG8gY2hhbmdlLiBCb3RoIG9mIHRoZXNlIHN5bWJvbHMsIGNvdXBsZWQgd2l0aCBgc3RhbGVgLCBoZWxwIHVzIGlkZW50aWZ5IGhvdyBhbmQgd2h5IHRoZSBzdGFsZSBkYXRhIG1pZ2h0IGJlIGEgcHJvYmxlbS4KCkxldCYjMzk7cyBjYWxsIHRoZSBzZXQgcmVzdWx0cywgYW5kIHdvcmsgb24gaXQgYXMgc29vbiBhcyBwb3NzaWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDE6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfY29va2llX2VjaG9lZF9lcnImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJiMzOTtzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfY29va2llX2VjaG9lZF9lcnImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJiMzOTtzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo0Mi4zNzM2MzMxNzRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzI4OTE1NDEyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9zZl9kb181XzJfNl9zdGFsZVwiLFxuICAgIFwic2N0cF9zZl9jb29raWVfZWNob2VkX2VyclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgaW4gU0NUUCdzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjQyLjM3MzYzODUzNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAxOTI3Mzk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgY2MyM2QwMjdlMmVlMzljYmFhZTBjMWY1NDBkNzQ1YTg0ZmIwYmQxZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCA1IDAxOjA2OjQxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG5pbmRleCBkMjNkOTM1ZTEyOGU5Ni4uZTRiNGI2MzE2MmNmNmMgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xcbkBAIC0yNTkyLDYgKzI1OTIsOSBAQCBzdGF0aWMgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGUoXFxuIFxcbiBcXHRlcnIgPSAoc3RydWN0IHNjdHBfZXJyaGRyICopKGNodW5rLVxcdTAwM2Vza2ItXFx1MDAzZWRhdGEpO1xcbiBcXG4rXFx0aWYgKCh1OCAqKWVyciArIHNpemVvZigqZXJyKSArIHNpemVvZihfX2JlMzIpIFxcdTAwM2UgY2h1bmstXFx1MDAzZWNodW5rX2VuZClcXG4rXFx0XFx0cmV0dXJuIHNjdHBfc2ZfcGRpc2NhcmQobmV0LCBlcCwgYXNvYywgdHlwZSwgYXJnLCBjb21tYW5kcyk7XFxuK1xcbiBcXHQvKiBXaGVuIGNhbGN1bGF0aW5nIHRoZSB0aW1lIGV4dGVuc2lvbiwgYW4gaW1wbGVtZW50YXRpb25cXG4gXFx0ICogU0hPVUxEIHVzZSB0aGUgUlRUIGluZm9ybWF0aW9uIG1lYXN1cmVkIGJhc2VkIG9uIHRoZVxcbiBcXHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo0Mi43NzYzMDUxNDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2ODg2NDcyMzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3NmX2RvXzVfMl82X3N0YWxlXCIsXG4gICAgXCJzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJ3Mgc3RhbGUgY29va2llIGVycm9yIGhhbmRsaW5nIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgU0NUUCBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjYzIzZDAyN2UyZWUzOWNiYWFlMGMxZjU0MGQ3NDVhODRmYjBiZDFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAwMTowNjo0MSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcbmluZGV4IGQyM2Q5MzVlMTI4ZTk2Li5lNGI0YjYzMTYyY2Y2YyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTI1OTIsNiArMjU5Miw5IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcbiBcbiBcdGVyciA9IChzdHJ1Y3Qgc2N0cF9lcnJoZHIgKikoY2h1bmstXHUwMDNlc2tiLVx1MDAzZWRhdGEpO1xuIFxuK1x0aWYgKCh1OCAqKWVyciArIHNpemVvZigqZXJyKSArIHNpemVvZihfX2JlMzIpIFx1MDAzZSBjaHVuay1cdTAwM2VjaHVua19lbmQpXG4rXHRcdHJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFuZHMpO1xuK1xuIFx0LyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uXG4gXHQgKiBTSE9VTEQgdXNlIHRoZSBSVFQgaW5mb3JtYXRpb24gbWVhc3VyZWQgYmFzZWQgb24gdGhlXG4gXHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDE6MDY6NDIuNzc2MzA2MzU5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2NDk2MTczMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipTQ1RQIFBhdGNoIEFuYWx5c2lzIGFuZCBGdXp6aW5nIFN0cmF0ZWd5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gSXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgYWRkaXRpb24sIGEgYm91bmRzIGNoZWNrIHdpdGhpbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAuIEJhc2ljYWxseSwgaXQncyBndWFyZGluZyBhZ2FpbnN0IGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZCBvciBzb21ldGhpbmcgb2YgdGhhdCBuYXR1cmUgZHVyaW5nIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgU0NUUCBwcm90b2NvbCwgcGFydGljdWxhcmx5IHdoZW4gZGVhbGluZyB3aXRoIGNodW5rIHByb2Nlc3NpbmcuIEZ1bmN0aW9uYWxseSwgdGhpcyBsb29rcyBsaWtlIGEgc29saWQgZml4IHRvIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuXG5cbkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZeKAlGRlYWxpbmcgd2l0aCBlcnJvciBoYW5kbGluZyBhbmQgbGlrZWx5IGRhdGEgdmFsaWRhdGlvbiwgaXQncyBpbW1lZGlhdGVseSBvYnZpb3VzIHRoYXQgdGhpcyBuZWVkcyBmdXp6aW5nLiBBIGJvdW5kcyBjaGVjayBsaWtlIHRoaXMgaXMgYWxtb3N0IGFsd2F5cyBhZGRlZCB0byBhdm9pZCB1bmV4cGVjdGVkIHJlYWRzLCBzbyBhIGZ1enppbmcgY2FtcGFpZ24gdG8gaWRlbnRpZnkgY29uZGl0aW9ucyB0aGUgYm91bmRzIGNoZWNrIGlzIG1lYW50IHRvIHByb3RlY3QgYWdhaW5zdCB3b3VsZCBiZSBwcnVkZW50LlxuXG5Ob3csIGxldCdzIGdldCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgc2V0IHVwIHByb3Blcmx5IHRvIHRlc3QgdGhpcy4gVGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gSSBuZWVkIHRvIGVuc3VyZSBTQ1RQIGlzIGVuYWJsZWQgaXMgYENPTkZJR19JUF9TQ1RQYC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzLCBwcm9iYWJseSBpbiBgbmV0L3NjdHAvS2NvbmZpZ2Agb3Igc29tZXRoaW5nIHNpbWlsYXIsIHRvIHZlcmlmeSB0aGUgZXhhY3QgZGVwZW5kZW5jaWVzIGFuZCBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb24uIFRoaXMgaXMgc3RhbmRhcmQgcHJvY2VkdXJlIHRvIGNvbmZpcm0gdGhlIGNvZGUgd2lsbCBiZSBjb21waWxlZCBhbmQgdG8gdHVuZSBhbnkgYXNzb2NpYXRlZCBjb21waWxlIGZsYWdzLiBGcm9tIHRoZXJlLCBJJ2xsIG5lZWQgdG8gZGV2ZWxvcCBmdXp6aW5nIGhhcm5lc3NlcyBvciB1dGlsaXplIGV4aXN0aW5nIG9uZXMsIGZvY3VzaW5nIG9uIGNyYWZ0ZWQgU0NUUCBwYWNrZXRzIGRlc2lnbmVkIHRvIHRyaWdnZXIgZWRnZSBjYXNlcyBpbiB0aGUgZXJyb3IgcGF0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg5MCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjQ3LjQ0MTI3MDA4MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTEzNDAxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSVBfU0NUUFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL0tjb25maWctNS1cXG5uZXQvc2N0cC9LY29uZmlnOjY6bWVudWNvbmZpZyBJUF9TQ1RQXFxubmV0L3NjdHAvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgU0NUUCBQcm90b2NvbFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDE6MDY6NDcuNTAyNDEwMTU5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE4ODg0OTgwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVgIEZ1bmN0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElQX1NDVFBgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBmdW5jdGlvbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGZ1bmN0aW9uIGluIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AgaXMgaGFuZGxpbmcgdGhpbmdzIHVuZGVyIHRoaXMgY29uZmlndXJhdGlvbi4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUgc291cmNlIGNvZGUgZm9yIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24uIEknbGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBzdGFsZSBoYW5kbGluZyBsb2dpYyBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgc3RhdGUgbWFjaGluZS4gVW5kZXJzdGFuZGluZyBpdHMgYmVoYXZpb3Igd2l0aGluIHRoZSBTQ1RQIGNvbnRleHQgaXMgY3J1Y2lhbCwgZ2l2ZW4gdGhlIGBJUF9TQ1RQYCBzZXR0aW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZWRnZSBjYXNlcyBhcyB3ZWxsIHRvIGZ1bGx5IGdyYXNwIGl0cyBpbXBsaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODAsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo1MC42OTEyNjE4MTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIyMzg4NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9zZl9kb181XzJfNl9zdGFsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz02NT1zdGF0aWMgdm9pZCBzY3RwX3NlbmRfc3RhbGVfY29va2llX2VycihzdHJ1Y3QgbmV0ICpuZXQsXFxuLS1cXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy03MC1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHNjdHBfY2h1bmsgKmVycl9jaHVuayk7XFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NzE6c3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTcyLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBuZXQgKm5ldCxcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jPTI1MDU9ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnIoXFxuLS1cXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTMyLVxcdFxcdGlmIChTQ1RQX0VSUk9SX1NUQUxFX0NPT0tJRSA9PSBlcnItXFx1MDAzZWNhdXNlKVxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjI1MzM6XFx0XFx0XFx0cmV0dXJuIHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGUobmV0LCBlcCwgYXNvYywgdHlwZSxcXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTM0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdGFyZywgY29tbWFuZHMpO1xcbi0tXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtMjU2OS0gKi9cXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYzoyNTcwOnN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTcxLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBuZXQgKm5ldCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDE6MDY6NTAuNzUzNTA2NzE2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQzMzc4Nzk0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBTQ1RQIFN0YWxlIENvb2tpZSBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYC4gSXQgbG9va3MgbGlrZSBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgaXMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnJgLiAgR2l2ZW4gdGhpcyBjb25uZWN0aW9uLCBJIHNob3VsZCBhZGQgYm90aCBmdW5jdGlvbnMgdG8gYEZvY3VzU3ltYm9sc2AuIFRoYXQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIGhhbmRsZSBvbiB0aGVpciBpbnRlcmFjdGlvbi5cblxuTm93LCBiZWZvcmUgSSBwcm9jZWVkLCBJIG5lZWQgdG8gY29uc2lkZXIgaWYgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGFyZSBuZWNlc3NhcnkuIEZyb20gbXkgZXhwZXJpZW5jZSB3aXRoIFNDVFAsIGBJUF9TQ1RQYCBzaG91bGQgYmUgc3VmZmljaWVudC5cblxuQWxyaWdodCwgbGV0J3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgdGhlIGNvZGUuIEkgcmVtZW1iZXIgdGhlcmUgd2FzIGEgcXVlc3Rpb24gYWJvdXQgd2hldGhlciBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgd2FzIHN0YXRpYyBvciBub3QuIFl1cCwgaXQgaXMgZGVjbGFyZWQgc3RhdGljLiBXYWl0IGEgbWludXRlISBgc2N0cF9zZl9jb29raWVfZWNob2VkX2VycmAgaXMgKm5vdCogc3RhdGljLiBUaGlzIG1lYW5zIGJvdGggZnVuY3Rpb25zIGNhbiwgYW5kIHNob3VsZCwgYmUgYWRkZWQgdG8gYEZvY3VzU3ltYm9sc2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dC5cblxuTGV0J3MgZG8gYSBxdWljayBzY2FuIG9mIGBzY3RwX3NmX2RvXzVfMl82X3N0YWxlYCBpbiBgbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNgLiBUaGF0IHNob3VsZCByZWZyZXNoIG15IG1lbW9yeSBvZiBpdHMgaW50ZXJuYWxzIGFuZCBob3cgaXQgaGFuZGxlcyBzdGFsZSBjb29raWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTY1LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjU1LjE4NzI5NjgwOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MDYyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNTcwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNTcwOlxcdHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcXG4yNTcxOlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBuZXQgKm5ldCxcXG4yNTcyOlxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBzY3RwX2VuZHBvaW50ICplcCxcXG4yNTczOlxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxcbjI1NzQ6XFx0XFx0XFx0XFx0XFx0XFx0Y29uc3QgdW5pb24gc2N0cF9zdWJ0eXBlIHR5cGUsXFxuMjU3NTpcXHRcXHRcXHRcXHRcXHRcXHR2b2lkICphcmcsXFxuMjU3NjpcXHRcXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcylcXG4yNTc3OlxcdHtcXG4yNTc4OlxcdFxcdGludCBhdHRlbXB0cyA9IGFzb2MtXFx1MDAzZWluaXRfZXJyX2NvdW50ZXIgKyAxO1xcbjI1Nzk6XFx0XFx0c3RydWN0IHNjdHBfY2h1bmsgKmNodW5rID0gYXJnLCAqcmVwbHk7XFxuMjU4MDpcXHRcXHRzdHJ1Y3Qgc2N0cF9jb29raWVfcHJlc2VydmVfcGFyYW0gYmh0O1xcbjI1ODE6XFx0XFx0c3RydWN0IHNjdHBfYmluZF9hZGRyICpicDtcXG4yNTgyOlxcdFxcdHN0cnVjdCBzY3RwX2VycmhkciAqZXJyO1xcbjI1ODM6XFx0XFx0dTMyIHN0YWxlO1xcbjI1ODQ6XFx0XFxuMjU4NTpcXHRcXHRpZiAoYXR0ZW1wdHMgXFx1MDAzZSBhc29jLVxcdTAwM2VtYXhfaW5pdF9hdHRlbXB0cykge1xcbjI1ODY6XFx0XFx0XFx0c2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9TRVRfU0tfRVJSLFxcbjI1ODc6XFx0XFx0XFx0XFx0XFx0U0NUUF9FUlJPUihFVElNRURPVVQpKTtcXG4yNTg4OlxcdFxcdFxcdHNjdHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfSU5JVF9GQUlMRUQsXFxuMjU4OTpcXHRcXHRcXHRcXHRcXHRTQ1RQX1BFUlIoU0NUUF9FUlJPUl9TVEFMRV9DT09LSUUpKTtcXG4yNTkwOlxcdFxcdFxcdHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0RFTEVURV9UQ0I7XFxuMjU5MTpcXHRcXHR9XFxuMjU5MjpcXHRcXG4yNTkzOlxcdFxcdGVyciA9IChzdHJ1Y3Qgc2N0cF9lcnJoZHIgKikoY2h1bmstXFx1MDAzZXNrYi1cXHUwMDNlZGF0YSk7XFxuMjU5NDpcXHRcXG4yNTk1OlxcdFxcdGlmICgodTggKillcnIgKyBzaXplb2YoKmVycikgKyBzaXplb2YoX19iZTMyKSBcXHUwMDNlIGNodW5rLVxcdTAwM2VjaHVua19lbmQpXFxuMjU5NjpcXHRcXHRcXHRyZXR1cm4gc2N0cF9zZl9wZGlzY2FyZChuZXQsIGVwLCBhc29jLCB0eXBlLCBhcmcsIGNvbW1hbmRzKTtcXG4yNTk3OlxcdFxcbjI1OTg6XFx0XFx0LyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uXFxuMjU5OTpcXHRcXHQgKiBTSE9VTEQgdXNlIHRoZSBSVFQgaW5mb3JtYXRpb24gbWVhc3VyZWQgYmFzZWQgb24gdGhlXFxuMjYwMDpcXHRcXHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xcbjI2MDE6XFx0XFx0ICogbW9yZSB0aGFuIDEgc2Vjb25kIGJleW9uZCB0aGUgbWVhc3VyZWQgUlRULCBkdWUgdG8gbG9uZ1xcbjI2MDI6XFx0XFx0ICogU3RhdGUgQ29va2llIGxpZmV0aW1lcyBtYWtpbmcgdGhlIGVuZHBvaW50IG1vcmUgc3ViamVjdCB0b1xcbjI2MDM6XFx0XFx0ICogYSByZXBsYXkgYXR0YWNrLlxcbjI2MDQ6XFx0XFx0ICogTWVhc3VyZSBvZiBTdGFsZW5lc3MncyB1bml0IGlzIHVzZWMuICgxLzEwMDAwMDAgc2VjKVxcbjI2MDU6XFx0XFx0ICogU3VnZ2VzdGVkIENvb2tpZSBMaWZlLXNwYW4gSW5jcmVtZW50J3MgdW5pdCBpcyBtc2VjLlxcbjI2MDY6XFx0XFx0ICogKDEvMTAwMCBzZWMpXFxuMjYwNzpcXHRcXHQgKiBJbiBnZW5lcmFsLCBpZiB5b3UgdXNlIHRoZSBzdWdnZXN0ZWQgY29va2llIGxpZmUsIHRoZSB2YWx1ZVxcbjI2MDg6XFx0XFx0ICogZm91bmQgaW4gdGhlIGZpZWxkIG9mIG1lYXN1cmUgb2Ygc3RhbGVuZXNzIHNob3VsZCBiZSBkb3VibGVkXFxuMjYwOTpcXHRcXHQgKiB0byBnaXZlIGFtcGxlIHRpbWUgdG8gcmV0cmFuc21pdCB0aGUgbmV3IGNvb2tpZSBhbmQgdGh1c1xcbjI2MTA6XFx0XFx0ICogeWllbGQgYSBoaWdoZXIgcHJvYmFiaWxpdHkgb2Ygc3VjY2VzcyBvbiB0aGUgcmVhdHRlbXB0LlxcbjI2MTE6XFx0XFx0ICovXFxuMjYxMjpcXHRcXHRzdGFsZSA9IG50b2hsKCooX19iZTMyICopKCh1OCAqKWVyciArIHNpemVvZigqZXJyKSkpO1xcbjI2MTM6XFx0XFx0c3RhbGUgPSAoc3RhbGUgKiAyKSAvIDEwMDA7XFxuMjYxNDpcXHRcXG4yNjE1OlxcdFxcdGJodC5wYXJhbV9oZHIudHlwZSA9IFNDVFBfUEFSQU1fQ09PS0lFX1BSRVNFUlZBVElWRTtcXG4yNjE2OlxcdFxcdGJodC5wYXJhbV9oZHIubGVuZ3RoID0gaHRvbnMoc2l6ZW9mKGJodCkpO1xcbjI2MTc6XFx0XFx0Ymh0LmxpZmVzcGFuX2luY3JlbWVudCA9IGh0b25sKHN0YWxlKTtcXG4yNjE4OlxcdFxcbjI2MTk6XFx0XFx0LyogQnVpbGQgdGhhdCBuZXcgSU5JVCBjaHVuay4gICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjU1LjE4NzY3ODgxOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzODQ4NTQ0MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhc3Nlc3NtZW50IG9mIHRoaXMgcGF0Y2gsIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgc29tZW9uZSB3aG8gdW5kZXJzdGFuZHMgdGhlIGludHJpY2FjaWVzIG9mIFNDVFA6XG5cbioqQW5hbHl6aW5nIHRoZSBTQ1RQIEJvdW5kcyBDaGVjayoqXG5cblJpZ2h0LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBib3VuZHMgY2hlY2sgYmVmb3JlIHdlIGFjY2VzcyB0aGUgYHN0YWxlYCBtZW1iZXIgb2YgdGhlIGBlcnJgIHN0cnVjdHVyZS4gVGhhdCBpbW1lZGlhdGVseSBzaWduYWxzIGEgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWUuIFRoZSBmYWN0IHRoYXQgdGhleSd2ZSBpZGVudGlmaWVkIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpcyBjb25jZXJuaW5nOyB0aGVzZSBhcmUgcHJlY2lzZWx5IHRoZSB0eXBlcyBvZiB2dWxuZXJhYmlsaXRpZXMgdGhhdCBjYW4gbGVhZCB0byBjcmFzaGVzIG9yLCB3b3JzZSwgZXhwbG9pdGFibGUgZmxhd3MgaW4gdGhlIFNDVFAgaW1wbGVtZW50YXRpb24uIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGNoYW5nZSBiZWNhdXNlLCBhcyBleHBlcnRzLCB3ZSBrbm93IHRoYXQgc3VjaCBhIGNoZWNrIGFsdGVycyB0aGUgcHJvZ3JhbSBmbG93IHRvIGVuc3VyZSBzYWZlIGFjY2Vzcy5cblxuR2l2ZW4gdGhlIHBvdGVudGlhbCBzZXZlcml0eSBvZiBvdXQtb2YtYm91bmRzIHJlYWRzLCBmdXp6aW5nIGlzIGFuICpleGNlbGxlbnQqIGlkZWEuIEl04oCZcyBhbiBlZmZlY3RpdmUgd2F5IHRvIHVuZWFydGggc3VidGxlIGJ1Z3MgdGhhdCBtaWdodCBub3QgYmUgYXBwYXJlbnQgdGhyb3VnaCBzdGF0aWMgYW5hbHlzaXMuIFRoZSBgSVBfU0NUUGAgY29uZmlnIGFsc28gc3VnZ2VzdHMgdGhlIGNvbnRleHQgb2YgdGhlIGJ1ZywgYW5kIHRoZSBmb2N1cyBzeW1ib2xzLCBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYCwgcGluIGRvd24gdGhlIGNyaXRpY2FsIGFyZWFzIHRoaXMgY29kZSBpcyBsaWtlbHkgdG8gY2hhbmdlLiBCb3RoIG9mIHRoZXNlIHN5bWJvbHMsIGNvdXBsZWQgd2l0aCBgc3RhbGVgLCBoZWxwIHVzIGlkZW50aWZ5IGhvdyBhbmQgd2h5IHRoZSBzdGFsZSBkYXRhIG1pZ2h0IGJlIGEgcHJvYmxlbS5cblxuTGV0J3MgY2FsbCB0aGUgc2V0IHJlc3VsdHMsIGFuZCB3b3JrIG9uIGl0IGFzIHNvb24gYXMgcG9zc2libGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NzEsIk91dHB1dFRva2VucyI6MTE0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo1OS41NzI1MzU2ODJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDIzODAwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBfU0NUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVcIixcbiAgICBcInNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIGluIFNDVFAncyBzdGFsZSBjb29raWUgZXJyb3IgaGFuZGxpbmcgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3NmX2RvXzVfMl82X3N0YWxlXCIsXG4gICAgXCJzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJ3Mgc3RhbGUgY29va2llIGVycm9yIGhhbmRsaW5nIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgU0NUUCBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow4727d[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-05 00:34:01 +0000 UTC FinishedAt: 2026-07-05 01:07:01 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "549ea208-209e-4781-bb55-df6bffa2b6d5" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_sf_do_5_2_6_stale", "sctp_sf_cookie_echoed_err" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfY29va2llX2VjaG9lZF9lcnImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJiMzOTtzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDE6MDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjYzIzZDAyN2UyZWUzOWNiYWFlMGMxZjU0MGQ3NDVhODRmYjBiZDFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAwMTowNjo0MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG5pbmRleCBkMjNkOTM1ZTEyOGU5Ni4uZTRiNGI2MzE2MmNmNmMgMTAwNjQ0XG4tLS0gYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcbkBAIC0yNTkyLDYgJiM0MzsyNTkyLDkgQEAgc3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxuIFxuIFx0ZXJyID0gKHN0cnVjdCBzY3RwX2VycmhkciAqKShjaHVuay1cdTAwM2Vza2ItXHUwMDNlZGF0YSk7XG4gXG4mIzQzO1x0aWYgKCh1OCAqKWVyciAmIzQzOyBzaXplb2YoKmVycikgJiM0Mzsgc2l6ZW9mKF9fYmUzMikgXHUwMDNlIGNodW5rLVx1MDAzZWNodW5rX2VuZClcbiYjNDM7XHRcdHJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFuZHMpO1xuJiM0MztcbiBcdC8qIFdoZW4gY2FsY3VsYXRpbmcgdGhlIHRpbWUgZXh0ZW5zaW9uLCBhbiBpbXBsZW1lbnRhdGlvblxuIFx0ICogU0hPVUxEIHVzZSB0aGUgUlRUIGluZm9ybWF0aW9uIG1lYXN1cmVkIGJhc2VkIG9uIHRoZVxuIFx0ICogcHJldmlvdXMgQ09PS0lFIEVDSE8gLyBFUlJPUiBleGNoYW5nZSwgYW5kIHNob3VsZCBhZGQgbm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwMTowNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9zZl9kb181XzJfNl9zdGFsZSYjMzQ7LAogICAgJiMzNDtzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgaW4gU0NUUCYjMzk7cyBzdGFsZSBjb29raWUgZXJyb3IgaGFuZGxpbmcgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjYzIzZDAyN2UyZWUzOWNiYWFlMGMxZjU0MGQ3NDVhODRmYjBiZDFlCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgNSAwMTowNjo0MSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKaW5kZXggZDIzZDkzNWUxMjhlOTYuLmU0YjRiNjMxNjJjZjZjIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYwpAQCAtMjU5Miw2ICYjNDM7MjU5Miw5IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZSgKIAogCWVyciA9IChzdHJ1Y3Qgc2N0cF9lcnJoZHIgKikoY2h1bmstJmd0O3NrYi0mZ3Q7ZGF0YSk7CiAKJiM0MzsJaWYgKCh1OCAqKWVyciAmIzQzOyBzaXplb2YoKmVycikgJiM0Mzsgc2l6ZW9mKF9fYmUzMikgJmd0OyBjaHVuay0mZ3Q7Y2h1bmtfZW5kKQomIzQzOwkJcmV0dXJuIHNjdHBfc2ZfcGRpc2NhcmQobmV0LCBlcCwgYXNvYywgdHlwZSwgYXJnLCBjb21tYW5kcyk7CiYjNDM7CiAJLyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uCiAJICogU0hPVUxEIHVzZSB0aGUgUlRUIGluZm9ybWF0aW9uIG1lYXN1cmVkIGJhc2VkIG9uIHRoZQogCSAqIHByZXZpb3VzIENPT0tJRSBFQ0hPIC8gRVJST1IgZXhjaGFuZ2UsIGFuZCBzaG91bGQgYWRkIG5vCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4OTAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxODAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqU0NUUCBQYXRjaCBBbmFseXNpcyBhbmQgRnV6emluZyBTdHJhdGVneSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gSXQmIzM5O3MgYSBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkIGFkZGl0aW9uLCBhIGJvdW5kcyBjaGVjayB3aXRoaW4gYHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVgLiBCYXNpY2FsbHksIGl0JiMzOTtzIGd1YXJkaW5nIGFnYWluc3QgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkIG9yIHNvbWV0aGluZyBvZiB0aGF0IG5hdHVyZSBkdXJpbmcgZXJyb3IgaGFuZGxpbmcgd2l0aGluIHRoZSBTQ1RQIHByb3RvY29sLCBwYXJ0aWN1bGFybHkgd2hlbiBkZWFsaW5nIHdpdGggY2h1bmsgcHJvY2Vzc2luZy4gRnVuY3Rpb25hbGx5LCB0aGlzIGxvb2tzIGxpa2UgYSBzb2xpZCBmaXggdG8gYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4KCkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZeKAlGRlYWxpbmcgd2l0aCBlcnJvciBoYW5kbGluZyBhbmQgbGlrZWx5IGRhdGEgdmFsaWRhdGlvbiwgaXQmIzM5O3MgaW1tZWRpYXRlbHkgb2J2aW91cyB0aGF0IHRoaXMgbmVlZHMgZnV6emluZy4gQSBib3VuZHMgY2hlY2sgbGlrZSB0aGlzIGlzIGFsbW9zdCBhbHdheXMgYWRkZWQgdG8gYXZvaWQgdW5leHBlY3RlZCByZWFkcywgc28gYSBmdXp6aW5nIGNhbXBhaWduIHRvIGlkZW50aWZ5IGNvbmRpdGlvbnMgdGhlIGJvdW5kcyBjaGVjayBpcyBtZWFudCB0byBwcm90ZWN0IGFnYWluc3Qgd291bGQgYmUgcHJ1ZGVudC4KCk5vdywgbGV0JiMzOTtzIGdldCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgc2V0IHVwIHByb3Blcmx5IHRvIHRlc3QgdGhpcy4gVGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gSSBuZWVkIHRvIGVuc3VyZSBTQ1RQIGlzIGVuYWJsZWQgaXMgYENPTkZJR19JUF9TQ1RQYC4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyBmaWxlcywgcHJvYmFibHkgaW4gYG5ldC9zY3RwL0tjb25maWdgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCB0byB2ZXJpZnkgdGhlIGV4YWN0IGRlcGVuZGVuY2llcyBhbmQgYnVpbGQtdGltZSBjb25maWd1cmF0aW9uLiBUaGlzIGlzIHN0YW5kYXJkIHByb2NlZHVyZSB0byBjb25maXJtIHRoZSBjb2RlIHdpbGwgYmUgY29tcGlsZWQgYW5kIHRvIHR1bmUgYW55IGFzc29jaWF0ZWQgY29tcGlsZSBmbGFncy4gRnJvbSB0aGVyZSwgSSYjMzk7bGwgbmVlZCB0byBkZXZlbG9wIGZ1enppbmcgaGFybmVzc2VzIG9yIHV0aWxpemUgZXhpc3Rpbmcgb25lcywgZm9jdXNpbmcgb24gY3JhZnRlZCBTQ1RQIHBhY2tldHMgZGVzaWduZWQgdG8gdHJpZ2dlciBlZGdlIGNhc2VzIGluIHRoZSBlcnJvciBwYXRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJUF9TQ1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9LY29uZmlnLTUtXG5uZXQvc2N0cC9LY29uZmlnOjY6bWVudWNvbmZpZyBJUF9TQ1RQXG5uZXQvc2N0cC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtUaGUgU0NUUCBQcm90b2NvbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0ODAKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgc2l0dWF0aW9uOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgRnVuY3Rpb24qKgoKT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElQX1NDVFBgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBmdW5jdGlvbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGZ1bmN0aW9uIGluIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AgaXMgaGFuZGxpbmcgdGhpbmdzIHVuZGVyIHRoaXMgY29uZmlndXJhdGlvbi4gSSYjMzk7bSBnb2luZyB0byBzdGFydCBieSByZXZpZXdpbmcgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGF0IHNwZWNpZmljIGZ1bmN0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIHN0YWxlIGhhbmRsaW5nIGxvZ2ljIGFuZCBzZWUgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBzdGF0ZSBtYWNoaW5lLiBVbmRlcnN0YW5kaW5nIGl0cyBiZWhhdmlvciB3aXRoaW4gdGhlIFNDVFAgY29udGV4dCBpcyBjcnVjaWFsLCBnaXZlbiB0aGUgYElQX1NDVFBgIHNldHRpbmcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBlZGdlIGNhc2VzIGFzIHdlbGwgdG8gZnVsbHkgZ3Jhc3AgaXRzIGltcGxpY2F0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwMTowNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc21fc3RhdGVmdW5zLmM9NjU9c3RhdGljIHZvaWQgc2N0cF9zZW5kX3N0YWxlX2Nvb2tpZV9lcnIoc3RydWN0IG5ldCAqbmV0LFxuLS1cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTcwLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBzY3RwX2NodW5rICplcnJfY2h1bmspO1xubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NzE6c3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtNzItXHRcdFx0XHRcdHN0cnVjdCBuZXQgKm5ldCxcbi0tXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz0yNTA1PWVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyKFxuLS1cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTI1MzItXHRcdGlmIChTQ1RQX0VSUk9SX1NUQUxFX0NPT0tJRSA9PSBlcnItXHUwMDNlY2F1c2UpXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYzoyNTMzOlx0XHRcdHJldHVybiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKG5ldCwgZXAsIGFzb2MsIHR5cGUsXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTM0LVx0XHRcdFx0XHRcdFx0YXJnLCBjb21tYW5kcyk7XG4tLVxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtMjU2OS0gKi9cbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjI1NzA6c3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtMjU3MS1cdFx0XHRcdFx0c3RydWN0IG5ldCAqbmV0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA1IDAxOjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNjUKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyMTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRm9jdXNpbmcgb24gU0NUUCBTdGFsZSBDb29raWUgSGFuZGxpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYC4gSXQgbG9va3MgbGlrZSBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgaXMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnJgLiAgR2l2ZW4gdGhpcyBjb25uZWN0aW9uLCBJIHNob3VsZCBhZGQgYm90aCBmdW5jdGlvbnMgdG8gYEZvY3VzU3ltYm9sc2AuIFRoYXQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIGhhbmRsZSBvbiB0aGVpciBpbnRlcmFjdGlvbi4KCk5vdywgYmVmb3JlIEkgcHJvY2VlZCwgSSBuZWVkIHRvIGNvbnNpZGVyIGlmIGFueSBvdGhlciBjb25maWd1cmF0aW9ucyBhcmUgbmVjZXNzYXJ5LiBGcm9tIG15IGV4cGVyaWVuY2Ugd2l0aCBTQ1RQLCBgSVBfU0NUUGAgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgdGhlIGNvZGUuIEkgcmVtZW1iZXIgdGhlcmUgd2FzIGEgcXVlc3Rpb24gYWJvdXQgd2hldGhlciBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgd2FzIHN0YXRpYyBvciBub3QuIFl1cCwgaXQgaXMgZGVjbGFyZWQgc3RhdGljLiBXYWl0IGEgbWludXRlISBgc2N0cF9zZl9jb29raWVfZWNob2VkX2VycmAgaXMgKm5vdCogc3RhdGljLiBUaGlzIG1lYW5zIGJvdGggZnVuY3Rpb25zIGNhbiwgYW5kIHNob3VsZCwgYmUgYWRkZWQgdG8gYEZvY3VzU3ltYm9sc2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dC4KCkxldCYjMzk7cyBkbyBhIHF1aWNrIHNjYW4gb2YgYHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVgIGluIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AuIFRoYXQgc2hvdWxkIHJlZnJlc2ggbXkgbWVtb3J5IG9mIGl0cyBpbnRlcm5hbHMgYW5kIGhvdyBpdCBoYW5kbGVzIHN0YWxlIGNvb2tpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDE6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI1NzAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjU3MDpcdHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcbjI1NzE6XHRcdFx0XHRcdFx0c3RydWN0IG5ldCAqbmV0LFxuMjU3MjpcdFx0XHRcdFx0XHRjb25zdCBzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXAsXG4yNTczOlx0XHRcdFx0XHRcdGNvbnN0IHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxuMjU3NDpcdFx0XHRcdFx0XHRjb25zdCB1bmlvbiBzY3RwX3N1YnR5cGUgdHlwZSxcbjI1NzU6XHRcdFx0XHRcdFx0dm9pZCAqYXJnLFxuMjU3NjpcdFx0XHRcdFx0XHRzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcylcbjI1Nzc6XHR7XG4yNTc4Olx0XHRpbnQgYXR0ZW1wdHMgPSBhc29jLVx1MDAzZWluaXRfZXJyX2NvdW50ZXIgJiM0MzsgMTtcbjI1Nzk6XHRcdHN0cnVjdCBzY3RwX2NodW5rICpjaHVuayA9IGFyZywgKnJlcGx5O1xuMjU4MDpcdFx0c3RydWN0IHNjdHBfY29va2llX3ByZXNlcnZlX3BhcmFtIGJodDtcbjI1ODE6XHRcdHN0cnVjdCBzY3RwX2JpbmRfYWRkciAqYnA7XG4yNTgyOlx0XHRzdHJ1Y3Qgc2N0cF9lcnJoZHIgKmVycjtcbjI1ODM6XHRcdHUzMiBzdGFsZTtcbjI1ODQ6XHRcbjI1ODU6XHRcdGlmIChhdHRlbXB0cyBcdTAwM2UgYXNvYy1cdTAwM2VtYXhfaW5pdF9hdHRlbXB0cykge1xuMjU4NjpcdFx0XHRzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX1NFVF9TS19FUlIsXG4yNTg3Olx0XHRcdFx0XHRTQ1RQX0VSUk9SKEVUSU1FRE9VVCkpO1xuMjU4ODpcdFx0XHRzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX0lOSVRfRkFJTEVELFxuMjU4OTpcdFx0XHRcdFx0U0NUUF9QRVJSKFNDVFBfRVJST1JfU1RBTEVfQ09PS0lFKSk7XG4yNTkwOlx0XHRcdHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0RFTEVURV9UQ0I7XG4yNTkxOlx0XHR9XG4yNTkyOlx0XG4yNTkzOlx0XHRlcnIgPSAoc3RydWN0IHNjdHBfZXJyaGRyICopKGNodW5rLVx1MDAzZXNrYi1cdTAwM2VkYXRhKTtcbjI1OTQ6XHRcbjI1OTU6XHRcdGlmICgodTggKillcnIgJiM0Mzsgc2l6ZW9mKCplcnIpICYjNDM7IHNpemVvZihfX2JlMzIpIFx1MDAzZSBjaHVuay1cdTAwM2VjaHVua19lbmQpXG4yNTk2Olx0XHRcdHJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFuZHMpO1xuMjU5NzpcdFxuMjU5ODpcdFx0LyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uXG4yNTk5Olx0XHQgKiBTSE9VTEQgdXNlIHRoZSBSVFQgaW5mb3JtYXRpb24gbWVhc3VyZWQgYmFzZWQgb24gdGhlXG4yNjAwOlx0XHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xuMjYwMTpcdFx0ICogbW9yZSB0aGFuIDEgc2Vjb25kIGJleW9uZCB0aGUgbWVhc3VyZWQgUlRULCBkdWUgdG8gbG9uZ1xuMjYwMjpcdFx0ICogU3RhdGUgQ29va2llIGxpZmV0aW1lcyBtYWtpbmcgdGhlIGVuZHBvaW50IG1vcmUgc3ViamVjdCB0b1xuMjYwMzpcdFx0ICogYSByZXBsYXkgYXR0YWNrLlxuMjYwNDpcdFx0ICogTWVhc3VyZSBvZiBTdGFsZW5lc3MmIzM5O3MgdW5pdCBpcyB1c2VjLiAoMS8xMDAwMDAwIHNlYylcbjI2MDU6XHRcdCAqIFN1Z2dlc3RlZCBDb29raWUgTGlmZS1zcGFuIEluY3JlbWVudCYjMzk7cyB1bml0IGlzIG1zZWMuXG4yNjA2Olx0XHQgKiAoMS8xMDAwIHNlYylcbjI2MDc6XHRcdCAqIEluIGdlbmVyYWwsIGlmIHlvdSB1c2UgdGhlIHN1Z2dlc3RlZCBjb29raWUgbGlmZSwgdGhlIHZhbHVlXG4yNjA4Olx0XHQgKiBmb3VuZCBpbiB0aGUgZmllbGQgb2YgbWVhc3VyZSBvZiBzdGFsZW5lc3Mgc2hvdWxkIGJlIGRvdWJsZWRcbjI2MDk6XHRcdCAqIHRvIGdpdmUgYW1wbGUgdGltZSB0byByZXRyYW5zbWl0IHRoZSBuZXcgY29va2llIGFuZCB0aHVzXG4yNjEwOlx0XHQgKiB5aWVsZCBhIGhpZ2hlciBwcm9iYWJpbGl0eSBvZiBzdWNjZXNzIG9uIHRoZSByZWF0dGVtcHQuXG4yNjExOlx0XHQgKi9cbjI2MTI6XHRcdHN0YWxlID0gbnRvaGwoKihfX2JlMzIgKikoKHU4ICopZXJyICYjNDM7IHNpemVvZigqZXJyKSkpO1xuMjYxMzpcdFx0c3RhbGUgPSAoc3RhbGUgKiAyKSAvIDEwMDA7XG4yNjE0Olx0XG4yNjE1Olx0XHRiaHQucGFyYW1faGRyLnR5cGUgPSBTQ1RQX1BBUkFNX0NPT0tJRV9QUkVTRVJWQVRJVkU7XG4yNjE2Olx0XHRiaHQucGFyYW1faGRyLmxlbmd0aCA9IGh0b25zKHNpemVvZihiaHQpKTtcbjI2MTc6XHRcdGJodC5saWZlc3Bhbl9pbmNyZW1lbnQgPSBodG9ubChzdGFsZSk7XG4yNjE4Olx0XG4yNjE5Olx0XHQvKiBCdWlsZCB0aGF0IG5ldyBJTklUIGNodW5rLiAgKi9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNSAwMTowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjcxCgkJCQkJCQlvdXRwdXQ6IDExNAoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaCwgZnJvbSBteSBwZXJzcGVjdGl2ZSBhcyBzb21lb25lIHdobyB1bmRlcnN0YW5kcyB0aGUgaW50cmljYWNpZXMgb2YgU0NUUDoKCioqQW5hbHl6aW5nIHRoZSBTQ1RQIEJvdW5kcyBDaGVjayoqCgpSaWdodCwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgYm91bmRzIGNoZWNrIGJlZm9yZSB3ZSBhY2Nlc3MgdGhlIGBzdGFsZWAgbWVtYmVyIG9mIHRoZSBgZXJyYCBzdHJ1Y3R1cmUuIFRoYXQgaW1tZWRpYXRlbHkgc2lnbmFscyBhIHBvdGVudGlhbCBtZW1vcnkgc2FmZXR5IGlzc3VlLiBUaGUgZmFjdCB0aGF0IHRoZXkmIzM5O3ZlIGlkZW50aWZpZWQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGlzIGNvbmNlcm5pbmc7IHRoZXNlIGFyZSBwcmVjaXNlbHkgdGhlIHR5cGVzIG9mIHZ1bG5lcmFiaWxpdGllcyB0aGF0IGNhbiBsZWFkIHRvIGNyYXNoZXMgb3IsIHdvcnNlLCBleHBsb2l0YWJsZSBmbGF3cyBpbiB0aGUgU0NUUCBpbXBsZW1lbnRhdGlvbi4gVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlIGJlY2F1c2UsIGFzIGV4cGVydHMsIHdlIGtub3cgdGhhdCBzdWNoIGEgY2hlY2sgYWx0ZXJzIHRoZSBwcm9ncmFtIGZsb3cgdG8gZW5zdXJlIHNhZmUgYWNjZXNzLgoKR2l2ZW4gdGhlIHBvdGVudGlhbCBzZXZlcml0eSBvZiBvdXQtb2YtYm91bmRzIHJlYWRzLCBmdXp6aW5nIGlzIGFuICpleGNlbGxlbnQqIGlkZWEuIEl04oCZcyBhbiBlZmZlY3RpdmUgd2F5IHRvIHVuZWFydGggc3VidGxlIGJ1Z3MgdGhhdCBtaWdodCBub3QgYmUgYXBwYXJlbnQgdGhyb3VnaCBzdGF0aWMgYW5hbHlzaXMuIFRoZSBgSVBfU0NUUGAgY29uZmlnIGFsc28gc3VnZ2VzdHMgdGhlIGNvbnRleHQgb2YgdGhlIGJ1ZywgYW5kIHRoZSBmb2N1cyBzeW1ib2xzLCBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYCwgcGluIGRvd24gdGhlIGNyaXRpY2FsIGFyZWFzIHRoaXMgY29kZSBpcyBsaWtlbHkgdG8gY2hhbmdlLiBCb3RoIG9mIHRoZXNlIHN5bWJvbHMsIGNvdXBsZWQgd2l0aCBgc3RhbGVgLCBoZWxwIHVzIGlkZW50aWZ5IGhvdyBhbmQgd2h5IHRoZSBzdGFsZSBkYXRhIG1pZ2h0IGJlIGEgcHJvYmxlbS4KCkxldCYjMzk7cyBjYWxsIHRoZSBzZXQgcmVzdWx0cywgYW5kIHdvcmsgb24gaXQgYXMgc29vbiBhcyBwb3NzaWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDUgMDE6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfY29va2llX2VjaG9lZF9lcnImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJiMzOTtzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX3NmX2RvXzVfMl82X3N0YWxlJiMzNDssCiAgICAmIzM0O3NjdHBfc2ZfY29va2llX2VjaG9lZF9lcnImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJiMzOTtzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo0Mi4zNzM2MzMxNzRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzI4OTE1NDEyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9zZl9kb181XzJfNl9zdGFsZVwiLFxuICAgIFwic2N0cF9zZl9jb29raWVfZWNob2VkX2VyclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBib3VuZHMgY2hlY2sgaW4gU0NUUCdzIHN0YWxlIGNvb2tpZSBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFNDVFAgbG9naWMgYW5kIHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjQyLjM3MzYzODUzNFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDAxOTI3Mzk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgY2MyM2QwMjdlMmVlMzljYmFhZTBjMWY1NDBkNzQ1YTg0ZmIwYmQxZVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU3VuIEp1bCA1IDAxOjA2OjQxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG5pbmRleCBkMjNkOTM1ZTEyOGU5Ni4uZTRiNGI2MzE2MmNmNmMgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xcbkBAIC0yNTkyLDYgKzI1OTIsOSBAQCBzdGF0aWMgZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGUoXFxuIFxcbiBcXHRlcnIgPSAoc3RydWN0IHNjdHBfZXJyaGRyICopKGNodW5rLVxcdTAwM2Vza2ItXFx1MDAzZWRhdGEpO1xcbiBcXG4rXFx0aWYgKCh1OCAqKWVyciArIHNpemVvZigqZXJyKSArIHNpemVvZihfX2JlMzIpIFxcdTAwM2UgY2h1bmstXFx1MDAzZWNodW5rX2VuZClcXG4rXFx0XFx0cmV0dXJuIHNjdHBfc2ZfcGRpc2NhcmQobmV0LCBlcCwgYXNvYywgdHlwZSwgYXJnLCBjb21tYW5kcyk7XFxuK1xcbiBcXHQvKiBXaGVuIGNhbGN1bGF0aW5nIHRoZSB0aW1lIGV4dGVuc2lvbiwgYW4gaW1wbGVtZW50YXRpb25cXG4gXFx0ICogU0hPVUxEIHVzZSB0aGUgUlRUIGluZm9ybWF0aW9uIG1lYXN1cmVkIGJhc2VkIG9uIHRoZVxcbiBcXHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo0Mi43NzYzMDUxNDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2ODg2NDcyMzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3NmX2RvXzVfMl82X3N0YWxlXCIsXG4gICAgXCJzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJ3Mgc3RhbGUgY29va2llIGVycm9yIGhhbmRsaW5nIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgU0NUUCBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjYzIzZDAyN2UyZWUzOWNiYWFlMGMxZjU0MGQ3NDVhODRmYjBiZDFlXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFN1biBKdWwgNSAwMTowNjo0MSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNcbmluZGV4IGQyM2Q5MzVlMTI4ZTk2Li5lNGI0YjYzMTYyY2Y2YyAxMDA2NDRcbi0tLSBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jXG4rKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1xuQEAgLTI1OTIsNiArMjU5Miw5IEBAIHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcbiBcbiBcdGVyciA9IChzdHJ1Y3Qgc2N0cF9lcnJoZHIgKikoY2h1bmstXHUwMDNlc2tiLVx1MDAzZWRhdGEpO1xuIFxuK1x0aWYgKCh1OCAqKWVyciArIHNpemVvZigqZXJyKSArIHNpemVvZihfX2JlMzIpIFx1MDAzZSBjaHVuay1cdTAwM2VjaHVua19lbmQpXG4rXHRcdHJldHVybiBzY3RwX3NmX3BkaXNjYXJkKG5ldCwgZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFuZHMpO1xuK1xuIFx0LyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uXG4gXHQgKiBTSE9VTEQgdXNlIHRoZSBSVFQgaW5mb3JtYXRpb24gbWVhc3VyZWQgYmFzZWQgb24gdGhlXG4gXHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDE6MDY6NDIuNzc2MzA2MzU5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDY2NDk2MTczMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipTQ1RQIFBhdGNoIEFuYWx5c2lzIGFuZCBGdXp6aW5nIFN0cmF0ZWd5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9zY3RwL3NtX3N0YXRlZnVucy5jYC4gSXQncyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQgYWRkaXRpb24sIGEgYm91bmRzIGNoZWNrIHdpdGhpbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAuIEJhc2ljYWxseSwgaXQncyBndWFyZGluZyBhZ2FpbnN0IGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZCBvciBzb21ldGhpbmcgb2YgdGhhdCBuYXR1cmUgZHVyaW5nIGVycm9yIGhhbmRsaW5nIHdpdGhpbiB0aGUgU0NUUCBwcm90b2NvbCwgcGFydGljdWxhcmx5IHdoZW4gZGVhbGluZyB3aXRoIGNodW5rIHByb2Nlc3NpbmcuIEZ1bmN0aW9uYWxseSwgdGhpcyBsb29rcyBsaWtlIGEgc29saWQgZml4IHRvIGEgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdHkuXG5cbkdpdmVuIHRoZSBuYXR1cmUgb2YgdGhlIGNoYW5nZeKAlGRlYWxpbmcgd2l0aCBlcnJvciBoYW5kbGluZyBhbmQgbGlrZWx5IGRhdGEgdmFsaWRhdGlvbiwgaXQncyBpbW1lZGlhdGVseSBvYnZpb3VzIHRoYXQgdGhpcyBuZWVkcyBmdXp6aW5nLiBBIGJvdW5kcyBjaGVjayBsaWtlIHRoaXMgaXMgYWxtb3N0IGFsd2F5cyBhZGRlZCB0byBhdm9pZCB1bmV4cGVjdGVkIHJlYWRzLCBzbyBhIGZ1enppbmcgY2FtcGFpZ24gdG8gaWRlbnRpZnkgY29uZGl0aW9ucyB0aGUgYm91bmRzIGNoZWNrIGlzIG1lYW50IHRvIHByb3RlY3QgYWdhaW5zdCB3b3VsZCBiZSBwcnVkZW50LlxuXG5Ob3csIGxldCdzIGdldCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgc2V0IHVwIHByb3Blcmx5IHRvIHRlc3QgdGhpcy4gVGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gSSBuZWVkIHRvIGVuc3VyZSBTQ1RQIGlzIGVuYWJsZWQgaXMgYENPTkZJR19JUF9TQ1RQYC4gSSdsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGVzLCBwcm9iYWJseSBpbiBgbmV0L3NjdHAvS2NvbmZpZ2Agb3Igc29tZXRoaW5nIHNpbWlsYXIsIHRvIHZlcmlmeSB0aGUgZXhhY3QgZGVwZW5kZW5jaWVzIGFuZCBidWlsZC10aW1lIGNvbmZpZ3VyYXRpb24uIFRoaXMgaXMgc3RhbmRhcmQgcHJvY2VkdXJlIHRvIGNvbmZpcm0gdGhlIGNvZGUgd2lsbCBiZSBjb21waWxlZCBhbmQgdG8gdHVuZSBhbnkgYXNzb2NpYXRlZCBjb21waWxlIGZsYWdzLiBGcm9tIHRoZXJlLCBJJ2xsIG5lZWQgdG8gZGV2ZWxvcCBmdXp6aW5nIGhhcm5lc3NlcyBvciB1dGlsaXplIGV4aXN0aW5nIG9uZXMsIGZvY3VzaW5nIG9uIGNyYWZ0ZWQgU0NUUCBwYWNrZXRzIGRlc2lnbmVkIHRvIHRyaWdnZXIgZWRnZSBjYXNlcyBpbiB0aGUgZXJyb3IgcGF0aC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg5MCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjQ3LjQ0MTI3MDA4MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTEzNDAxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSVBfU0NUUFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL0tjb25maWctNS1cXG5uZXQvc2N0cC9LY29uZmlnOjY6bWVudWNvbmZpZyBJUF9TQ1RQXFxubmV0L3NjdHAvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgU0NUUCBQcm90b2NvbFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDE6MDY6NDcuNTAyNDEwMTU5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE4ODg0OTgwOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGFuYWx5c2lzIG9mIHRoZSBzaXR1YXRpb246XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgYHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVgIEZ1bmN0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElQX1NDVFBgLiBNeSBuZXh0IHN0ZXAgaXMgdG8gZGl2ZSBpbnRvIHRoZSBmdW5jdGlvbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGlzIGZ1bmN0aW9uIGluIGBuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY2AgaXMgaGFuZGxpbmcgdGhpbmdzIHVuZGVyIHRoaXMgY29uZmlndXJhdGlvbi4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHJldmlld2luZyB0aGUgc291cmNlIGNvZGUgZm9yIHRoYXQgc3BlY2lmaWMgZnVuY3Rpb24uIEknbGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBzdGFsZSBoYW5kbGluZyBsb2dpYyBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgc3RhdGUgbWFjaGluZS4gVW5kZXJzdGFuZGluZyBpdHMgYmVoYXZpb3Igd2l0aGluIHRoZSBTQ1RQIGNvbnRleHQgaXMgY3J1Y2lhbCwgZ2l2ZW4gdGhlIGBJUF9TQ1RQYCBzZXR0aW5nLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgZWRnZSBjYXNlcyBhcyB3ZWxsIHRvIGZ1bGx5IGdyYXNwIGl0cyBpbXBsaWNhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODAsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo1MC42OTEyNjE4MTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjIyMzg4NTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9zZl9kb181XzJfNl9zdGFsZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYz02NT1zdGF0aWMgdm9pZCBzY3RwX3NlbmRfc3RhbGVfY29va2llX2VycihzdHJ1Y3QgbmV0ICpuZXQsXFxuLS1cXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy03MC1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHNjdHBfY2h1bmsgKmVycl9jaHVuayk7XFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmM6NzE6c3RhdGljIGVudW0gc2N0cF9kaXNwb3NpdGlvbiBzY3RwX3NmX2RvXzVfMl82X3N0YWxlKFxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jLTcyLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBuZXQgKm5ldCxcXG4tLVxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jPTI1MDU9ZW51bSBzY3RwX2Rpc3Bvc2l0aW9uIHNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnIoXFxuLS1cXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTMyLVxcdFxcdGlmIChTQ1RQX0VSUk9SX1NUQUxFX0NPT0tJRSA9PSBlcnItXFx1MDAzZWNhdXNlKVxcbm5ldC9zY3RwL3NtX3N0YXRlZnVucy5jOjI1MzM6XFx0XFx0XFx0cmV0dXJuIHNjdHBfc2ZfZG9fNV8yXzZfc3RhbGUobmV0LCBlcCwgYXNvYywgdHlwZSxcXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTM0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdGFyZywgY29tbWFuZHMpO1xcbi0tXFxubmV0L3NjdHAvc21fc3RhdGVmdW5zLmMtMjU2OS0gKi9cXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYzoyNTcwOnN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcXG5uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYy0yNTcxLVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBuZXQgKm5ldCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDVUMDE6MDY6NTAuNzUzNTA2NzE2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQzMzc4Nzk0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGb2N1c2luZyBvbiBTQ1RQIFN0YWxlIENvb2tpZSBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYC4gSXQgbG9va3MgbGlrZSBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgaXMgY2FsbGVkIGZyb20gYHNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnJgLiAgR2l2ZW4gdGhpcyBjb25uZWN0aW9uLCBJIHNob3VsZCBhZGQgYm90aCBmdW5jdGlvbnMgdG8gYEZvY3VzU3ltYm9sc2AuIFRoYXQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIGhhbmRsZSBvbiB0aGVpciBpbnRlcmFjdGlvbi5cblxuTm93LCBiZWZvcmUgSSBwcm9jZWVkLCBJIG5lZWQgdG8gY29uc2lkZXIgaWYgYW55IG90aGVyIGNvbmZpZ3VyYXRpb25zIGFyZSBuZWNlc3NhcnkuIEZyb20gbXkgZXhwZXJpZW5jZSB3aXRoIFNDVFAsIGBJUF9TQ1RQYCBzaG91bGQgYmUgc3VmZmljaWVudC5cblxuQWxyaWdodCwgbGV0J3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgdGhlIGNvZGUuIEkgcmVtZW1iZXIgdGhlcmUgd2FzIGEgcXVlc3Rpb24gYWJvdXQgd2hldGhlciBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgd2FzIHN0YXRpYyBvciBub3QuIFl1cCwgaXQgaXMgZGVjbGFyZWQgc3RhdGljLiBXYWl0IGEgbWludXRlISBgc2N0cF9zZl9jb29raWVfZWNob2VkX2VycmAgaXMgKm5vdCogc3RhdGljLiBUaGlzIG1lYW5zIGJvdGggZnVuY3Rpb25zIGNhbiwgYW5kIHNob3VsZCwgYmUgYWRkZWQgdG8gYEZvY3VzU3ltYm9sc2AgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dC5cblxuTGV0J3MgZG8gYSBxdWljayBzY2FuIG9mIGBzY3RwX3NmX2RvXzVfMl82X3N0YWxlYCBpbiBgbmV0L3NjdHAvc21fc3RhdGVmdW5zLmNgLiBUaGF0IHNob3VsZCByZWZyZXNoIG15IG1lbW9yeSBvZiBpdHMgaW50ZXJuYWxzIGFuZCBob3cgaXQgaGFuZGxlcyBzdGFsZSBjb29raWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTY1LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjU1LjE4NzI5NjgwOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MDYyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNTcwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyNTcwOlxcdHN0YXRpYyBlbnVtIHNjdHBfZGlzcG9zaXRpb24gc2N0cF9zZl9kb181XzJfNl9zdGFsZShcXG4yNTcxOlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBuZXQgKm5ldCxcXG4yNTcyOlxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBzY3RwX2VuZHBvaW50ICplcCxcXG4yNTczOlxcdFxcdFxcdFxcdFxcdFxcdGNvbnN0IHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxcbjI1NzQ6XFx0XFx0XFx0XFx0XFx0XFx0Y29uc3QgdW5pb24gc2N0cF9zdWJ0eXBlIHR5cGUsXFxuMjU3NTpcXHRcXHRcXHRcXHRcXHRcXHR2b2lkICphcmcsXFxuMjU3NjpcXHRcXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qgc2N0cF9jbWRfc2VxICpjb21tYW5kcylcXG4yNTc3OlxcdHtcXG4yNTc4OlxcdFxcdGludCBhdHRlbXB0cyA9IGFzb2MtXFx1MDAzZWluaXRfZXJyX2NvdW50ZXIgKyAxO1xcbjI1Nzk6XFx0XFx0c3RydWN0IHNjdHBfY2h1bmsgKmNodW5rID0gYXJnLCAqcmVwbHk7XFxuMjU4MDpcXHRcXHRzdHJ1Y3Qgc2N0cF9jb29raWVfcHJlc2VydmVfcGFyYW0gYmh0O1xcbjI1ODE6XFx0XFx0c3RydWN0IHNjdHBfYmluZF9hZGRyICpicDtcXG4yNTgyOlxcdFxcdHN0cnVjdCBzY3RwX2VycmhkciAqZXJyO1xcbjI1ODM6XFx0XFx0dTMyIHN0YWxlO1xcbjI1ODQ6XFx0XFxuMjU4NTpcXHRcXHRpZiAoYXR0ZW1wdHMgXFx1MDAzZSBhc29jLVxcdTAwM2VtYXhfaW5pdF9hdHRlbXB0cykge1xcbjI1ODY6XFx0XFx0XFx0c2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9TRVRfU0tfRVJSLFxcbjI1ODc6XFx0XFx0XFx0XFx0XFx0U0NUUF9FUlJPUihFVElNRURPVVQpKTtcXG4yNTg4OlxcdFxcdFxcdHNjdHBfYWRkX2NtZF9zZihjb21tYW5kcywgU0NUUF9DTURfSU5JVF9GQUlMRUQsXFxuMjU4OTpcXHRcXHRcXHRcXHRcXHRTQ1RQX1BFUlIoU0NUUF9FUlJPUl9TVEFMRV9DT09LSUUpKTtcXG4yNTkwOlxcdFxcdFxcdHJldHVybiBTQ1RQX0RJU1BPU0lUSU9OX0RFTEVURV9UQ0I7XFxuMjU5MTpcXHRcXHR9XFxuMjU5MjpcXHRcXG4yNTkzOlxcdFxcdGVyciA9IChzdHJ1Y3Qgc2N0cF9lcnJoZHIgKikoY2h1bmstXFx1MDAzZXNrYi1cXHUwMDNlZGF0YSk7XFxuMjU5NDpcXHRcXG4yNTk1OlxcdFxcdGlmICgodTggKillcnIgKyBzaXplb2YoKmVycikgKyBzaXplb2YoX19iZTMyKSBcXHUwMDNlIGNodW5rLVxcdTAwM2VjaHVua19lbmQpXFxuMjU5NjpcXHRcXHRcXHRyZXR1cm4gc2N0cF9zZl9wZGlzY2FyZChuZXQsIGVwLCBhc29jLCB0eXBlLCBhcmcsIGNvbW1hbmRzKTtcXG4yNTk3OlxcdFxcbjI1OTg6XFx0XFx0LyogV2hlbiBjYWxjdWxhdGluZyB0aGUgdGltZSBleHRlbnNpb24sIGFuIGltcGxlbWVudGF0aW9uXFxuMjU5OTpcXHRcXHQgKiBTSE9VTEQgdXNlIHRoZSBSVFQgaW5mb3JtYXRpb24gbWVhc3VyZWQgYmFzZWQgb24gdGhlXFxuMjYwMDpcXHRcXHQgKiBwcmV2aW91cyBDT09LSUUgRUNITyAvIEVSUk9SIGV4Y2hhbmdlLCBhbmQgc2hvdWxkIGFkZCBub1xcbjI2MDE6XFx0XFx0ICogbW9yZSB0aGFuIDEgc2Vjb25kIGJleW9uZCB0aGUgbWVhc3VyZWQgUlRULCBkdWUgdG8gbG9uZ1xcbjI2MDI6XFx0XFx0ICogU3RhdGUgQ29va2llIGxpZmV0aW1lcyBtYWtpbmcgdGhlIGVuZHBvaW50IG1vcmUgc3ViamVjdCB0b1xcbjI2MDM6XFx0XFx0ICogYSByZXBsYXkgYXR0YWNrLlxcbjI2MDQ6XFx0XFx0ICogTWVhc3VyZSBvZiBTdGFsZW5lc3MncyB1bml0IGlzIHVzZWMuICgxLzEwMDAwMDAgc2VjKVxcbjI2MDU6XFx0XFx0ICogU3VnZ2VzdGVkIENvb2tpZSBMaWZlLXNwYW4gSW5jcmVtZW50J3MgdW5pdCBpcyBtc2VjLlxcbjI2MDY6XFx0XFx0ICogKDEvMTAwMCBzZWMpXFxuMjYwNzpcXHRcXHQgKiBJbiBnZW5lcmFsLCBpZiB5b3UgdXNlIHRoZSBzdWdnZXN0ZWQgY29va2llIGxpZmUsIHRoZSB2YWx1ZVxcbjI2MDg6XFx0XFx0ICogZm91bmQgaW4gdGhlIGZpZWxkIG9mIG1lYXN1cmUgb2Ygc3RhbGVuZXNzIHNob3VsZCBiZSBkb3VibGVkXFxuMjYwOTpcXHRcXHQgKiB0byBnaXZlIGFtcGxlIHRpbWUgdG8gcmV0cmFuc21pdCB0aGUgbmV3IGNvb2tpZSBhbmQgdGh1c1xcbjI2MTA6XFx0XFx0ICogeWllbGQgYSBoaWdoZXIgcHJvYmFiaWxpdHkgb2Ygc3VjY2VzcyBvbiB0aGUgcmVhdHRlbXB0LlxcbjI2MTE6XFx0XFx0ICovXFxuMjYxMjpcXHRcXHRzdGFsZSA9IG50b2hsKCooX19iZTMyICopKCh1OCAqKWVyciArIHNpemVvZigqZXJyKSkpO1xcbjI2MTM6XFx0XFx0c3RhbGUgPSAoc3RhbGUgKiAyKSAvIDEwMDA7XFxuMjYxNDpcXHRcXG4yNjE1OlxcdFxcdGJodC5wYXJhbV9oZHIudHlwZSA9IFNDVFBfUEFSQU1fQ09PS0lFX1BSRVNFUlZBVElWRTtcXG4yNjE2OlxcdFxcdGJodC5wYXJhbV9oZHIubGVuZ3RoID0gaHRvbnMoc2l6ZW9mKGJodCkpO1xcbjI2MTc6XFx0XFx0Ymh0LmxpZmVzcGFuX2luY3JlbWVudCA9IGh0b25sKHN0YWxlKTtcXG4yNjE4OlxcdFxcbjI2MTk6XFx0XFx0LyogQnVpbGQgdGhhdCBuZXcgSU5JVCBjaHVuay4gICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA1VDAxOjA2OjU1LjE4NzY3ODgxOFoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQzODQ4NTQ0MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhc3Nlc3NtZW50IG9mIHRoaXMgcGF0Y2gsIGZyb20gbXkgcGVyc3BlY3RpdmUgYXMgc29tZW9uZSB3aG8gdW5kZXJzdGFuZHMgdGhlIGludHJpY2FjaWVzIG9mIFNDVFA6XG5cbioqQW5hbHl6aW5nIHRoZSBTQ1RQIEJvdW5kcyBDaGVjayoqXG5cblJpZ2h0LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBib3VuZHMgY2hlY2sgYmVmb3JlIHdlIGFjY2VzcyB0aGUgYHN0YWxlYCBtZW1iZXIgb2YgdGhlIGBlcnJgIHN0cnVjdHVyZS4gVGhhdCBpbW1lZGlhdGVseSBzaWduYWxzIGEgcG90ZW50aWFsIG1lbW9yeSBzYWZldHkgaXNzdWUuIFRoZSBmYWN0IHRoYXQgdGhleSd2ZSBpZGVudGlmaWVkIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpcyBjb25jZXJuaW5nOyB0aGVzZSBhcmUgcHJlY2lzZWx5IHRoZSB0eXBlcyBvZiB2dWxuZXJhYmlsaXRpZXMgdGhhdCBjYW4gbGVhZCB0byBjcmFzaGVzIG9yLCB3b3JzZSwgZXhwbG9pdGFibGUgZmxhd3MgaW4gdGhlIFNDVFAgaW1wbGVtZW50YXRpb24uIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGNoYW5nZSBiZWNhdXNlLCBhcyBleHBlcnRzLCB3ZSBrbm93IHRoYXQgc3VjaCBhIGNoZWNrIGFsdGVycyB0aGUgcHJvZ3JhbSBmbG93IHRvIGVuc3VyZSBzYWZlIGFjY2Vzcy5cblxuR2l2ZW4gdGhlIHBvdGVudGlhbCBzZXZlcml0eSBvZiBvdXQtb2YtYm91bmRzIHJlYWRzLCBmdXp6aW5nIGlzIGFuICpleGNlbGxlbnQqIGlkZWEuIEl04oCZcyBhbiBlZmZlY3RpdmUgd2F5IHRvIHVuZWFydGggc3VidGxlIGJ1Z3MgdGhhdCBtaWdodCBub3QgYmUgYXBwYXJlbnQgdGhyb3VnaCBzdGF0aWMgYW5hbHlzaXMuIFRoZSBgSVBfU0NUUGAgY29uZmlnIGFsc28gc3VnZ2VzdHMgdGhlIGNvbnRleHQgb2YgdGhlIGJ1ZywgYW5kIHRoZSBmb2N1cyBzeW1ib2xzLCBgc2N0cF9zZl9kb181XzJfNl9zdGFsZWAgYW5kIGBzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyYCwgcGluIGRvd24gdGhlIGNyaXRpY2FsIGFyZWFzIHRoaXMgY29kZSBpcyBsaWtlbHkgdG8gY2hhbmdlLiBCb3RoIG9mIHRoZXNlIHN5bWJvbHMsIGNvdXBsZWQgd2l0aCBgc3RhbGVgLCBoZWxwIHVzIGlkZW50aWZ5IGhvdyBhbmQgd2h5IHRoZSBzdGFsZSBkYXRhIG1pZ2h0IGJlIGEgcHJvYmxlbS5cblxuTGV0J3MgY2FsbCB0aGUgc2V0IHJlc3VsdHMsIGFuZCB3b3JrIG9uIGl0IGFzIHNvb24gYXMgcG9zc2libGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NzEsIk91dHB1dFRva2VucyI6MTE0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNVQwMTowNjo1OS41NzI1MzU2ODJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MDIzODAwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBfU0NUUFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNjdHBfc2ZfZG9fNV8yXzZfc3RhbGVcIixcbiAgICBcInNjdHBfc2ZfY29va2llX2VjaG9lZF9lcnJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIGluIFNDVFAncyBzdGFsZSBjb29raWUgZXJyb3IgaGFuZGxpbmcgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBTQ1RQIGxvZ2ljIGFuZCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX3NmX2RvXzVfMl82X3N0YWxlXCIsXG4gICAgXCJzY3RwX3NmX2Nvb2tpZV9lY2hvZWRfZXJyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayBpbiBTQ1RQJ3Mgc3RhbGUgY29va2llIGVycm9yIGhhbmRsaW5nIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgU0NUUCBsb2dpYyBhbmQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow4727d[1] Phase: Succeeded StartedAt: 2026-07-05 01:08:17 +0000 UTC FinishedAt: 2026-07-05 01:08:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-05 01:08:17 +0000 UTC FinishedAt: 2026-07-05 01:08:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2] Phase: Succeeded StartedAt: 2026-07-05 01:08:17 +0000 UTC FinishedAt: 2026-07-05 05:05:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-05 01:08:17 +0000 UTC FinishedAt: 2026-07-05 05:05:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-05 01:08:17 +0000 UTC FinishedAt: 2026-07-05 01:08:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-05 01:08:17 +0000 UTC FinishedAt: 2026-07-05 01:08:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow4727d/series-workflow4727d-convert-artifact-57065749/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-05 01:08:41 +0000 UTC FinishedAt: 2026-07-05 01:32:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-05 01:08:41 +0000 UTC FinishedAt: 2026-07-05 01:32:57 +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:*de58c199-e85c-4b24-95d0-82acf621069b,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-workflow4727d/series-workflow4727d-convert-artifact-57065749/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": "d805a828-8c1d-4747-bc86-20de94dc0a88", "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-workflow4727d/series-workflow4727d-build-action-1009195387/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-05 01:08:41 +0000 UTC FinishedAt: 2026-07-05 01:32:47 +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:*de58c199-e85c-4b24-95d0-82acf621069b,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-workflow4727d/series-workflow4727d-convert-artifact-57065749/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": "d805a828-8c1d-4747-bc86-20de94dc0a88", "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-workflow4727d/series-workflow4727d-build-action-1009195387/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-05 01:32:57 +0000 UTC FinishedAt: 2026-07-05 01:32:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-05 01:32:57 +0000 UTC FinishedAt: 2026-07-05 01:32:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-05 01:32:57 +0000 UTC FinishedAt: 2026-07-05 01:33:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-05 01:32:57 +0000 UTC FinishedAt: 2026-07-05 01:33:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflow4727d/series-workflow4727d-convert-artifact-2191449072/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-05 01:33:07 +0000 UTC FinishedAt: 2026-07-05 01:35:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-05 01:33:07 +0000 UTC FinishedAt: 2026-07-05 01:35:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d805a828-8c1d-4747-bc86-20de94dc0a88,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-workflow4727d/series-workflow4727d-build-action-1009195387/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-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-05 01:35:11 +0000 UTC FinishedAt: 2026-07-05 01:35:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-05 01:35:11 +0000 UTC FinishedAt: 2026-07-05 01:35:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-05 01:35:11 +0000 UTC FinishedAt: 2026-07-05 02:00:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-05 01:35:11 +0000 UTC FinishedAt: 2026-07-05 02:00:16 +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:*de58c199-e85c-4b24-95d0-82acf621069b,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-workflow4727d/series-workflow4727d-convert-artifact-2191449072/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": "776f37f3-7f9a-49f8-ada3-92535e8057a9", "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-workflow4727d/series-workflow4727d-build-action-321469676/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-05 01:35:11 +0000 UTC FinishedAt: 2026-07-05 02:00:06 +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:*de58c199-e85c-4b24-95d0-82acf621069b,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-workflow4727d/series-workflow4727d-convert-artifact-2191449072/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": "776f37f3-7f9a-49f8-ada3-92535e8057a9", "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-workflow4727d/series-workflow4727d-build-action-321469676/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-05 02:00:16 +0000 UTC FinishedAt: 2026-07-05 02:00:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-05 02:00:16 +0000 UTC FinishedAt: 2026-07-05 02:00:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-05 02:00:16 +0000 UTC FinishedAt: 2026-07-05 02:02:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-05 02:00:16 +0000 UTC FinishedAt: 2026-07-05 02:02:39 +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:*776f37f3-7f9a-49f8-ada3-92535e8057a9,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-workflow4727d/series-workflow4727d-build-action-321469676/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-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-05 02:02:49 +0000 UTC FinishedAt: 2026-07-05 05:05:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-05 02:02:49 +0000 UTC FinishedAt: 2026-07-05 05:05:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"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:*d805a828-8c1d-4747-bc86-20de94dc0a88,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*776f37f3-7f9a-49f8-ada3-92535e8057a9,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-workflow4727d/series-workflow4727d-build-action-1009195387/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-workflow4727d/series-workflow4727d-build-action-321469676/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-05 02:02:49 +0000 UTC FinishedAt: 2026-07-05 02:02:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-05 02:02:49 +0000 UTC FinishedAt: 2026-07-05 02:02:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"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-workflow4727d/series-workflow4727d-convert-artifact-3428757097/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-05 02:02:49 +0000 UTC FinishedAt: 2026-07-05 02:02:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-05 02:02:49 +0000 UTC FinishedAt: 2026-07-05 02:02:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-05 02:02:49 +0000 UTC FinishedAt: 2026-07-05 02:02:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-05 02:02:59 +0000 UTC FinishedAt: 2026-07-05 05:05:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow4727d[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_sf_do_5_2_6_stale","sctp_sf_cookie_echoed_err"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"549ea208-209e-4781-bb55-df6bffa2b6d5","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-05 02:02:59 +0000 UTC FinishedAt: 2026-07-05 05:05:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*d805a828-8c1d-4747-bc86-20de94dc0a88,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*776f37f3-7f9a-49f8-ada3-92535e8057a9,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-workflow4727d/series-workflow4727d-build-action-1009195387/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-workflow4727d/series-workflow4727d-build-action-321469676/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-workflow4727d/series-workflow4727d-convert-artifact-3428757097/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,}