Name: series-workflowt4hh9 Phase: Succeeded StartedAt: 2026-07-06 14:15:13 +0000 UTC FinishedAt: 2026-07-06 19:15:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[0] Phase: Succeeded StartedAt: 2026-07-06 14:15:13 +0000 UTC FinishedAt: 2026-07-06 14:33:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[0].run-triage Phase: Succeeded StartedAt: 2026-07-06 14:15:13 +0000 UTC FinishedAt: 2026-07-06 14:33:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_NF_EBTABLES_LEGACY", "BRIDGE_NF_EBTABLES" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_NF_EBTABLES_LEGACY", "BRIDGE_NF_EBTABLES" ], "series_id": "5f6a3c1d-e162-4d36-be83-ec6487dd31d3" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ebt_check_match", "ebt_check_entry", "translate_table", "do_replace_finish", "do_replace", "compat_do_replace" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1kmIzM0OywKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWJ0X2NoZWNrX21hdGNoJiMzNDssCiAgICAmIzM0O2VidF9jaGVja19lbnRyeSYjMzQ7LAogICAgJiMzNDt0cmFuc2xhdGVfdGFibGUmIzM0OywKICAgICYjMzQ7ZG9fcmVwbGFjZV9maW5pc2gmIzM0OywKICAgICYjMzQ7ZG9fcmVwbGFjZSYjMzQ7LAogICAgJiMzNDtjb21wYXRfZG9fcmVwbGFjZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYGVidF9jaGVja19tYXRjaGAgd2hlbiB0aGUgbWF0Y2ggbmFtZSBpcyBub3QgbnVsbC10ZXJtaW5hdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGVidGFibGVzIGxlZ2FjeSBjb2RlLCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgc2V0c29ja29wdGAgc3lzdGVtIGNhbGwgd2l0aCBgRUJUX1NPX1NFVF9FTlRSSUVTYC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFmNGEzZDVlMTY1NjI5MDIxMTg4NjEyYzkwZTU1M2MzM2ExYzU3ZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCA2IDE0OjMwOjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5pbmRleCBmMjBjMDM5ZTQ0YzhkNy4uZmU1YjNkYzlhZmIxMjIgMTAwNjQ0XG4tLS0gYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5AQCAtNDAzLDYgJiM0Mzs0MDMsOSBAQCBlYnRfY2hlY2tfbWF0Y2goc3RydWN0IGVidF9lbnRyeV9tYXRjaCAqbSwgc3RydWN0IHh0X210Y2hrX3BhcmFtICpwYXIsXG4gXHQgICAgbGVmdCAtIHNpemVvZihzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoKSBcdTAwM2MgbS1cdTAwM2VtYXRjaF9zaXplKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiYjNDM7XHRpZiAoc3RybmxlbihtLVx1MDAzZXUubmFtZSwgWFRfRVhURU5TSU9OX01BWE5BTUVMRU4pID09IFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuIFx0bWF0Y2ggPSB4dF9maW5kX21hdGNoKE5GUFJPVE9fQlJJREdFLCBtLVx1MDAzZXUubmFtZSwgbS1cdTAwM2V1LnJldmlzaW9uKTtcbiBcdGlmIChJU19FUlIobWF0Y2gpIHx8IG1hdGNoLVx1MDAzZWZhbWlseSAhPSBORlBST1RPX0JSSURHRSkge1xuIFx0XHRpZiAoIUlTX0VSUihtYXRjaCkpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWSYjMzQ7LAogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlYnRfY2hlY2tfbWF0Y2gmIzM0OywKICAgICYjMzQ7ZWJ0X2NoZWNrX2VudHJ5JiMzNDssCiAgICAmIzM0O3RyYW5zbGF0ZV90YWJsZSYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlX2ZpbmlzaCYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlJiMzNDssCiAgICAmIzM0O2NvbXBhdF9kb19yZXBsYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgZWJ0X2NoZWNrX21hdGNoYCB3aGVuIHRoZSBtYXRjaCBuYW1lIGlzIG5vdCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZWJ0YWJsZXMgbGVnYWN5IGNvZGUsIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBzZXRzb2Nrb3B0YCBzeXN0ZW0gY2FsbCB3aXRoIGBFQlRfU09fU0VUX0VOVFJJRVNgLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhZjRhM2Q1ZTE2NTYyOTAyMTE4ODYxMmM5MGU1NTNjMzNhMWM1N2U1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdWwgNiAxNDozMDozOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jCmluZGV4IGYyMGMwMzllNDRjOGQ3Li5mZTViM2RjOWFmYjEyMiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jCkBAIC00MDMsNiAmIzQzOzQwMyw5IEBAIGVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhciwKIAkgICAgbGVmdCAtIHNpemVvZihzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoKSAmbHQ7IG0tJmd0O21hdGNoX3NpemUpCiAJCXJldHVybiAtRUlOVkFMOwogCiYjNDM7CWlmIChzdHJubGVuKG0tJmd0O3UubmFtZSwgWFRfRVhURU5TSU9OX01BWE5BTUVMRU4pID09IFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiAJbWF0Y2ggPSB4dF9maW5kX21hdGNoKE5GUFJPVE9fQlJJREdFLCBtLSZndDt1Lm5hbWUsIG0tJmd0O3UucmV2aXNpb24pOwogCWlmIChJU19FUlIobWF0Y2gpIHx8IG1hdGNoLSZndDtmYW1pbHkgIT0gTkZQUk9UT19CUklER0UpIHsKIAkJaWYgKCFJU19FUlIobWF0Y2gpKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTAwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgZWJ0YWJsZXMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiB0aGUgYGVidF9jaGVja19tYXRjaGAgZnVuY3Rpb24uIFRoZXkmIzM5O3ZlIGFkZGVkIGEgY2hlY2s6IGBpZiAoc3RybmxlbihtLSZndDt1Lm5hbWUsIFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKSA9PSBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTikgcmV0dXJuIC1FSU5WQUw7YC4gSG1tLCB0aGlzIGlzIGNsZWFybHkgZnVuY3Rpb25hbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGdvb2QgZGVmZW5zaXZlIHByb2dyYW1taW5nLiBUaGV5IGFyZSBwcmVlbXB0aXZlbHkgbWl0aWdhdGluZyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LiBJdCBsb29rcyBsaWtlIHRoZXkgYXJlIHByZXZlbnRpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkIG9yIHNpbWlsYXIgaXNzdWUgdGhhdCBjb3VsZCBhcmlzZSBpZiB0aGUgbWF0Y2ggbmFtZSB3YXNuJiMzOTt0IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgdGhpbmcgdGhhdCBjYXRjaGVzIG15IGF0dGVudGlvbi4gSSYjMzk7bGwgbmVlZCB0byBkcmlsbCBkb3duIGFuZCBzZWUgaG93IGBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTmAgaXMgZGVmaW5lZCBhbmQgaG93IGBtLSZndDt1Lm5hbWVgIGlzIHVzZWQgZWxzZXdoZXJlIHRvIGZ1bGx5IGdyYXNwIHRoZSBjb250ZXh0IGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBJJiMzOTtsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGVidF9jaGVja19tYXRjaGAgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2VidF9jaGVja19tYXRjaCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0zOTM9c3RhdGljIGlubGluZSBpbnRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6Mzk0OmVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhcixcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMzk1LVx0XHR1bnNpZ25lZCBpbnQgKmNudClcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTY4NT1lYnRfY2hlY2tfZW50cnkoc3RydWN0IGVidF9lbnRyeSAqZSwgc3RydWN0IG5ldCAqbmV0LFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNzQyLVx0bXRwYXIuZmFtaWx5ICAgID0gdGdwYXIuZmFtaWx5ICAgID0gTkZQUk9UT19CUklER0U7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjc0MzpcdHJldCA9IEVCVF9NQVRDSF9JVEVSQVRFKGUsIGVidF9jaGVja19tYXRjaCwgXHUwMDI2bXRwYXIsIFx1MDAyNmkpO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy03NDQtXHRpZiAocmV0ICE9IDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU1NQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGFyZWEgYW5kIHRoaW5raW5nIHRocm91Z2ggdGhpcyBjb2RlOgoKKipEaXZpbmcgaW50byB0aGUgZWJ0X2NoZWNrX21hdGNoIEZ1bmN0aW9uKioKClJpZ2h0LCBzbyBgZWJ0X2NoZWNrX21hdGNoYC4uLiBJJiMzOTttIHByZXR0eSBzdXJlIHRoYXQgZ2V0cyBjYWxsZWQgYnkgYGVidF9jaGVja19lbnRyeWAuIFRoYXQgd291bGQgbWFrZSBzZW5zZSwgZXNwZWNpYWxseSBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gdGFibGUgcmVwbGFjZW1lbnQg4oCTIEkmIzM5O2QgYmV0IGl0JiMzOTtzIGJlaW5nIHVzZWQgZHVyaW5nIGEgdGFibGUgcmVwbGFjZW1lbnQgb3BlcmF0aW9uIGxpa2UgYGRvX3JlcGxhY2VgLiBPa2F5LCBsZXQmIzM5O3MganVzdCBtYWtlIHN1cmUuIEkmIzM5O2xsIHRha2UgYSBxdWljayBsb29rIGF0IGhvdyBgZWJ0X2NoZWNrX2VudHJ5YCBpcyB1c2VkLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBjb250ZXh0IEkgbmVlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYnRfY2hlY2tfZW50cnkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9NTM2PXN0YXRpYyBpbmxpbmUgaW50XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjUzNzplYnRfY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3MoY29uc3Qgc3RydWN0IGVidF9lbnRyeSAqZSxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNTM4LVx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgZWJ0X3RhYmxlX2luZm8gKm5ld2luZm8sXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz02ODQ9c3RhdGljIGlubGluZSBpbnRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6Njg1OmVidF9jaGVja19lbnRyeShzdHJ1Y3QgZWJ0X2VudHJ5ICplLCBzdHJ1Y3QgbmV0ICpuZXQsXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTY4Ni1cdFx0Y29uc3Qgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9ODcxPXN0YXRpYyBpbnQgdHJhbnNsYXRlX3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTkwNi1cdHJldCA9IEVCVF9FTlRSWV9JVEVSQVRFKG5ld2luZm8tXHUwMDNlZW50cmllcywgbmV3aW5mby1cdTAwM2VlbnRyaWVzX3NpemUsXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjkwNzpcdCAgIGVidF9jaGVja19lbnRyeV9zaXplX2FuZF9ob29rcywgbmV3aW5mbyxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtOTA4LVx0ICAgXHUwMDI2aSwgXHUwMDI2aiwgXHUwMDI2aywgXHUwMDI2dWRjX2NudCk7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05ODAtXHRyZXQgPSBFQlRfRU5UUllfSVRFUkFURShuZXdpbmZvLVx1MDAzZWVudHJpZXMsIG5ld2luZm8tXHUwMDNlZW50cmllc19zaXplLFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzo5ODE6XHQgICBlYnRfY2hlY2tfZW50cnksIG5ldCwgbmV3aW5mbywgbmFtZSwgXHUwMDI2aSwgY2xfcywgdWRjX2NudCk7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTk4Mi1cdGlmIChyZXQgIT0gMCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMzUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgdGhlIFRyYW5zbGF0aW9uIFByb2Nlc3MqKgoKT2theSwgc28gSSBzZWUgYSBmdW5jdGlvbiBjYWxsOiBgdHJhbnNsYXRlX3RhYmxlYCBpcyByZWFjaGluZyBvdXQgdG8gYGVidF9jaGVja19lbnRyeWAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIGB0cmFuc2xhdGVfdGFibGVgIGZ1bmN0aW9uIGl0c2VsZiDigJMgdGhhdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyB0YWJsZSBpcyBhY3R1YWxseSAqZG9pbmcqIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggYGVidF9jaGVja19lbnRyeWAuIFRoZSBjYWxsIHRvIGBlYnRfY2hlY2tfZW50cnlgIGlzIGxpa2VseSBhIGNydWNpYWwgc3RlcCB3aXRoaW4gdGhlIHRyYW5zbGF0aW9uIHdvcmtmbG93LCBzbyBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoYXQgZGVwZW5kZW5jeS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYHRyYW5zbGF0ZV90YWJsZWAgYW5kIHNlZSB3aGF0IGl0IHJldmVhbHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHJhbnNsYXRlX3RhYmxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTgwND1zdGF0aWMgaW50IGNoZWNrX2NoYWlubG9vcHMoY29uc3Qgc3RydWN0IGVidF9lbnRyaWVzICpjaGFpbiwgc3RydWN0IGVidF9jbF9zdGFjayAqY2xfcyxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTg3MC0vKiBkbyB0aGUgcGFyc2luZyBvZiB0aGUgdGFibGUvY2hhaW5zL2VudHJpZXMvbWF0Y2hlcy93YXRjaGVycy90YXJnZXRzLCBoZWggKi9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6ODcxOnN0YXRpYyBpbnQgdHJhbnNsYXRlX3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtODcyLVx0XHRcdCAgIHN0cnVjdCBlYnRfdGFibGVfaW5mbyAqbmV3aW5mbylcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTEwMTI9c3RhdGljIGludCBkb19yZXBsYWNlX2ZpbmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBlYnRfcmVwbGFjZSAqcmVwbCxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEwMzUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjEwMzY6XHRyZXQgPSB0cmFuc2xhdGVfdGFibGUobmV0LCByZXBsLVx1MDAzZW5hbWUsIG5ld2luZm8pO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMDM3LVxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTEwNS1cdHZmcmVlKGNvdW50ZXJzdG1wKTtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTEwNjpcdC8qIGNhbiBiZSBpbml0aWFsaXplZCBpbiB0cmFuc2xhdGVfdGFibGUoKSAqL1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMTA3LVx0ZWJ0X2ZyZWVfdGFibGVfaW5mbyhuZXdpbmZvKTtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTExODA9aW50IGVidF9yZWdpc3Rlcl90YWJsZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBlYnRfdGFibGUgKmlucHV0X3RhYmxlLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTIzMS1cdH1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTIzMjpcdHJldCA9IHRyYW5zbGF0ZV90YWJsZShuZXQsIHJlcGwtXHUwMDNlbmFtZSwgbmV3aW5mbyk7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEyMzMtXHRpZiAocmV0ICE9IDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkyMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBlYnRhYmxlcyBSZXBsYWNlbWVudCBQYXRoKioKCk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgSSBuZWVkIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbiB0aGUgYGVidGFibGVzYCByZXBsYWNlbWVudCBmdW5jdGlvbmFsaXR5LiBTcGVjaWZpY2FsbHksIHRoZSBjYWxsIGNoYWluIGlzIGNsZWFyOiBgZG9fcmVwbGFjZV9maW5pc2hgIGFuZCBgZWJ0X3JlZ2lzdGVyX3RhYmxlYCBib3RoIHVsdGltYXRlbHkgY2FsbCBgdHJhbnNsYXRlX3RhYmxlYC4gSSBzZWUgdGhhdCBgZG9fcmVwbGFjZV9maW5pc2hgIGlzIHJlYWNoZWQgZnJvbSBgZG9fcmVwbGFjZWAsIHdoaWNoIGhhbmRsZXMgdGhlIGBFQlRfU09fU0VUX0VOVFJJRVNgIGBzZXRzb2Nrb3B0YCBjYWxsLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCBmcm9tIHVzZXJzcGFjZTsgYSBuZXRmaWx0ZXIgc29ja2V0LiBUaGlzIGlzIGltcG9ydGFudCDigJMgdGhhdCYjMzk7cyB3aGVyZSBJIGNhbiBkaXJlY3RseSBpbmplY3QgbXkgZnV6emluZyBpbnB1dHMuCgpUaGVyZWZvcmUsIEkgbmVlZCB0byBwcmlvcml0aXplIGZ1enppbmcgYGRvX3JlcGxhY2VgLCBgdHJhbnNsYXRlX3RhYmxlYCwgYGVidF9jaGVja19lbnRyeWAsIGFuZCBgZWJ0X2NoZWNrX21hdGNoYC4gT2YgY291cnNlLCBJIG5lZWQgdG8gY2hlY2sgaWYgYSBgY29tcGF0X2RvX3JlcGxhY2VgIGV4aXN0cywgYW5kIGluY2x1ZGUgdGhhdCBhcyB3ZWxsLCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCBjb3ZlciBhbnkgcG90ZW50aWFsIGNvbXBhdGliaWxpdHktcmVsYXRlZCBidWdzLiBUaGF0IGNvdmVycyB0aGUgZW50aXJlIHJlcGxhY2VtZW50IHByb2Nlc3MsIGZyb20gdXNlcnNwYWNlIGlucHV0LCB0aHJvdWdoIHRyYW5zbGF0aW9uIGFuZCB2YWxpZGF0aW9uLiBUaGlzIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgaWRlbnRpZnlpbmcgdnVsbmVyYWJpbGl0aWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb21wYXRfZG9fcmVwbGFjZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0yMjUzPXN0YXRpYyBpbnQgY29tcGF0X2NvcHlfZWJ0X3JlcGxhY2VfZnJvbV91c2VyKHN0cnVjdCBlYnRfcmVwbGFjZSAqcmVwbCxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyODgtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjIyODk6c3RhdGljIGludCBjb21wYXRfZG9fcmVwbGFjZShzdHJ1Y3QgbmV0ICpuZXQsIHNvY2twdHJfdCBhcmcsIHVuc2lnbmVkIGludCBsZW4pXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyOTAte1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9MjU1MD1zdGF0aWMgaW50IGRvX2VidF9zZXRfY3RsKHN0cnVjdCBzb2NrICpzaywgaW50IGNtZCwgc29ja3B0cl90IGFyZyxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjQtXHRcdGlmIChpbl9jb21wYXRfc3lzY2FsbCgpKVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyNTY1Olx0XHRcdHJldCA9IGNvbXBhdF9kb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yNTY2LVx0XHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NzQKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzOgoKKipFQlRhYmxlcyBDb25maWd1cmF0aW9uIENoZWNrKioKCk9rYXksIHNvIEkga25vdyBgY29tcGF0X2RvX3JlcGxhY2VgIGlzIGRlZmluaXRlbHkgYSB0aGluZywgc28gdGhhdCYjMzk7cyBjb25maXJtZWQuIE5vdywgbGV0JiMzOTtzIHN3aXRjaCBnZWFycyBhbmQgZm9jdXMgb24gdGhlIGVzc2VudGlhbCBjb25maWd1cmF0aW9ucyByZXF1aXJlZCB0byBnZXQgZWJ0YWJsZXMgd29ya2luZyBvcHRpbWFsbHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55IGNydWNpYWwgc2V0dGluZ3MuIEl0JiMzOTtzIHRpbWUgdG8gdGhvcm91Z2hseSByZXZpZXcgdGhlIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJJREdFX0VCVF8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9NjI9aWYgQlJJREdFX05GX0VCVEFCTEVTXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02Ni0jXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY3OmNvbmZpZyBCUklER0VfRUJUX0JST1VURVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02OC1cdHRyaXN0YXRlIFwmIzM0O2VidDogYnJvdXRlIHRhYmxlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTc3LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo3ODpjb25maWcgQlJJREdFX0VCVF9UX0ZJTFRFUlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy03OS1cdHRyaXN0YXRlIFwmIzM0O2VidDogZmlsdGVyIHRhYmxlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTg3LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo4ODpjb25maWcgQlJJREdFX0VCVF9UX05BVFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy04OS1cdHRyaXN0YXRlIFwmIzM0O2VidDogbmF0IHRhYmxlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTk5LSNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTAwOmNvbmZpZyBCUklER0VfRUJUXzgwMl8zXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwMS1cdHRyaXN0YXRlIFwmIzM0O2VidDogODAyLjMgZmlsdGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwNi1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTA3OmNvbmZpZyBCUklER0VfRUJUX0FNT05HXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwOC1cdHRyaXN0YXRlIFwmIzM0O2VidDogYW1vbmcgZmlsdGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTExNS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTE2OmNvbmZpZyBCUklER0VfRUJUX0FSUFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMTctXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IEFSUCBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTIzLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMjQ6Y29uZmlnIEJSSURHRV9FQlRfSVBcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTI1LVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBJUCBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTMxLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMzI6Y29uZmlnIEJSSURHRV9FQlRfSVA2XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEzMy1cdHRyaXN0YXRlIFwmIzM0O2VidDogSVA2IGZpbHRlciBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNDAtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjE0MTpjb25maWcgQlJJREdFX0VCVF9MSU1JVFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNDItXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGxpbWl0IG1hdGNoIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE1MC1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTUxOmNvbmZpZyBCUklER0VfRUJUX01BUktcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTUyLVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBtYXJrIGZpbHRlciBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNjAtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjE2MTpjb25maWcgQlJJREdFX0VCVF9QS1RUWVBFXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE2Mi1cdHRyaXN0YXRlIFwmIzM0O2VidDogcGFja2V0IHR5cGUgZmlsdGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE3MC1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTcxOmNvbmZpZyBCUklER0VfRUJUX1NUUFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzItXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IFNUUCBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTc4LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNzk6Y29uZmlnIEJSSURHRV9FQlRfVkxBTlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xODAtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IDgwMi4xUSBWTEFOIGZpbHRlciBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xODgtI1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxODk6Y29uZmlnIEJSSURHRV9FQlRfQVJQUkVQTFlcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTkwLVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBhcnAgcmVwbHkgdGFyZ2V0IHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE5Ny1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTk4OmNvbmZpZyBCUklER0VfRUJUX0ROQVRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTk5LVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBkbmF0IHRhcmdldCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMDUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIwNjpjb25maWcgQlJJREdFX0VCVF9NQVJLX1Rcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjA3LVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBtYXJrIHRhcmdldCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMTUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIxNjpjb25maWcgQlJJREdFX0VCVF9SRURJUkVDVFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMTctXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IHJlZGlyZWN0IHRhcmdldCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMjMtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIyNDpjb25maWcgQlJJREdFX0VCVF9TTkFUXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIyNS1cdHRyaXN0YXRlIFwmIzM0O2VidDogc25hdCB0YXJnZXQgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjMzLSNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjM0OmNvbmZpZyBCUklER0VfRUJUX0xPR1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMzUtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGxvZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjI0Mzpjb25maWcgQlJJREdFX0VCVF9ORkxPR1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDQtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IG5mbG9nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjEwOQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGVidGFibGVzIENvbmZpZ3VyYXRpb24gZm9yIE5ldHdvcmsgQnJpZGdlIEZ1bmN0aW9uYWxpdHkqKgoKUmlnaHQsIHNvIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaXRlbSBJIGltbWVkaWF0ZWx5IHRoaW5rIG9mIHdoZW4gZGVhbGluZyB3aXRoIGVidGFibGVzIGluIGEgYnJpZGdlZCBuZXR3b3JrIGNvbnRleHQgaXMgZGVmaW5pdGVseSBgQlJJREdFX05GX0VCVEFCTEVTYC4gVGhhdOKAmXMgdGhlIGJpZyBvbmUsIHRoZSBtYXN0ZXIgc3dpdGNoLCBzbyB0byBzcGVhay4gQnV0LCBiZWluZyB0aG9yb3VnaCBhcyBhbHdheXMsIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBJIHdhbnQgdG8gZW5zdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHNwZWNpZmljIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYCBmaWxlIHRoYXQgbWlnaHQgaW5mbHVlbmNlIGl0cyBiZWhhdmlvci4gSXQmIzM5O3MgcmFyZSB0aGF0IGEgc2luZ2xlIGNvbmZpZyBvcHRpb24gdGVsbHMgdGhlIHdob2xlIHN0b3J5LCBlc3BlY2lhbGx5IHdpdGhpbiB0aGUgTGludXgga2VybmVsLiBJIGhhdmUgdG8gbG9vayBmb3Igc2Vjb25kYXJ5IG9yIHN1cHBsZW1lbnRhcnkgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgdGhlIGludGVyYWN0aW9uIG9mIGVidGFibGVzIHdpdGhpbiB0aGUgYnJpZGdlJiMzOTtzIG5ldGZpbHRlciBob29rcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZWJ0YWJsZXMubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlPTEwPW9iai0kKENPTkZJR19ORl9DT05OVFJBQ0tfQlJJREdFKSAmIzQzOz0gbmZfY29ubnRyYWNrX2JyaWRnZS5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZS0xMS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19CUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZKSAmIzQzOz0gZWJ0YWJsZXMub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMTMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NzYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgTGVnYWN5IGVidGFibGVzIGluIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gaXQmIzM5O3MgY29tZSB1cCBhZ2FpbiwgdGhhdCBwZXNreSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAuICBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMuICBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZ28gc3RyYWlnaHQgdG8gS2NvbmZpZy4gIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgKmN1cnJlbnRseSogZW5hYmxlZCwgaXRzIGRlcGVuZGVuY2llcywgYW5kIGlkZWFsbHksIGl0cyBpbXBsaWNhdGlvbnMuICBJJiMzOTttIHRoaW5raW5nIEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoaXMgbGVnYWN5IG1vZGUmIzM5O3MgYmVoYXZpb3IuIFRpbWUgdG8gbmF2aWdhdGUgdGhvc2UgY29uZmlndXJhdGlvbiBmaWxlcyBhbmQgc2VlIHdoYXQmIzM5O3Mgd2hhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Mjg9Y29uZmlnIE5GX0NPTk5UUkFDS19CUklER0Vcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3Bcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NDM6Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgRUJUQUJMRVMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2Nzk2CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRUJUQUJMRVMgQ29uZmlndXJhdGlvbiDigJMgTGV0JiMzOTtzIERpZyBJbioqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgY29uZmlnLCB3aGljaCByaW5ncyBhIGJlbGwuIEJ1dCB0aGVuLCBhIHF1aWNrIGludGVybmFsIGNoZWNrLiBJcyBgQlJJREdFX05GX0VCVEFCTEVTYCBhIG1vcmUgZ2VuZXJhbCBtZW51Y29uZmlnIG9wdGlvbiBvciBzb21ldGhpbmcgcmVsYXRlZD8gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGVyZSBtaWdodCBiZSBhIG1vcmUgZ3JhbnVsYXIgc2V0dGluZyBsdXJraW5nIHdpdGhpbiB0aGUgYnJvYWRlciBjb25maWd1cmF0aW9uIHN0cnVjdHVyZS4gVGltZSB0byB2ZXJpZnkuIEkgbmVlZCB0byBjbGFyaWZ5IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVzZSBvcHRpb25zOyBteSB1bmRlcnN0YW5kaW5nIGNvdWxkIGJlIHN0cmVuZ3RoZW5lZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDItIyBvbGQgc29ja29wdCBpbnRlcmZhY2UgYW5kIGV2YWwgbG9vcFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00NC1cdHRyaXN0YXRlIFwmIzM0O0xlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01Mi1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NTM6bWVudWNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNTQtXHR0cmlzdGF0ZSBcJiMzNDtFdGhlcm5ldCBCcmlkZ2UgdGFibGVzIChlYnRhYmxlcykgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTc1CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyB0aGUgZWJ0YWJsZXMgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIHNlZSBgQlJJREdFX05GX0VCVEFCTEVTYCBpbiB0aGUgbWVudWNvbmZpZywgcmlnaHQ/IE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZW5hYmxlIGJvdGggYEJSSURHRV9ORl9FQlRBQkxFU2AgYW5kIGBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZYC4gSG93ZXZlciwgYSBzZWNvbmQgdGhvdWdodDogaXQgc2VlbXMgdGhhdCBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgb24gaXRzIG93biBpcyBzdWZmaWNpZW50IHRvIGdldCBgZWJ0YWJsZXMub2AgY29tcGlsZWQuIEJ1dCwgaGFuZyBvbiwgd2hhdCBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSByZWxhdGVkIHRvIHRob3NlIHRhYmxlcyB0aGVtc2VsdmVzPyBJIGtub3cgc29tZSB0YWJsZXMsIGxpa2UgYEJSSURHRV9FQlRfVF9GSUxURVJgLCBtaWdodCByZXF1aXJlIGBCUklER0VfTkZfRUJUQUJMRVNgLiBJIG5lZWQgdG8gYmUgc3VyZS4gVGltZSB0byBkb3VibGUtY2hlY2sgdGhlIGBuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZWAgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIGFuZCBtYWtlIHRoZSByaWdodCBkZWNpc2lvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZWJ0XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlPTE3PW9iai0kKENPTkZJR19CUklER0VfRUJUX1RfTkFUKSAmIzQzOz0gZWJ0YWJsZV9uYXQub1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTE5LSNtYXRjaGVzXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMDpvYmotJChDT05GSUdfQlJJREdFX0VCVF84MDJfMykgJiM0Mzs9IGVidF84MDJfMy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BTU9ORykgJiM0Mzs9IGVidF9hbW9uZy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BUlApICYjNDM7PSBlYnRfYXJwLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjIzOm9iai0kKENPTkZJR19CUklER0VfRUJUX0lQKSAmIzQzOz0gZWJ0X2lwLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUklER0VfRUJUX0lQNikgJiM0Mzs9IGVidF9pcDYub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTElNSVQpICYjNDM7PSBlYnRfbGltaXQub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjY6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTUFSSykgJiM0Mzs9IGVidF9tYXJrX20ub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjc6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfUEtUVFlQRSkgJiM0Mzs9IGVidF9wa3R0eXBlLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19CUklER0VfRUJUX1NUUCkgJiM0Mzs9IGVidF9zdHAub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfVkxBTikgJiM0Mzs9IGVidF92bGFuLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTMwLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzEtIyB0YXJnZXRzXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozMjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BUlBSRVBMWSkgJiM0Mzs9IGVidF9hcnByZXBseS5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQlJJREdFX0VCVF9NQVJLX1QpICYjNDM7PSBlYnRfbWFyay5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozNDpvYmotJChDT05GSUdfQlJJREdFX0VCVF9ETkFUKSAmIzQzOz0gZWJ0X2RuYXQub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfUkVESVJFQ1QpICYjNDM7PSBlYnRfcmVkaXJlY3Qub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfU05BVCkgJiM0Mzs9IGVidF9zbmF0Lm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTM3LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzgtIyB3YXRjaGVyc1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mzk6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTE9HKSAmIzQzOz0gZWJ0X2xvZy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTo0MDpvYmotJChDT05GSUdfQlJJREdFX0VCVF9ORkxPRykgJiM0Mzs9IGVidF9uZmxvZy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZS00MS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODE5NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgZWJ0YWJsZXMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggcmVsYXRlZCB0byBlYnRhYmxlcyBhbmQgYnJpZGdlIGZpbHRlcmluZy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBhIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZSwgc3BlY2lmaWNhbGx5IGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIGBlYnRfY2hlY2tfbWF0Y2hgLiBUaGUgZGVzY3JpcHRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyByZWFkIG9jY3VycyB3aGVuIGBtLSZndDt1Lm5hbWVgIGlzbiYjMzk7dCBwcm9wZXJseSBudWxsLXRlcm1pbmF0ZWQgd2l0aGluIHRoZSBgZWJ0X2NoZWNrX21hdGNoYCBmdW5jdGlvbi4gVGhhdCYjMzk7cyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvOyBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBpbXByb3ZlIHNhZmV0eSBhcmUgYWx3YXlzIHdlbGNvbWUsIHNvIEkgd2lsbCBldmFsdWF0ZSB0aGlzIGFzIGEgcG9zaXRpdmUgdGhpbmcuCgpHaXZlbiB0aGUgY29udGV4dCwgSSB0aGluayBpdCYjMzk7cyB3aXNlIHRvIGVuYWJsZSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgYW5kIHBvc3NpYmx5IGBCUklER0VfRUJUX1RfRklMVEVSYCB0byBmYWNpbGl0YXRlIGNvbXByZWhlbnNpdmUgdGVzdGluZyBvZiB0aGUgZmlsdGVyIHRhYmxlcy4gSSBzaG91bGQgdmVyaWZ5IHRoYXQgYGVidF9jaGVja19tYXRjaGAgaXMgY29ycmVjdGx5IGludm9rZWQgd2hlbiBhIG1hdGNoIGlzIGJlaW5nIGV2YWx1YXRlZCwgYXMgdGhlIGRlc2NyaXB0aW9uIHN1Z2dlc3RzLgoKTXkgZm9jdXMgc2hvdWxkIGJlIG9uIHRob3JvdWdobHkgZXhhbWluaW5nIHRoZSBmb2xsb3dpbmcgc3ltYm9sczogYGVidF9jaGVja19tYXRjaGAsIG9idmlvdXNseSwgYWxvbmcgd2l0aCBgZWJ0X2NoZWNrX2VudHJ5YCAoZm9yIHJlbGF0ZWQgZW50cnkgdmFsaWRhdGlvbiksIHRoZW4gdGhlIHRhYmxlIHRyYW5zbGF0aW9uIGxvZ2ljIGluIGB0cmFuc2xhdGVfdGFibGVgIGFuZCB0aGUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGBkb19yZXBsYWNlYCBhbmQgYGNvbXBhdF9kb19yZXBsYWNlYCwgYW5kIGZpbmFsbHkgbWFraW5nIHN1cmUgdGhlIG5hbWUgb2YgYGRvX3JlcGxhY2VgIGlzIGluZGVlZCBjb3JyZWN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGUgYG0tJmd0O3UubmFtZWAgZmllbGQgaXMgdXNlZCBhY3Jvc3MgYWxsIHRoZXNlIGZ1bmN0aW9ucywgYW5kIGhvdyB0aGUgbnVsbCB0ZXJtaW5hdGlvbiBpcyAob3IgaXNuJiMzOTt0KSBlbmZvcmNlZC4gVGhpcyBhbHNvIGNvbmNlcm5zIG1lLiBXZSBkbyBub3Qgd2FudCB0byBpbnRyb2R1Y2UgYnVncy4KClRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb25zIG1lbnRpb25lZCBhcmUgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIGFuZCBgQlJJREdFX05GX0VCVEFCTEVTYC4gVW5kZXJzdGFuZGluZyBob3cgdGhlc2Ugc2V0dGluZ3MgaW5mbHVlbmNlIHRoZSBjb2RlIHBhdGggaXMgY3J1Y2lhbCBmb3IgdmVyaWZ5aW5nIHRoYXQgdGhlIGZpeCBpcyBlZmZlY3RpdmUgYWNyb3NzIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZG9fcmVwbGFjZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz04NzE9c3RhdGljIGludCB0cmFuc2xhdGVfdGFibGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtOTIyLVx0aWYgKHVkY19jbnQpIHtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6OTIzOlx0XHQvKiB0aGlzIHdpbGwgZ2V0IGZyZWUmIzM5O2QgaW4gZG9fcmVwbGFjZSgpL2VidF9yZWdpc3Rlcl90YWJsZSgpXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTkyNC1cdFx0ICogaWYgYW4gZXJyb3Igb2NjdXJzXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz05OTE9c3RhdGljIHZvaWQgZ2V0X2NvdW50ZXJzKGNvbnN0IHN0cnVjdCBlYnRfY291bnRlciAqb2xkY291bnRlcnMsXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMDExLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMDEyOnN0YXRpYyBpbnQgZG9fcmVwbGFjZV9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZWJ0X3JlcGxhY2UgKnJlcGwsXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEwMTMtXHRcdFx0ICAgICAgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvKVxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTExMS0vKiByZXBsYWNlIHRoZSB0YWJsZSAqL1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMTEyOnN0YXRpYyBpbnQgZG9fcmVwbGFjZShzdHJ1Y3QgbmV0ICpuZXQsIHNvY2twdHJfdCBhcmcsIHVuc2lnbmVkIGludCBsZW4pXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTExMTMte1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTE1Ni1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTE1NzpcdHJldCA9IGRvX3JlcGxhY2VfZmluaXNoKG5ldCwgXHUwMDI2dG1wLCBuZXdpbmZvKTtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTE1OC1cdGlmIChyZXQgPT0gMClcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTIyNTM9c3RhdGljIGludCBjb21wYXRfY29weV9lYnRfcmVwbGFjZV9mcm9tX3VzZXIoc3RydWN0IGVidF9yZXBsYWNlICpyZXBsLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjI4OC1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjI4OTpzdGF0aWMgaW50IGNvbXBhdF9kb19yZXBsYWNlKHN0cnVjdCBuZXQgKm5ldCwgc29ja3B0cl90IGFyZywgdW5zaWduZWQgaW50IGxlbilcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjI5MC17XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMjk5LVx0XHQvKiB0cnkgcmVhbCBoYW5kbGVyIGluIGNhc2UgdXNlcmxhbmQgc3VwcGxpZWQgbmVlZGVkIHBhZGRpbmcgKi9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjMwMDpcdFx0aWYgKHJldCA9PSAtRUlOVkFMIFx1MDAyNlx1MDAyNiBkb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pID09IDApXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIzMDEtXHRcdFx0cmV0ID0gMDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIzNzYtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjIzNzc6XHRyZXQgPSBkb19yZXBsYWNlX2ZpbmlzaChuZXQsIFx1MDAyNnRtcCwgbmV3aW5mbyk7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIzNzgtXHRpZiAocmV0ID09IDApXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0yNTUwPXN0YXRpYyBpbnQgZG9fZWJ0X3NldF9jdGwoc3RydWN0IHNvY2sgKnNrLCBpbnQgY21kLCBzb2NrcHRyX3QgYXJnLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2NC1cdFx0aWYgKGluX2NvbXBhdF9zeXNjYWxsKCkpXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjI1NjU6XHRcdFx0cmV0ID0gY29tcGF0X2RvX3JlcGxhY2UobmV0LCBhcmcsIGxlbik7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjYtXHRcdGVsc2Vcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2Ny0jZW5kaWZcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjU2ODpcdFx0XHRyZXQgPSBkb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yNTY5LVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTcxOQoJCQkJCQkJb3V0cHV0OiAxNjkKCQkJCQkJCXRob3VnaHRzOiAxMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgemVyb2VkIGluIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZTogYGRvX3JlcGxhY2VgLCBgY29tcGF0X2RvX3JlcGxhY2VgLCBhbmQgYWxzbyBgZG9fcmVwbGFjZV9maW5pc2hgLiBUaGVzZSBhcmUgZGVmaW5pdGVseSB0aGUga2V5IHBsYXllcnMgaW4gdGhpcyBwYXRjaC4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGlzIHBhdGNoIGFkZHJlc3NlcyBhIHZ1bG5lcmFiaWxpdHkg4oCTIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB3aXRoaW4gYGVidF9jaGVja19tYXRjaGAuIFRoZSByb290IGNhdXNlIGlzIGEgbWF0Y2ggbmFtZSB0aGF0IGlzbiYjMzk7dCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgdHJpZ2dlcmVkIHRocm91Z2ggdXNlciBzcGFjZSBpbnRlcmFjdGlvbiB2aWEgYHNldHNvY2tvcHRgIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AsIHdoaWNoIHNvdW5kcyBsaWtlIGEgY2xhc3NpYyBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHNvbWVvbmUgY291bGQgZXhwbG9pdC4gVGhhdCYjMzk7cyBhIGdvb2QgZmluZC4gSSB3aWxsIGNhbGwgYSBgc2V0LXJlc3VsdHNgIHRvb2wgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWSYjMzQ7LAogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlYnRfY2hlY2tfbWF0Y2gmIzM0OywKICAgICYjMzQ7ZWJ0X2NoZWNrX2VudHJ5JiMzNDssCiAgICAmIzM0O3RyYW5zbGF0ZV90YWJsZSYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlX2ZpbmlzaCYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlJiMzNDssCiAgICAmIzM0O2NvbXBhdF9kb19yZXBsYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgZWJ0X2NoZWNrX21hdGNoYCB3aGVuIHRoZSBtYXRjaCBuYW1lIGlzIG5vdCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZWJ0YWJsZXMgbGVnYWN5IGNvZGUsIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBzZXRzb2Nrb3B0YCBzeXN0ZW0gY2FsbCB3aXRoIGBFQlRfU09fU0VUX0VOVFJJRVNgLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZJiMzNDssCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VidF9jaGVja19tYXRjaCYjMzQ7LAogICAgJiMzNDtlYnRfY2hlY2tfZW50cnkmIzM0OywKICAgICYjMzQ7dHJhbnNsYXRlX3RhYmxlJiMzNDssCiAgICAmIzM0O2RvX3JlcGxhY2VfZmluaXNoJiMzNDssCiAgICAmIzM0O2RvX3JlcGxhY2UmIzM0OywKICAgICYjMzQ7Y29tcGF0X2RvX3JlcGxhY2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMDo0MC4yNjAyNzA1MDRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDAyMTA0NjIzNjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVwiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWJ0X2NoZWNrX21hdGNoXCIsXG4gICAgXCJlYnRfY2hlY2tfZW50cnlcIixcbiAgICBcInRyYW5zbGF0ZV90YWJsZVwiLFxuICAgIFwiZG9fcmVwbGFjZV9maW5pc2hcIixcbiAgICBcImRvX3JlcGxhY2VcIixcbiAgICBcImNvbXBhdF9kb19yZXBsYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMwOjQwLjI2MDI3NDI5NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk5NzEzOTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYWY0YTNkNWUxNjU2MjkwMjExODg2MTJjOTBlNTUzYzMzYTFjNTdlNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCA2IDE0OjMwOjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXFxuaW5kZXggZjIwYzAzOWU0NGM4ZDcuLmZlNWIzZGM5YWZiMTIyIDEwMDY0NFxcbi0tLSBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcXG4rKysgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXFxuQEAgLTQwMyw2ICs0MDMsOSBAQCBlYnRfY2hlY2tfbWF0Y2goc3RydWN0IGVidF9lbnRyeV9tYXRjaCAqbSwgc3RydWN0IHh0X210Y2hrX3BhcmFtICpwYXIsXFxuIFxcdCAgICBsZWZ0IC0gc2l6ZW9mKHN0cnVjdCBlYnRfZW50cnlfbWF0Y2gpIFxcdTAwM2MgbS1cXHUwMDNlbWF0Y2hfc2l6ZSlcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcbitcXHRpZiAoc3RybmxlbihtLVxcdTAwM2V1Lm5hbWUsIFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKSA9PSBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTilcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcbiBcXHRtYXRjaCA9IHh0X2ZpbmRfbWF0Y2goTkZQUk9UT19CUklER0UsIG0tXFx1MDAzZXUubmFtZSwgbS1cXHUwMDNldS5yZXZpc2lvbik7XFxuIFxcdGlmIChJU19FUlIobWF0Y2gpIHx8IG1hdGNoLVxcdTAwM2VmYW1pbHkgIT0gTkZQUk9UT19CUklER0UpIHtcXG4gXFx0XFx0aWYgKCFJU19FUlIobWF0Y2gpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMDo0MC44NjA1NTU4NjVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzOTYxMDE2ODk1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXCIsXG4gICAgXCJCUklER0VfTkZfRUJUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfY2hlY2tfbWF0Y2hcIixcbiAgICBcImVidF9jaGVja19lbnRyeVwiLFxuICAgIFwidHJhbnNsYXRlX3RhYmxlXCIsXG4gICAgXCJkb19yZXBsYWNlX2ZpbmlzaFwiLFxuICAgIFwiZG9fcmVwbGFjZVwiLFxuICAgIFwiY29tcGF0X2RvX3JlcGxhY2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYGVidF9jaGVja19tYXRjaGAgd2hlbiB0aGUgbWF0Y2ggbmFtZSBpcyBub3QgbnVsbC10ZXJtaW5hdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGVidGFibGVzIGxlZ2FjeSBjb2RlLCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgc2V0c29ja29wdGAgc3lzdGVtIGNhbGwgd2l0aCBgRUJUX1NPX1NFVF9FTlRSSUVTYC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhZjRhM2Q1ZTE2NTYyOTAyMTE4ODYxMmM5MGU1NTNjMzNhMWM1N2U1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxNDozMDozOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5pbmRleCBmMjBjMDM5ZTQ0YzhkNy4uZmU1YjNkYzlhZmIxMjIgMTAwNjQ0XG4tLS0gYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG4rKysgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5AQCAtNDAzLDYgKzQwMyw5IEBAIGVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhcixcbiBcdCAgICBsZWZ0IC0gc2l6ZW9mKHN0cnVjdCBlYnRfZW50cnlfbWF0Y2gpIFx1MDAzYyBtLVx1MDAzZW1hdGNoX3NpemUpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuK1x0aWYgKHN0cm5sZW4obS1cdTAwM2V1Lm5hbWUsIFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKSA9PSBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTilcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4gXHRtYXRjaCA9IHh0X2ZpbmRfbWF0Y2goTkZQUk9UT19CUklER0UsIG0tXHUwMDNldS5uYW1lLCBtLVx1MDAzZXUucmV2aXNpb24pO1xuIFx0aWYgKElTX0VSUihtYXRjaCkgfHwgbWF0Y2gtXHUwMDNlZmFtaWx5ICE9IE5GUFJPVE9fQlJJREdFKSB7XG4gXHRcdGlmICghSVNfRVJSKG1hdGNoKSlcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMwOjQwLjg2MDU1NzEyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NDA4MDAwNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBlYnRhYmxlcyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiB0aGUgYGVidF9jaGVja19tYXRjaGAgZnVuY3Rpb24uIFRoZXkndmUgYWRkZWQgYSBjaGVjazogYGlmIChzdHJubGVuKG0tXHUwMDNldS5uYW1lLCBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTikgPT0gWFRfRVhURU5TSU9OX01BWE5BTUVMRU4pIHJldHVybiAtRUlOVkFMO2AuIEhtbSwgdGhpcyBpcyBjbGVhcmx5IGZ1bmN0aW9uYWwuIE15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBnb29kIGRlZmVuc2l2ZSBwcm9ncmFtbWluZy4gVGhleSBhcmUgcHJlZW1wdGl2ZWx5IG1pdGlnYXRpbmcgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4gSXQgbG9va3MgbGlrZSB0aGV5IGFyZSBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZCBvciBzaW1pbGFyIGlzc3VlIHRoYXQgY291bGQgYXJpc2UgaWYgdGhlIG1hdGNoIG5hbWUgd2Fzbid0IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgdGhpbmcgdGhhdCBjYXRjaGVzIG15IGF0dGVudGlvbi4gSSdsbCBuZWVkIHRvIGRyaWxsIGRvd24gYW5kIHNlZSBob3cgYFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOYCBpcyBkZWZpbmVkIGFuZCBob3cgYG0tXHUwMDNldS5uYW1lYCBpcyB1c2VkIGVsc2V3aGVyZSB0byBmdWxseSBncmFzcCB0aGUgY29udGV4dCBhbmQgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIGNoYW5nZS4gSSdsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGVidF9jaGVja19tYXRjaGAgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTAwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzA6NDUuNTAxMzU5MzkyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0OTk4MDgwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJlYnRfY2hlY2tfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTM5Mz1zdGF0aWMgaW5saW5lIGludFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6Mzk0OmVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhcixcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTM5NS1cXHRcXHR1bnNpZ25lZCBpbnQgKmNudClcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9Njg1PWVidF9jaGVja19lbnRyeShzdHJ1Y3QgZWJ0X2VudHJ5ICplLCBzdHJ1Y3QgbmV0ICpuZXQsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTc0Mi1cXHRtdHBhci5mYW1pbHkgICAgPSB0Z3Bhci5mYW1pbHkgICAgPSBORlBST1RPX0JSSURHRTtcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjc0MzpcXHRyZXQgPSBFQlRfTUFUQ0hfSVRFUkFURShlLCBlYnRfY2hlY2tfbWF0Y2gsIFxcdTAwMjZtdHBhciwgXFx1MDAyNmkpO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNzQ0LVxcdGlmIChyZXQgIT0gMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzA6NDUuNjUxMzQ4NDI3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjI4MTQ0NjQ1MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydCBpbiB0aGlzIGFyZWEgYW5kIHRoaW5raW5nIHRocm91Z2ggdGhpcyBjb2RlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBlYnRfY2hlY2tfbWF0Y2ggRnVuY3Rpb24qKlxuXG5SaWdodCwgc28gYGVidF9jaGVja19tYXRjaGAuLi4gSSdtIHByZXR0eSBzdXJlIHRoYXQgZ2V0cyBjYWxsZWQgYnkgYGVidF9jaGVja19lbnRyeWAuIFRoYXQgd291bGQgbWFrZSBzZW5zZSwgZXNwZWNpYWxseSBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gdGFibGUgcmVwbGFjZW1lbnQg4oCTIEknZCBiZXQgaXQncyBiZWluZyB1c2VkIGR1cmluZyBhIHRhYmxlIHJlcGxhY2VtZW50IG9wZXJhdGlvbiBsaWtlIGBkb19yZXBsYWNlYC4gT2theSwgbGV0J3MganVzdCBtYWtlIHN1cmUuIEknbGwgdGFrZSBhIHF1aWNrIGxvb2sgYXQgaG93IGBlYnRfY2hlY2tfZW50cnlgIGlzIHVzZWQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvbnRleHQgSSBuZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTU1LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzE6MDguNDY1ODE0MTk4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTMxNjg0MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X2NoZWNrX2VudHJ5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz01MzY9c3RhdGljIGlubGluZSBpbnRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjUzNzplYnRfY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3MoY29uc3Qgc3RydWN0IGVidF9lbnRyeSAqZSxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTUzOC1cXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz02ODQ9c3RhdGljIGlubGluZSBpbnRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjY4NTplYnRfY2hlY2tfZW50cnkoc3RydWN0IGVidF9lbnRyeSAqZSwgc3RydWN0IG5ldCAqbmV0LFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNjg2LVxcdFxcdGNvbnN0IHN0cnVjdCBlYnRfdGFibGVfaW5mbyAqbmV3aW5mbyxcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9ODcxPXN0YXRpYyBpbnQgdHJhbnNsYXRlX3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtOTA2LVxcdHJldCA9IEVCVF9FTlRSWV9JVEVSQVRFKG5ld2luZm8tXFx1MDAzZWVudHJpZXMsIG5ld2luZm8tXFx1MDAzZWVudHJpZXNfc2l6ZSxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjkwNzpcXHQgICBlYnRfY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3MsIG5ld2luZm8sXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05MDgtXFx0ICAgXFx1MDAyNmksIFxcdTAwMjZqLCBcXHUwMDI2aywgXFx1MDAyNnVkY19jbnQpO1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05ODAtXFx0cmV0ID0gRUJUX0VOVFJZX0lURVJBVEUobmV3aW5mby1cXHUwMDNlZW50cmllcywgbmV3aW5mby1cXHUwMDNlZW50cmllc19zaXplLFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6OTgxOlxcdCAgIGVidF9jaGVja19lbnRyeSwgbmV0LCBuZXdpbmZvLCBuYW1lLCBcXHUwMDI2aSwgY2xfcywgdWRjX2NudCk7XFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05ODItXFx0aWYgKHJldCAhPSAwKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjEwLjI1ODk4NzAzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwODc3NjMxOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyB0aGUgVHJhbnNsYXRpb24gUHJvY2VzcyoqXG5cbk9rYXksIHNvIEkgc2VlIGEgZnVuY3Rpb24gY2FsbDogYHRyYW5zbGF0ZV90YWJsZWAgaXMgcmVhY2hpbmcgb3V0IHRvIGBlYnRfY2hlY2tfZW50cnlgLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBgdHJhbnNsYXRlX3RhYmxlYCBmdW5jdGlvbiBpdHNlbGYg4oCTIHRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyB0YWJsZSBpcyBhY3R1YWxseSAqZG9pbmcqIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggYGVidF9jaGVja19lbnRyeWAuIFRoZSBjYWxsIHRvIGBlYnRfY2hlY2tfZW50cnlgIGlzIGxpa2VseSBhIGNydWNpYWwgc3RlcCB3aXRoaW4gdGhlIHRyYW5zbGF0aW9uIHdvcmtmbG93LCBzbyBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoYXQgZGVwZW5kZW5jeS4gTGV0J3Mgc3RhcnQgd2l0aCBgdHJhbnNsYXRlX3RhYmxlYCBhbmQgc2VlIHdoYXQgaXQgcmV2ZWFscy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIzNSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjEzLjM0Njc1MTg0OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTI3MDM5MTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHJhbnNsYXRlX3RhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz04MDQ9c3RhdGljIGludCBjaGVja19jaGFpbmxvb3BzKGNvbnN0IHN0cnVjdCBlYnRfZW50cmllcyAqY2hhaW4sIHN0cnVjdCBlYnRfY2xfc3RhY2sgKmNsX3MsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTg3MC0vKiBkbyB0aGUgcGFyc2luZyBvZiB0aGUgdGFibGUvY2hhaW5zL2VudHJpZXMvbWF0Y2hlcy93YXRjaGVycy90YXJnZXRzLCBoZWggKi9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjg3MTpzdGF0aWMgaW50IHRyYW5zbGF0ZV90YWJsZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKm5hbWUsXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy04NzItXFx0XFx0XFx0ICAgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvKVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0xMDEyPXN0YXRpYyBpbnQgZG9fcmVwbGFjZV9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZWJ0X3JlcGxhY2UgKnJlcGwsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEwMzUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMDM2OlxcdHJldCA9IHRyYW5zbGF0ZV90YWJsZShuZXQsIHJlcGwtXFx1MDAzZW5hbWUsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTAzNy1cXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTEwNS1cXHR2ZnJlZShjb3VudGVyc3RtcCk7XFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMTA2OlxcdC8qIGNhbiBiZSBpbml0aWFsaXplZCBpbiB0cmFuc2xhdGVfdGFibGUoKSAqL1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTEwNy1cXHRlYnRfZnJlZV90YWJsZV9pbmZvKG5ld2luZm8pO1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0xMTgwPWludCBlYnRfcmVnaXN0ZXJfdGFibGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgZWJ0X3RhYmxlICppbnB1dF90YWJsZSxcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTIzMS1cXHR9XFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMjMyOlxcdHJldCA9IHRyYW5zbGF0ZV90YWJsZShuZXQsIHJlcGwtXFx1MDAzZW5hbWUsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTIzMy1cXHRpZiAocmV0ICE9IDApXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjEzLjQ1OTQ2MjQxOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4MDQ1NDYwNTAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGVidGFibGVzIFJlcGxhY2VtZW50IFBhdGgqKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMsIEkgbmVlZCB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gdGhlIGBlYnRhYmxlc2AgcmVwbGFjZW1lbnQgZnVuY3Rpb25hbGl0eS4gU3BlY2lmaWNhbGx5LCB0aGUgY2FsbCBjaGFpbiBpcyBjbGVhcjogYGRvX3JlcGxhY2VfZmluaXNoYCBhbmQgYGVidF9yZWdpc3Rlcl90YWJsZWAgYm90aCB1bHRpbWF0ZWx5IGNhbGwgYHRyYW5zbGF0ZV90YWJsZWAuIEkgc2VlIHRoYXQgYGRvX3JlcGxhY2VfZmluaXNoYCBpcyByZWFjaGVkIGZyb20gYGRvX3JlcGxhY2VgLCB3aGljaCBoYW5kbGVzIHRoZSBgRUJUX1NPX1NFVF9FTlRSSUVTYCBgc2V0c29ja29wdGAgY2FsbC4gVGhhdCdzIHRoZSBlbnRyeSBwb2ludCBmcm9tIHVzZXJzcGFjZTsgYSBuZXRmaWx0ZXIgc29ja2V0LiBUaGlzIGlzIGltcG9ydGFudCDigJMgdGhhdCdzIHdoZXJlIEkgY2FuIGRpcmVjdGx5IGluamVjdCBteSBmdXp6aW5nIGlucHV0cy5cblxuVGhlcmVmb3JlLCBJIG5lZWQgdG8gcHJpb3JpdGl6ZSBmdXp6aW5nIGBkb19yZXBsYWNlYCwgYHRyYW5zbGF0ZV90YWJsZWAsIGBlYnRfY2hlY2tfZW50cnlgLCBhbmQgYGVidF9jaGVja19tYXRjaGAuIE9mIGNvdXJzZSwgSSBuZWVkIHRvIGNoZWNrIGlmIGEgYGNvbXBhdF9kb19yZXBsYWNlYCBleGlzdHMsIGFuZCBpbmNsdWRlIHRoYXQgYXMgd2VsbCwganVzdCB0byBiZSB0aG9yb3VnaCBhbmQgY292ZXIgYW55IHBvdGVudGlhbCBjb21wYXRpYmlsaXR5LXJlbGF0ZWQgYnVncy4gVGhhdCBjb3ZlcnMgdGhlIGVudGlyZSByZXBsYWNlbWVudCBwcm9jZXNzLCBmcm9tIHVzZXJzcGFjZSBpbnB1dCwgdGhyb3VnaCB0cmFuc2xhdGlvbiBhbmQgdmFsaWRhdGlvbi4gVGhpcyBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGlkZW50aWZ5aW5nIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzkyMiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMTozMS41MDQ5MjYwMTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2MDQwMTYxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb21wYXRfZG9fcmVwbGFjZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9MjI1Mz1zdGF0aWMgaW50IGNvbXBhdF9jb3B5X2VidF9yZXBsYWNlX2Zyb21fdXNlcihzdHJ1Y3QgZWJ0X3JlcGxhY2UgKnJlcGwsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyODgtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyMjg5OnN0YXRpYyBpbnQgY29tcGF0X2RvX3JlcGxhY2Uoc3RydWN0IG5ldCAqbmV0LCBzb2NrcHRyX3QgYXJnLCB1bnNpZ25lZCBpbnQgbGVuKVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjI5MC17XFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTI1NTA9c3RhdGljIGludCBkb19lYnRfc2V0X2N0bChzdHJ1Y3Qgc29jayAqc2ssIGludCBjbWQsIHNvY2twdHJfdCBhcmcsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjQtXFx0XFx0aWYgKGluX2NvbXBhdF9zeXNjYWxsKCkpXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyNTY1OlxcdFxcdFxcdHJldCA9IGNvbXBhdF9kb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2Ni1cXHRcXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjMyLjA2NTMzMzE0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMTg4NzAxMzk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczpcblxuKipFQlRhYmxlcyBDb25maWd1cmF0aW9uIENoZWNrKipcblxuT2theSwgc28gSSBrbm93IGBjb21wYXRfZG9fcmVwbGFjZWAgaXMgZGVmaW5pdGVseSBhIHRoaW5nLCBzbyB0aGF0J3MgY29uZmlybWVkLiBOb3csIGxldCdzIHN3aXRjaCBnZWFycyBhbmQgZm9jdXMgb24gdGhlIGVzc2VudGlhbCBjb25maWd1cmF0aW9ucyByZXF1aXJlZCB0byBnZXQgZWJ0YWJsZXMgd29ya2luZyBvcHRpbWFsbHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnkgY3J1Y2lhbCBzZXR0aW5ncy4gSXQncyB0aW1lIHRvIHRob3JvdWdobHkgcmV2aWV3IHRoZSBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU3NCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjAzLjI1NDAzNjM5OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA3NTAyMjU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUklER0VfRUJUX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9NjI9aWYgQlJJREdFX05GX0VCVEFCTEVTXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTY2LSNcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY3OmNvbmZpZyBCUklER0VfRUJUX0JST1VURVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNjgtXFx0dHJpc3RhdGUgXFxcImVidDogYnJvdXRlIHRhYmxlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTc3LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6Nzg6Y29uZmlnIEJSSURHRV9FQlRfVF9GSUxURVJcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTc5LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGZpbHRlciB0YWJsZSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy04Ny1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjg4OmNvbmZpZyBCUklER0VfRUJUX1RfTkFUXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy04OS1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBuYXQgdGFibGUgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctOTktI1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTAwOmNvbmZpZyBCUklER0VfRUJUXzgwMl8zXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMDEtXFx0dHJpc3RhdGUgXFxcImVidDogODAyLjMgZmlsdGVyIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwNi1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjEwNzpjb25maWcgQlJJREdFX0VCVF9BTU9OR1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTA4LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGFtb25nIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMTY6Y29uZmlnIEJSSURHRV9FQlRfQVJQXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMTctXFx0dHJpc3RhdGUgXFxcImVidDogQVJQIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMjMtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMjQ6Y29uZmlnIEJSSURHRV9FQlRfSVBcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEyNS1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBJUCBmaWx0ZXIgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTMxLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTMyOmNvbmZpZyBCUklER0VfRUJUX0lQNlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTMzLVxcdHRyaXN0YXRlIFxcXCJlYnQ6IElQNiBmaWx0ZXIgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTQwLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTQxOmNvbmZpZyBCUklER0VfRUJUX0xJTUlUXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNDItXFx0dHJpc3RhdGUgXFxcImVidDogbGltaXQgbWF0Y2ggc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTUwLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTUxOmNvbmZpZyBCUklER0VfRUJUX01BUktcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE1Mi1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBtYXJrIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNjAtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNjE6Y29uZmlnIEJSSURHRV9FQlRfUEtUVFlQRVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTYyLVxcdHRyaXN0YXRlIFxcXCJlYnQ6IHBhY2tldCB0eXBlIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzAtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNzE6Y29uZmlnIEJSSURHRV9FQlRfU1RQXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzItXFx0dHJpc3RhdGUgXFxcImVidDogU1RQIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzgtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNzk6Y29uZmlnIEJSSURHRV9FQlRfVkxBTlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTgwLVxcdHRyaXN0YXRlIFxcXCJlYnQ6IDgwMi4xUSBWTEFOIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xODgtI1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTg5OmNvbmZpZyBCUklER0VfRUJUX0FSUFJFUExZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xOTAtXFx0dHJpc3RhdGUgXFxcImVidDogYXJwIHJlcGx5IHRhcmdldCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xOTctXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxOTg6Y29uZmlnIEJSSURHRV9FQlRfRE5BVFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTk5LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGRuYXQgdGFyZ2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIwNS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIwNjpjb25maWcgQlJJREdFX0VCVF9NQVJLX1RcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBtYXJrIHRhcmdldCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMTUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoyMTY6Y29uZmlnIEJSSURHRV9FQlRfUkVESVJFQ1RcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIxNy1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiByZWRpcmVjdCB0YXJnZXQgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjIzLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjI0OmNvbmZpZyBCUklER0VfRUJUX1NOQVRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIyNS1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBzbmF0IHRhcmdldCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMzMtI1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjM0OmNvbmZpZyBCUklER0VfRUJUX0xPR1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjM1LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGxvZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDItXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoyNDM6Y29uZmlnIEJSSURHRV9FQlRfTkZMT0dcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTI0NC1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBuZmxvZyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjowMy44NjE1NDI4ODVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE1MTYyNTIxODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgZWJ0YWJsZXMgQ29uZmlndXJhdGlvbiBmb3IgTmV0d29yayBCcmlkZ2UgRnVuY3Rpb25hbGl0eSoqXG5cblJpZ2h0LCBzbyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gSSBpbW1lZGlhdGVseSB0aGluayBvZiB3aGVuIGRlYWxpbmcgd2l0aCBlYnRhYmxlcyBpbiBhIGJyaWRnZWQgbmV0d29yayBjb250ZXh0IGlzIGRlZmluaXRlbHkgYEJSSURHRV9ORl9FQlRBQkxFU2AuIFRoYXTigJlzIHRoZSBiaWcgb25lLCB0aGUgbWFzdGVyIHN3aXRjaCwgc28gdG8gc3BlYWsuIEJ1dCwgYmVpbmcgdGhvcm91Z2ggYXMgYWx3YXlzLCBJIG5lZWQgdG8gZGlnIGRlZXBlci4gSSB3YW50IHRvIGVuc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHNwZWNpZmljIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYCBmaWxlIHRoYXQgbWlnaHQgaW5mbHVlbmNlIGl0cyBiZWhhdmlvci4gSXQncyByYXJlIHRoYXQgYSBzaW5nbGUgY29uZmlnIG9wdGlvbiB0ZWxscyB0aGUgd2hvbGUgc3RvcnksIGVzcGVjaWFsbHkgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwuIEkgaGF2ZSB0byBsb29rIGZvciBzZWNvbmRhcnkgb3Igc3VwcGxlbWVudGFyeSBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCB0aGUgaW50ZXJhY3Rpb24gb2YgZWJ0YWJsZXMgd2l0aGluIHRoZSBicmlkZ2UncyBuZXRmaWx0ZXIgaG9va3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxMDksIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjoyNS4zNzc4MDE3MzNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyNDkxMjc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImVidGFibGVzLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU9MTA9b2JqLSQoQ09ORklHX05GX0NPTk5UUkFDS19CUklER0UpICs9IG5mX2Nvbm50cmFja19icmlkZ2Uub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTExLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19CUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZKSArPSBlYnRhYmxlcy5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjI1LjQ3MDI5ODkxOFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNjU5NzU3ODQyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTGVnYWN5IGVidGFibGVzIGluIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBpdCdzIGNvbWUgdXAgYWdhaW4sIHRoYXQgcGVza3kgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgLiAgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGdvIHN0cmFpZ2h0IHRvIEtjb25maWcuICBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgKmN1cnJlbnRseSogZW5hYmxlZCwgaXRzIGRlcGVuZGVuY2llcywgYW5kIGlkZWFsbHksIGl0cyBpbXBsaWNhdGlvbnMuICBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIGRlbHZlIGludG8gdGhpcyBsZWdhY3kgbW9kZSdzIGJlaGF2aW9yLiBUaW1lIHRvIG5hdmlnYXRlIHRob3NlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIHNlZSB3aGF0J3Mgd2hhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQ3NiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjQyLjA2Nzg3ODg4MloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzc3MjQyNTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00Mi0jIG9sZCBzb2Nrb3B0IGludGVyZmFjZSBhbmQgZXZhbCBsb29wXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjo0Mi40NDUxMjU2NThaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE2MjgyMDY0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRUJUQUJMRVMgQ29uZmlndXJhdGlvbiDigJMgTGV0J3MgRGlnIEluKipcblxuQWxyaWdodCwgc28gSSdtIGZvY3VzaW5nIG9uIHRoZSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgY29uZmlnLCB3aGljaCByaW5ncyBhIGJlbGwuIEJ1dCB0aGVuLCBhIHF1aWNrIGludGVybmFsIGNoZWNrLiBJcyBgQlJJREdFX05GX0VCVEFCTEVTYCBhIG1vcmUgZ2VuZXJhbCBtZW51Y29uZmlnIG9wdGlvbiBvciBzb21ldGhpbmcgcmVsYXRlZD8gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGVyZSBtaWdodCBiZSBhIG1vcmUgZ3JhbnVsYXIgc2V0dGluZyBsdXJraW5nIHdpdGhpbiB0aGUgYnJvYWRlciBjb25maWd1cmF0aW9uIHN0cnVjdHVyZS4gVGltZSB0byB2ZXJpZnkuIEkgbmVlZCB0byBjbGFyaWZ5IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVzZSBvcHRpb25zOyBteSB1bmRlcnN0YW5kaW5nIGNvdWxkIGJlIHN0cmVuZ3RoZW5lZC5cblxuXG4iLCJJbnB1dFRva2VucyI6Njc5NiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjQ1LjYwNzk1MDU1OFoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NTQ0MDA1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTI4PWNvbmZpZyBORl9DT05OVFJBQ0tfQlJJREdFXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3BcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjQzOmNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00NC1cXHR0cmlzdGF0ZSBcXFwiTGVnYWN5IEVCVEFCTEVTIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTUyLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NTM6bWVudWNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTU0LVxcdHRyaXN0YXRlIFxcXCJFdGhlcm5ldCBCcmlkZ2UgdGFibGVzIChlYnRhYmxlcykgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzI6NDUuNzQzNTAxODY0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMjY4NTg4MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBlYnRhYmxlcyBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBzZWUgYEJSSURHRV9ORl9FQlRBQkxFU2AgaW4gdGhlIG1lbnVjb25maWcsIHJpZ2h0PyBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGVuYWJsZSBib3RoIGBCUklER0VfTkZfRUJUQUJMRVNgIGFuZCBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAuIEhvd2V2ZXIsIGEgc2Vjb25kIHRob3VnaHQ6IGl0IHNlZW1zIHRoYXQgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIG9uIGl0cyBvd24gaXMgc3VmZmljaWVudCB0byBnZXQgYGVidGFibGVzLm9gIGNvbXBpbGVkLiBCdXQsIGhhbmcgb24sIHdoYXQgYWJvdXQgdGhlIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byB0aG9zZSB0YWJsZXMgdGhlbXNlbHZlcz8gSSBrbm93IHNvbWUgdGFibGVzLCBsaWtlIGBCUklER0VfRUJUX1RfRklMVEVSYCwgbWlnaHQgcmVxdWlyZSBgQlJJREdFX05GX0VCVEFCTEVTYC4gSSBuZWVkIHRvIGJlIHN1cmUuIFRpbWUgdG8gZG91YmxlLWNoZWNrIHRoZSBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGVgIHRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZyBhbmQgbWFrZSB0aGUgcmlnaHQgZGVjaXNpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxNzUsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzI6NDkuOTcwMzYyMTYxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDA0Mzg2NDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZT0xNz1vYmotJChDT05GSUdfQlJJREdFX0VCVF9UX05BVCkgKz0gZWJ0YWJsZV9uYXQub1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMTktI21hdGNoZXNcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMDpvYmotJChDT05GSUdfQlJJREdFX0VCVF84MDJfMykgKz0gZWJ0XzgwMl8zLm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BTU9ORykgKz0gZWJ0X2Ftb25nLm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BUlApICs9IGVidF9hcnAub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjIzOm9iai0kKENPTkZJR19CUklER0VfRUJUX0lQKSArPSBlYnRfaXAub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUklER0VfRUJUX0lQNikgKz0gZWJ0X2lwNi5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTElNSVQpICs9IGVidF9saW1pdC5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjY6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTUFSSykgKz0gZWJ0X21hcmtfbS5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjc6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfUEtUVFlQRSkgKz0gZWJ0X3BrdHR5cGUub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19CUklER0VfRUJUX1NUUCkgKz0gZWJ0X3N0cC5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfVkxBTikgKz0gZWJ0X3ZsYW4ub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTMwLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTMxLSMgdGFyZ2V0c1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjMyOm9iai0kKENPTkZJR19CUklER0VfRUJUX0FSUFJFUExZKSArPSBlYnRfYXJwcmVwbHkub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjMzOm9iai0kKENPTkZJR19CUklER0VfRUJUX01BUktfVCkgKz0gZWJ0X21hcmsub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19CUklER0VfRUJUX0ROQVQpICs9IGVidF9kbmF0Lm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozNTpvYmotJChDT05GSUdfQlJJREdFX0VCVF9SRURJUkVDVCkgKz0gZWJ0X3JlZGlyZWN0Lm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9TTkFUKSArPSBlYnRfc25hdC5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzctXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzgtIyB3YXRjaGVyc1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjM5Om9iai0kKENPTkZJR19CUklER0VfRUJUX0xPRykgKz0gZWJ0X2xvZy5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6NDA6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTkZMT0cpICs9IGVidF9uZmxvZy5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtNDEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjUwLjExMDgwNjE4M1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzAzNDM5NDU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBlYnRhYmxlcyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggcmVsYXRlZCB0byBlYnRhYmxlcyBhbmQgYnJpZGdlIGZpbHRlcmluZy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBhIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZSwgc3BlY2lmaWNhbGx5IGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIGBlYnRfY2hlY2tfbWF0Y2hgLiBUaGUgZGVzY3JpcHRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyByZWFkIG9jY3VycyB3aGVuIGBtLVx1MDAzZXUubmFtZWAgaXNuJ3QgcHJvcGVybHkgbnVsbC10ZXJtaW5hdGVkIHdpdGhpbiB0aGUgYGVidF9jaGVja19tYXRjaGAgZnVuY3Rpb24uIFRoYXQncyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvOyBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBpbXByb3ZlIHNhZmV0eSBhcmUgYWx3YXlzIHdlbGNvbWUsIHNvIEkgd2lsbCBldmFsdWF0ZSB0aGlzIGFzIGEgcG9zaXRpdmUgdGhpbmcuXG5cbkdpdmVuIHRoZSBjb250ZXh0LCBJIHRoaW5rIGl0J3Mgd2lzZSB0byBlbmFibGUgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIGFuZCBwb3NzaWJseSBgQlJJREdFX0VCVF9UX0ZJTFRFUmAgdG8gZmFjaWxpdGF0ZSBjb21wcmVoZW5zaXZlIHRlc3Rpbmcgb2YgdGhlIGZpbHRlciB0YWJsZXMuIEkgc2hvdWxkIHZlcmlmeSB0aGF0IGBlYnRfY2hlY2tfbWF0Y2hgIGlzIGNvcnJlY3RseSBpbnZva2VkIHdoZW4gYSBtYXRjaCBpcyBiZWluZyBldmFsdWF0ZWQsIGFzIHRoZSBkZXNjcmlwdGlvbiBzdWdnZXN0cy5cblxuTXkgZm9jdXMgc2hvdWxkIGJlIG9uIHRob3JvdWdobHkgZXhhbWluaW5nIHRoZSBmb2xsb3dpbmcgc3ltYm9sczogYGVidF9jaGVja19tYXRjaGAsIG9idmlvdXNseSwgYWxvbmcgd2l0aCBgZWJ0X2NoZWNrX2VudHJ5YCAoZm9yIHJlbGF0ZWQgZW50cnkgdmFsaWRhdGlvbiksIHRoZW4gdGhlIHRhYmxlIHRyYW5zbGF0aW9uIGxvZ2ljIGluIGB0cmFuc2xhdGVfdGFibGVgIGFuZCB0aGUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGBkb19yZXBsYWNlYCBhbmQgYGNvbXBhdF9kb19yZXBsYWNlYCwgYW5kIGZpbmFsbHkgbWFraW5nIHN1cmUgdGhlIG5hbWUgb2YgYGRvX3JlcGxhY2VgIGlzIGluZGVlZCBjb3JyZWN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGUgYG0tXHUwMDNldS5uYW1lYCBmaWVsZCBpcyB1c2VkIGFjcm9zcyBhbGwgdGhlc2UgZnVuY3Rpb25zLCBhbmQgaG93IHRoZSBudWxsIHRlcm1pbmF0aW9uIGlzIChvciBpc24ndCkgZW5mb3JjZWQuIFRoaXMgYWxzbyBjb25jZXJucyBtZS4gV2UgZG8gbm90IHdhbnQgdG8gaW50cm9kdWNlIGJ1Z3MuXG5cblRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb25zIG1lbnRpb25lZCBhcmUgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIGFuZCBgQlJJREdFX05GX0VCVEFCTEVTYC4gVW5kZXJzdGFuZGluZyBob3cgdGhlc2Ugc2V0dGluZ3MgaW5mbHVlbmNlIHRoZSBjb2RlIHBhdGggaXMgY3J1Y2lhbCBmb3IgdmVyaWZ5aW5nIHRoYXQgdGhlIGZpeCBpcyBlZmZlY3RpdmUgYWNyb3NzIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODE5NiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjo1NS40MTQyNDg4NzdaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODQ5OTk0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkb19yZXBsYWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz04NzE9c3RhdGljIGludCB0cmFuc2xhdGVfdGFibGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05MjItXFx0aWYgKHVkY19jbnQpIHtcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjkyMzpcXHRcXHQvKiB0aGlzIHdpbGwgZ2V0IGZyZWUnZCBpbiBkb19yZXBsYWNlKCkvZWJ0X3JlZ2lzdGVyX3RhYmxlKClcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTkyNC1cXHRcXHQgKiBpZiBhbiBlcnJvciBvY2N1cnNcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9OTkxPXN0YXRpYyB2b2lkIGdldF9jb3VudGVycyhjb25zdCBzdHJ1Y3QgZWJ0X2NvdW50ZXIgKm9sZGNvdW50ZXJzLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMDExLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTAxMjpzdGF0aWMgaW50IGRvX3JlcGxhY2VfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGVidF9yZXBsYWNlICpyZXBsLFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTAxMy1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgZWJ0X3RhYmxlX2luZm8gKm5ld2luZm8pXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTExMTEtLyogcmVwbGFjZSB0aGUgdGFibGUgKi9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjExMTI6c3RhdGljIGludCBkb19yZXBsYWNlKHN0cnVjdCBuZXQgKm5ldCwgc29ja3B0cl90IGFyZywgdW5zaWduZWQgaW50IGxlbilcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTExMTMte1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMTU2LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTE1NzpcXHRyZXQgPSBkb19yZXBsYWNlX2ZpbmlzaChuZXQsIFxcdTAwMjZ0bXAsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTE1OC1cXHRpZiAocmV0ID09IDApXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTIyNTM9c3RhdGljIGludCBjb21wYXRfY29weV9lYnRfcmVwbGFjZV9mcm9tX3VzZXIoc3RydWN0IGVidF9yZXBsYWNlICpyZXBsLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMjg4LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjI4OTpzdGF0aWMgaW50IGNvbXBhdF9kb19yZXBsYWNlKHN0cnVjdCBuZXQgKm5ldCwgc29ja3B0cl90IGFyZywgdW5zaWduZWQgaW50IGxlbilcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyOTAte1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMjk5LVxcdFxcdC8qIHRyeSByZWFsIGhhbmRsZXIgaW4gY2FzZSB1c2VybGFuZCBzdXBwbGllZCBuZWVkZWQgcGFkZGluZyAqL1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjMwMDpcXHRcXHRpZiAocmV0ID09IC1FSU5WQUwgXFx1MDAyNlxcdTAwMjYgZG9fcmVwbGFjZShuZXQsIGFyZywgbGVuKSA9PSAwKVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjMwMS1cXHRcXHRcXHRyZXQgPSAwO1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMzc2LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjM3NzpcXHRyZXQgPSBkb19yZXBsYWNlX2ZpbmlzaChuZXQsIFxcdTAwMjZ0bXAsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjM3OC1cXHRpZiAocmV0ID09IDApXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTI1NTA9c3RhdGljIGludCBkb19lYnRfc2V0X2N0bChzdHJ1Y3Qgc29jayAqc2ssIGludCBjbWQsIHNvY2twdHJfdCBhcmcsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjQtXFx0XFx0aWYgKGluX2NvbXBhdF9zeXNjYWxsKCkpXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyNTY1OlxcdFxcdFxcdHJldCA9IGNvbXBhdF9kb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2Ni1cXHRcXHRlbHNlXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yNTY3LSNlbmRpZlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjU2ODpcXHRcXHRcXHRyZXQgPSBkb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2OS1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzI6NTUuNTUyNzUyNzIxWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NzAzOTI5NTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHplcm9lZCBpbiBvbiB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIGhlcmU6IGBkb19yZXBsYWNlYCwgYGNvbXBhdF9kb19yZXBsYWNlYCwgYW5kIGFsc28gYGRvX3JlcGxhY2VfZmluaXNoYC4gVGhlc2UgYXJlIGRlZmluaXRlbHkgdGhlIGtleSBwbGF5ZXJzIGluIHRoaXMgcGF0Y2guIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhpcyBwYXRjaCBhZGRyZXNzZXMgYSB2dWxuZXJhYmlsaXR5IOKAkyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgd2l0aGluIGBlYnRfY2hlY2tfbWF0Y2hgLiBUaGUgcm9vdCBjYXVzZSBpcyBhIG1hdGNoIG5hbWUgdGhhdCBpc24ndCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgdHJpZ2dlcmVkIHRocm91Z2ggdXNlciBzcGFjZSBpbnRlcmFjdGlvbiB2aWEgYHNldHNvY2tvcHRgIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AsIHdoaWNoIHNvdW5kcyBsaWtlIGEgY2xhc3NpYyBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHNvbWVvbmUgY291bGQgZXhwbG9pdC4gVGhhdCdzIGEgZ29vZCBmaW5kLiBJIHdpbGwgY2FsbCBhIGBzZXQtcmVzdWx0c2AgdG9vbCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3MTksIk91dHB1dFRva2VucyI6MTY5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMzOjAwLjMyMzE0NzU2OFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NzU3MzU0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVwiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWJ0X2NoZWNrX21hdGNoXCIsXG4gICAgXCJlYnRfY2hlY2tfZW50cnlcIixcbiAgICBcInRyYW5zbGF0ZV90YWJsZVwiLFxuICAgIFwiZG9fcmVwbGFjZV9maW5pc2hcIixcbiAgICBcImRvX3JlcGxhY2VcIixcbiAgICBcImNvbXBhdF9kb19yZXBsYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVwiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWJ0X2NoZWNrX21hdGNoXCIsXG4gICAgXCJlYnRfY2hlY2tfZW50cnlcIixcbiAgICBcInRyYW5zbGF0ZV90YWJsZVwiLFxuICAgIFwiZG9fcmVwbGFjZV9maW5pc2hcIixcbiAgICBcImRvX3JlcGxhY2VcIixcbiAgICBcImNvbXBhdF9kb19yZXBsYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-06 14:15:13 +0000 UTC FinishedAt: 2026-07-06 14:33:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_NF_EBTABLES_LEGACY", "BRIDGE_NF_EBTABLES" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "nf", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git", "commit_hash": "d6456743424721a837e1509b912f362caaeecd97", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BRIDGE_NF_EBTABLES_LEGACY", "BRIDGE_NF_EBTABLES" ], "series_id": "5f6a3c1d-e162-4d36-be83-ec6487dd31d3" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "ebt_check_match", "ebt_check_entry", "translate_table", "do_replace_finish", "do_replace", "compat_do_replace" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1kmIzM0OywKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZWJ0X2NoZWNrX21hdGNoJiMzNDssCiAgICAmIzM0O2VidF9jaGVja19lbnRyeSYjMzQ7LAogICAgJiMzNDt0cmFuc2xhdGVfdGFibGUmIzM0OywKICAgICYjMzQ7ZG9fcmVwbGFjZV9maW5pc2gmIzM0OywKICAgICYjMzQ7ZG9fcmVwbGFjZSYjMzQ7LAogICAgJiMzNDtjb21wYXRfZG9fcmVwbGFjZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYGVidF9jaGVja19tYXRjaGAgd2hlbiB0aGUgbWF0Y2ggbmFtZSBpcyBub3QgbnVsbC10ZXJtaW5hdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGVidGFibGVzIGxlZ2FjeSBjb2RlLCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgc2V0c29ja29wdGAgc3lzdGVtIGNhbGwgd2l0aCBgRUJUX1NPX1NFVF9FTlRSSUVTYC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFmNGEzZDVlMTY1NjI5MDIxMTg4NjEyYzkwZTU1M2MzM2ExYzU3ZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCA2IDE0OjMwOjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5pbmRleCBmMjBjMDM5ZTQ0YzhkNy4uZmU1YjNkYzlhZmIxMjIgMTAwNjQ0XG4tLS0gYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5AQCAtNDAzLDYgJiM0Mzs0MDMsOSBAQCBlYnRfY2hlY2tfbWF0Y2goc3RydWN0IGVidF9lbnRyeV9tYXRjaCAqbSwgc3RydWN0IHh0X210Y2hrX3BhcmFtICpwYXIsXG4gXHQgICAgbGVmdCAtIHNpemVvZihzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoKSBcdTAwM2MgbS1cdTAwM2VtYXRjaF9zaXplKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiYjNDM7XHRpZiAoc3RybmxlbihtLVx1MDAzZXUubmFtZSwgWFRfRVhURU5TSU9OX01BWE5BTUVMRU4pID09IFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKVxuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1xuIFx0bWF0Y2ggPSB4dF9maW5kX21hdGNoKE5GUFJPVE9fQlJJREdFLCBtLVx1MDAzZXUubmFtZSwgbS1cdTAwM2V1LnJldmlzaW9uKTtcbiBcdGlmIChJU19FUlIobWF0Y2gpIHx8IG1hdGNoLVx1MDAzZWZhbWlseSAhPSBORlBST1RPX0JSSURHRSkge1xuIFx0XHRpZiAoIUlTX0VSUihtYXRjaCkpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWSYjMzQ7LAogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlYnRfY2hlY2tfbWF0Y2gmIzM0OywKICAgICYjMzQ7ZWJ0X2NoZWNrX2VudHJ5JiMzNDssCiAgICAmIzM0O3RyYW5zbGF0ZV90YWJsZSYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlX2ZpbmlzaCYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlJiMzNDssCiAgICAmIzM0O2NvbXBhdF9kb19yZXBsYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgZWJ0X2NoZWNrX21hdGNoYCB3aGVuIHRoZSBtYXRjaCBuYW1lIGlzIG5vdCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZWJ0YWJsZXMgbGVnYWN5IGNvZGUsIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBzZXRzb2Nrb3B0YCBzeXN0ZW0gY2FsbCB3aXRoIGBFQlRfU09fU0VUX0VOVFJJRVNgLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhZjRhM2Q1ZTE2NTYyOTAyMTE4ODYxMmM5MGU1NTNjMzNhMWM1N2U1CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBKdWwgNiAxNDozMDozOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jCmluZGV4IGYyMGMwMzllNDRjOGQ3Li5mZTViM2RjOWFmYjEyMiAxMDA2NDQKLS0tIGEvbmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jCkBAIC00MDMsNiAmIzQzOzQwMyw5IEBAIGVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhciwKIAkgICAgbGVmdCAtIHNpemVvZihzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoKSAmbHQ7IG0tJmd0O21hdGNoX3NpemUpCiAJCXJldHVybiAtRUlOVkFMOwogCiYjNDM7CWlmIChzdHJubGVuKG0tJmd0O3UubmFtZSwgWFRfRVhURU5TSU9OX01BWE5BTUVMRU4pID09IFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKQomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CiAJbWF0Y2ggPSB4dF9maW5kX21hdGNoKE5GUFJPVE9fQlJJREdFLCBtLSZndDt1Lm5hbWUsIG0tJmd0O3UucmV2aXNpb24pOwogCWlmIChJU19FUlIobWF0Y2gpIHx8IG1hdGNoLSZndDtmYW1pbHkgIT0gTkZQUk9UT19CUklER0UpIHsKIAkJaWYgKCFJU19FUlIobWF0Y2gpKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTAwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgZWJ0YWJsZXMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiB0aGUgYGVidF9jaGVja19tYXRjaGAgZnVuY3Rpb24uIFRoZXkmIzM5O3ZlIGFkZGVkIGEgY2hlY2s6IGBpZiAoc3RybmxlbihtLSZndDt1Lm5hbWUsIFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKSA9PSBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTikgcmV0dXJuIC1FSU5WQUw7YC4gSG1tLCB0aGlzIGlzIGNsZWFybHkgZnVuY3Rpb25hbC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGdvb2QgZGVmZW5zaXZlIHByb2dyYW1taW5nLiBUaGV5IGFyZSBwcmVlbXB0aXZlbHkgbWl0aWdhdGluZyBhIHBvdGVudGlhbCB2dWxuZXJhYmlsaXR5LiBJdCBsb29rcyBsaWtlIHRoZXkgYXJlIHByZXZlbnRpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyByZWFkIG9yIHNpbWlsYXIgaXNzdWUgdGhhdCBjb3VsZCBhcmlzZSBpZiB0aGUgbWF0Y2ggbmFtZSB3YXNuJiMzOTt0IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgdGhpbmcgdGhhdCBjYXRjaGVzIG15IGF0dGVudGlvbi4gSSYjMzk7bGwgbmVlZCB0byBkcmlsbCBkb3duIGFuZCBzZWUgaG93IGBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTmAgaXMgZGVmaW5lZCBhbmQgaG93IGBtLSZndDt1Lm5hbWVgIGlzIHVzZWQgZWxzZXdoZXJlIHRvIGZ1bGx5IGdyYXNwIHRoZSBjb250ZXh0IGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoaXMgY2hhbmdlLiBJJiMzOTtsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGVidF9jaGVja19tYXRjaGAgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgaW1wbGljYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2VidF9jaGVja19tYXRjaCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0zOTM9c3RhdGljIGlubGluZSBpbnRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6Mzk0OmVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhcixcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMzk1LVx0XHR1bnNpZ25lZCBpbnQgKmNudClcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTY4NT1lYnRfY2hlY2tfZW50cnkoc3RydWN0IGVidF9lbnRyeSAqZSwgc3RydWN0IG5ldCAqbmV0LFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNzQyLVx0bXRwYXIuZmFtaWx5ICAgID0gdGdwYXIuZmFtaWx5ICAgID0gTkZQUk9UT19CUklER0U7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjc0MzpcdHJldCA9IEVCVF9NQVRDSF9JVEVSQVRFKGUsIGVidF9jaGVja19tYXRjaCwgXHUwMDI2bXRwYXIsIFx1MDAyNmkpO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy03NDQtXHRpZiAocmV0ICE9IDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU1NQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGFyZWEgYW5kIHRoaW5raW5nIHRocm91Z2ggdGhpcyBjb2RlOgoKKipEaXZpbmcgaW50byB0aGUgZWJ0X2NoZWNrX21hdGNoIEZ1bmN0aW9uKioKClJpZ2h0LCBzbyBgZWJ0X2NoZWNrX21hdGNoYC4uLiBJJiMzOTttIHByZXR0eSBzdXJlIHRoYXQgZ2V0cyBjYWxsZWQgYnkgYGVidF9jaGVja19lbnRyeWAuIFRoYXQgd291bGQgbWFrZSBzZW5zZSwgZXNwZWNpYWxseSBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gdGFibGUgcmVwbGFjZW1lbnQg4oCTIEkmIzM5O2QgYmV0IGl0JiMzOTtzIGJlaW5nIHVzZWQgZHVyaW5nIGEgdGFibGUgcmVwbGFjZW1lbnQgb3BlcmF0aW9uIGxpa2UgYGRvX3JlcGxhY2VgLiBPa2F5LCBsZXQmIzM5O3MganVzdCBtYWtlIHN1cmUuIEkmIzM5O2xsIHRha2UgYSBxdWljayBsb29rIGF0IGhvdyBgZWJ0X2NoZWNrX2VudHJ5YCBpcyB1c2VkLiBUaGF0IHNob3VsZCBnaXZlIG1lIHRoZSBjb250ZXh0IEkgbmVlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtlYnRfY2hlY2tfZW50cnkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9NTM2PXN0YXRpYyBpbmxpbmUgaW50XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjUzNzplYnRfY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3MoY29uc3Qgc3RydWN0IGVidF9lbnRyeSAqZSxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNTM4LVx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgZWJ0X3RhYmxlX2luZm8gKm5ld2luZm8sXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz02ODQ9c3RhdGljIGlubGluZSBpbnRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6Njg1OmVidF9jaGVja19lbnRyeShzdHJ1Y3QgZWJ0X2VudHJ5ICplLCBzdHJ1Y3QgbmV0ICpuZXQsXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTY4Ni1cdFx0Y29uc3Qgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9ODcxPXN0YXRpYyBpbnQgdHJhbnNsYXRlX3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTkwNi1cdHJldCA9IEVCVF9FTlRSWV9JVEVSQVRFKG5ld2luZm8tXHUwMDNlZW50cmllcywgbmV3aW5mby1cdTAwM2VlbnRyaWVzX3NpemUsXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjkwNzpcdCAgIGVidF9jaGVja19lbnRyeV9zaXplX2FuZF9ob29rcywgbmV3aW5mbyxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtOTA4LVx0ICAgXHUwMDI2aSwgXHUwMDI2aiwgXHUwMDI2aywgXHUwMDI2dWRjX2NudCk7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05ODAtXHRyZXQgPSBFQlRfRU5UUllfSVRFUkFURShuZXdpbmZvLVx1MDAzZWVudHJpZXMsIG5ld2luZm8tXHUwMDNlZW50cmllc19zaXplLFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzo5ODE6XHQgICBlYnRfY2hlY2tfZW50cnksIG5ldCwgbmV3aW5mbywgbmFtZSwgXHUwMDI2aSwgY2xfcywgdWRjX2NudCk7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTk4Mi1cdGlmIChyZXQgIT0gMCkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMzUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgdGhlIFRyYW5zbGF0aW9uIFByb2Nlc3MqKgoKT2theSwgc28gSSBzZWUgYSBmdW5jdGlvbiBjYWxsOiBgdHJhbnNsYXRlX3RhYmxlYCBpcyByZWFjaGluZyBvdXQgdG8gYGVidF9jaGVja19lbnRyeWAuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZGlnIGludG8gdGhlIGB0cmFuc2xhdGVfdGFibGVgIGZ1bmN0aW9uIGl0c2VsZiDigJMgdGhhdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyB0YWJsZSBpcyBhY3R1YWxseSAqZG9pbmcqIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggYGVidF9jaGVja19lbnRyeWAuIFRoZSBjYWxsIHRvIGBlYnRfY2hlY2tfZW50cnlgIGlzIGxpa2VseSBhIGNydWNpYWwgc3RlcCB3aXRoaW4gdGhlIHRyYW5zbGF0aW9uIHdvcmtmbG93LCBzbyBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoYXQgZGVwZW5kZW5jeS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYHRyYW5zbGF0ZV90YWJsZWAgYW5kIHNlZSB3aGF0IGl0IHJldmVhbHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dHJhbnNsYXRlX3RhYmxlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTgwND1zdGF0aWMgaW50IGNoZWNrX2NoYWlubG9vcHMoY29uc3Qgc3RydWN0IGVidF9lbnRyaWVzICpjaGFpbiwgc3RydWN0IGVidF9jbF9zdGFjayAqY2xfcyxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTg3MC0vKiBkbyB0aGUgcGFyc2luZyBvZiB0aGUgdGFibGUvY2hhaW5zL2VudHJpZXMvbWF0Y2hlcy93YXRjaGVycy90YXJnZXRzLCBoZWggKi9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6ODcxOnN0YXRpYyBpbnQgdHJhbnNsYXRlX3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtODcyLVx0XHRcdCAgIHN0cnVjdCBlYnRfdGFibGVfaW5mbyAqbmV3aW5mbylcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTEwMTI9c3RhdGljIGludCBkb19yZXBsYWNlX2ZpbmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBlYnRfcmVwbGFjZSAqcmVwbCxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEwMzUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjEwMzY6XHRyZXQgPSB0cmFuc2xhdGVfdGFibGUobmV0LCByZXBsLVx1MDAzZW5hbWUsIG5ld2luZm8pO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMDM3LVxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTEwNS1cdHZmcmVlKGNvdW50ZXJzdG1wKTtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTEwNjpcdC8qIGNhbiBiZSBpbml0aWFsaXplZCBpbiB0cmFuc2xhdGVfdGFibGUoKSAqL1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMTA3LVx0ZWJ0X2ZyZWVfdGFibGVfaW5mbyhuZXdpbmZvKTtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTExODA9aW50IGVidF9yZWdpc3Rlcl90YWJsZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBlYnRfdGFibGUgKmlucHV0X3RhYmxlLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTIzMS1cdH1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTIzMjpcdHJldCA9IHRyYW5zbGF0ZV90YWJsZShuZXQsIHJlcGwtXHUwMDNlbmFtZSwgbmV3aW5mbyk7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEyMzMtXHRpZiAocmV0ICE9IDApXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkyMgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDExNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIHRoZSBlYnRhYmxlcyBSZXBsYWNlbWVudCBQYXRoKioKCk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgSSBuZWVkIHRvIGZvY3VzIG15IGZ1enppbmcgZWZmb3J0cyBvbiB0aGUgYGVidGFibGVzYCByZXBsYWNlbWVudCBmdW5jdGlvbmFsaXR5LiBTcGVjaWZpY2FsbHksIHRoZSBjYWxsIGNoYWluIGlzIGNsZWFyOiBgZG9fcmVwbGFjZV9maW5pc2hgIGFuZCBgZWJ0X3JlZ2lzdGVyX3RhYmxlYCBib3RoIHVsdGltYXRlbHkgY2FsbCBgdHJhbnNsYXRlX3RhYmxlYC4gSSBzZWUgdGhhdCBgZG9fcmVwbGFjZV9maW5pc2hgIGlzIHJlYWNoZWQgZnJvbSBgZG9fcmVwbGFjZWAsIHdoaWNoIGhhbmRsZXMgdGhlIGBFQlRfU09fU0VUX0VOVFJJRVNgIGBzZXRzb2Nrb3B0YCBjYWxsLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBwb2ludCBmcm9tIHVzZXJzcGFjZTsgYSBuZXRmaWx0ZXIgc29ja2V0LiBUaGlzIGlzIGltcG9ydGFudCDigJMgdGhhdCYjMzk7cyB3aGVyZSBJIGNhbiBkaXJlY3RseSBpbmplY3QgbXkgZnV6emluZyBpbnB1dHMuCgpUaGVyZWZvcmUsIEkgbmVlZCB0byBwcmlvcml0aXplIGZ1enppbmcgYGRvX3JlcGxhY2VgLCBgdHJhbnNsYXRlX3RhYmxlYCwgYGVidF9jaGVja19lbnRyeWAsIGFuZCBgZWJ0X2NoZWNrX21hdGNoYC4gT2YgY291cnNlLCBJIG5lZWQgdG8gY2hlY2sgaWYgYSBgY29tcGF0X2RvX3JlcGxhY2VgIGV4aXN0cywgYW5kIGluY2x1ZGUgdGhhdCBhcyB3ZWxsLCBqdXN0IHRvIGJlIHRob3JvdWdoIGFuZCBjb3ZlciBhbnkgcG90ZW50aWFsIGNvbXBhdGliaWxpdHktcmVsYXRlZCBidWdzLiBUaGF0IGNvdmVycyB0aGUgZW50aXJlIHJlcGxhY2VtZW50IHByb2Nlc3MsIGZyb20gdXNlcnNwYWNlIGlucHV0LCB0aHJvdWdoIHRyYW5zbGF0aW9uIGFuZCB2YWxpZGF0aW9uLiBUaGlzIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgaWRlbnRpZnlpbmcgdnVsbmVyYWJpbGl0aWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb21wYXRfZG9fcmVwbGFjZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0yMjUzPXN0YXRpYyBpbnQgY29tcGF0X2NvcHlfZWJ0X3JlcGxhY2VfZnJvbV91c2VyKHN0cnVjdCBlYnRfcmVwbGFjZSAqcmVwbCxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyODgtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjIyODk6c3RhdGljIGludCBjb21wYXRfZG9fcmVwbGFjZShzdHJ1Y3QgbmV0ICpuZXQsIHNvY2twdHJfdCBhcmcsIHVuc2lnbmVkIGludCBsZW4pXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyOTAte1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9MjU1MD1zdGF0aWMgaW50IGRvX2VidF9zZXRfY3RsKHN0cnVjdCBzb2NrICpzaywgaW50IGNtZCwgc29ja3B0cl90IGFyZyxcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjQtXHRcdGlmIChpbl9jb21wYXRfc3lzY2FsbCgpKVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyNTY1Olx0XHRcdHJldCA9IGNvbXBhdF9kb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yNTY2LVx0XHRlbHNlXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NzQKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzOgoKKipFQlRhYmxlcyBDb25maWd1cmF0aW9uIENoZWNrKioKCk9rYXksIHNvIEkga25vdyBgY29tcGF0X2RvX3JlcGxhY2VgIGlzIGRlZmluaXRlbHkgYSB0aGluZywgc28gdGhhdCYjMzk7cyBjb25maXJtZWQuIE5vdywgbGV0JiMzOTtzIHN3aXRjaCBnZWFycyBhbmQgZm9jdXMgb24gdGhlIGVzc2VudGlhbCBjb25maWd1cmF0aW9ucyByZXF1aXJlZCB0byBnZXQgZWJ0YWJsZXMgd29ya2luZyBvcHRpbWFsbHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55IGNydWNpYWwgc2V0dGluZ3MuIEl0JiMzOTtzIHRpbWUgdG8gdGhvcm91Z2hseSByZXZpZXcgdGhlIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQlJJREdFX0VCVF8mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9NjI9aWYgQlJJREdFX05GX0VCVEFCTEVTXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02Ni0jXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY3OmNvbmZpZyBCUklER0VfRUJUX0JST1VURVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy02OC1cdHRyaXN0YXRlIFwmIzM0O2VidDogYnJvdXRlIHRhYmxlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTc3LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo3ODpjb25maWcgQlJJREdFX0VCVF9UX0ZJTFRFUlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy03OS1cdHRyaXN0YXRlIFwmIzM0O2VidDogZmlsdGVyIHRhYmxlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTg3LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo4ODpjb25maWcgQlJJREdFX0VCVF9UX05BVFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy04OS1cdHRyaXN0YXRlIFwmIzM0O2VidDogbmF0IHRhYmxlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTk5LSNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTAwOmNvbmZpZyBCUklER0VfRUJUXzgwMl8zXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwMS1cdHRyaXN0YXRlIFwmIzM0O2VidDogODAyLjMgZmlsdGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwNi1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTA3OmNvbmZpZyBCUklER0VfRUJUX0FNT05HXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwOC1cdHRyaXN0YXRlIFwmIzM0O2VidDogYW1vbmcgZmlsdGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTExNS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTE2OmNvbmZpZyBCUklER0VfRUJUX0FSUFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMTctXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IEFSUCBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTIzLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMjQ6Y29uZmlnIEJSSURHRV9FQlRfSVBcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTI1LVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBJUCBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTMxLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMzI6Y29uZmlnIEJSSURHRV9FQlRfSVA2XG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEzMy1cdHRyaXN0YXRlIFwmIzM0O2VidDogSVA2IGZpbHRlciBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNDAtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjE0MTpjb25maWcgQlJJREdFX0VCVF9MSU1JVFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNDItXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGxpbWl0IG1hdGNoIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE1MC1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTUxOmNvbmZpZyBCUklER0VfRUJUX01BUktcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTUyLVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBtYXJrIGZpbHRlciBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNjAtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjE2MTpjb25maWcgQlJJREdFX0VCVF9QS1RUWVBFXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE2Mi1cdHRyaXN0YXRlIFwmIzM0O2VidDogcGFja2V0IHR5cGUgZmlsdGVyIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE3MC1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTcxOmNvbmZpZyBCUklER0VfRUJUX1NUUFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzItXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IFNUUCBmaWx0ZXIgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTc4LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNzk6Y29uZmlnIEJSSURHRV9FQlRfVkxBTlxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xODAtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IDgwMi4xUSBWTEFOIGZpbHRlciBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xODgtI1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxODk6Y29uZmlnIEJSSURHRV9FQlRfQVJQUkVQTFlcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTkwLVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBhcnAgcmVwbHkgdGFyZ2V0IHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE5Ny1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTk4OmNvbmZpZyBCUklER0VfRUJUX0ROQVRcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTk5LVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBkbmF0IHRhcmdldCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMDUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIwNjpjb25maWcgQlJJREdFX0VCVF9NQVJLX1Rcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjA3LVx0dHJpc3RhdGUgXCYjMzQ7ZWJ0OiBtYXJrIHRhcmdldCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMTUtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIxNjpjb25maWcgQlJJREdFX0VCVF9SRURJUkVDVFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMTctXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IHJlZGlyZWN0IHRhcmdldCBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMjMtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIyNDpjb25maWcgQlJJREdFX0VCVF9TTkFUXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIyNS1cdHRyaXN0YXRlIFwmIzM0O2VidDogc25hdCB0YXJnZXQgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjMzLSNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjM0OmNvbmZpZyBCUklER0VfRUJUX0xPR1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMzUtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IGxvZyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDItXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjI0Mzpjb25maWcgQlJJREdFX0VCVF9ORkxPR1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDQtXHR0cmlzdGF0ZSBcJiMzNDtlYnQ6IG5mbG9nIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjEwOQoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGVidGFibGVzIENvbmZpZ3VyYXRpb24gZm9yIE5ldHdvcmsgQnJpZGdlIEZ1bmN0aW9uYWxpdHkqKgoKUmlnaHQsIHNvIHRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb24gaXRlbSBJIGltbWVkaWF0ZWx5IHRoaW5rIG9mIHdoZW4gZGVhbGluZyB3aXRoIGVidGFibGVzIGluIGEgYnJpZGdlZCBuZXR3b3JrIGNvbnRleHQgaXMgZGVmaW5pdGVseSBgQlJJREdFX05GX0VCVEFCTEVTYC4gVGhhdOKAmXMgdGhlIGJpZyBvbmUsIHRoZSBtYXN0ZXIgc3dpdGNoLCBzbyB0byBzcGVhay4gQnV0LCBiZWluZyB0aG9yb3VnaCBhcyBhbHdheXMsIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBJIHdhbnQgdG8gZW5zdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHNwZWNpZmljIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYCBmaWxlIHRoYXQgbWlnaHQgaW5mbHVlbmNlIGl0cyBiZWhhdmlvci4gSXQmIzM5O3MgcmFyZSB0aGF0IGEgc2luZ2xlIGNvbmZpZyBvcHRpb24gdGVsbHMgdGhlIHdob2xlIHN0b3J5LCBlc3BlY2lhbGx5IHdpdGhpbiB0aGUgTGludXgga2VybmVsLiBJIGhhdmUgdG8gbG9vayBmb3Igc2Vjb25kYXJ5IG9yIHN1cHBsZW1lbnRhcnkgY29uZmlndXJhdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgdGhlIGludGVyYWN0aW9uIG9mIGVidGFibGVzIHdpdGhpbiB0aGUgYnJpZGdlJiMzOTtzIG5ldGZpbHRlciBob29rcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZWJ0YWJsZXMubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlPTEwPW9iai0kKENPTkZJR19ORl9DT05OVFJBQ0tfQlJJREdFKSAmIzQzOz0gbmZfY29ubnRyYWNrX2JyaWRnZS5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZS0xMS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19CUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZKSAmIzQzOz0gZWJ0YWJsZXMub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMTMtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA2IDE0OjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY0NzYKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgTGVnYWN5IGVidGFibGVzIGluIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgc28gaXQmIzM5O3MgY29tZSB1cCBhZ2FpbiwgdGhhdCBwZXNreSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAuICBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMuICBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZ28gc3RyYWlnaHQgdG8gS2NvbmZpZy4gIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgKmN1cnJlbnRseSogZW5hYmxlZCwgaXRzIGRlcGVuZGVuY2llcywgYW5kIGlkZWFsbHksIGl0cyBpbXBsaWNhdGlvbnMuICBJJiMzOTttIHRoaW5raW5nIEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoaXMgbGVnYWN5IG1vZGUmIzM5O3MgYmVoYXZpb3IuIFRpbWUgdG8gbmF2aWdhdGUgdGhvc2UgY29uZmlndXJhdGlvbiBmaWxlcyBhbmQgc2VlIHdoYXQmIzM5O3Mgd2hhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1kmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9Mjg9Y29uZmlnIE5GX0NPTk5UUkFDS19CUklER0Vcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3Bcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NDM6Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtMZWdhY3kgRUJUQUJMRVMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2Nzk2CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRUJUQUJMRVMgQ29uZmlndXJhdGlvbiDigJMgTGV0JiMzOTtzIERpZyBJbioqCgpBbHJpZ2h0LCBzbyBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgY29uZmlnLCB3aGljaCByaW5ncyBhIGJlbGwuIEJ1dCB0aGVuLCBhIHF1aWNrIGludGVybmFsIGNoZWNrLiBJcyBgQlJJREdFX05GX0VCVEFCTEVTYCBhIG1vcmUgZ2VuZXJhbCBtZW51Y29uZmlnIG9wdGlvbiBvciBzb21ldGhpbmcgcmVsYXRlZD8gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGVyZSBtaWdodCBiZSBhIG1vcmUgZ3JhbnVsYXIgc2V0dGluZyBsdXJraW5nIHdpdGhpbiB0aGUgYnJvYWRlciBjb25maWd1cmF0aW9uIHN0cnVjdHVyZS4gVGltZSB0byB2ZXJpZnkuIEkgbmVlZCB0byBjbGFyaWZ5IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVzZSBvcHRpb25zOyBteSB1bmRlcnN0YW5kaW5nIGNvdWxkIGJlIHN0cmVuZ3RoZW5lZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEJSSURHRV9ORl9FQlRBQkxFUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDItIyBvbGQgc29ja29wdCBpbnRlcmZhY2UgYW5kIGV2YWwgbG9vcFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00NC1cdHRyaXN0YXRlIFwmIzM0O0xlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy01Mi1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NTM6bWVudWNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNTQtXHR0cmlzdGF0ZSBcJiMzNDtFdGhlcm5ldCBCcmlkZ2UgdGFibGVzIChlYnRhYmxlcykgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MTc1CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyB0aGUgZWJ0YWJsZXMgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJIHNlZSBgQlJJREdFX05GX0VCVEFCTEVTYCBpbiB0aGUgbWVudWNvbmZpZywgcmlnaHQ/IE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gZW5hYmxlIGJvdGggYEJSSURHRV9ORl9FQlRBQkxFU2AgYW5kIGBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZYC4gSG93ZXZlciwgYSBzZWNvbmQgdGhvdWdodDogaXQgc2VlbXMgdGhhdCBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgb24gaXRzIG93biBpcyBzdWZmaWNpZW50IHRvIGdldCBgZWJ0YWJsZXMub2AgY29tcGlsZWQuIEJ1dCwgaGFuZyBvbiwgd2hhdCBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSByZWxhdGVkIHRvIHRob3NlIHRhYmxlcyB0aGVtc2VsdmVzPyBJIGtub3cgc29tZSB0YWJsZXMsIGxpa2UgYEJSSURHRV9FQlRfVF9GSUxURVJgLCBtaWdodCByZXF1aXJlIGBCUklER0VfTkZfRUJUQUJMRVNgLiBJIG5lZWQgdG8gYmUgc3VyZS4gVGltZSB0byBkb3VibGUtY2hlY2sgdGhlIGBuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZWAgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIGFuZCBtYWtlIHRoZSByaWdodCBkZWNpc2lvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZWJ0XyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlPTE3PW9iai0kKENPTkZJR19CUklER0VfRUJUX1RfTkFUKSAmIzQzOz0gZWJ0YWJsZV9uYXQub1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTE5LSNtYXRjaGVzXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMDpvYmotJChDT05GSUdfQlJJREdFX0VCVF84MDJfMykgJiM0Mzs9IGVidF84MDJfMy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BTU9ORykgJiM0Mzs9IGVidF9hbW9uZy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BUlApICYjNDM7PSBlYnRfYXJwLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjIzOm9iai0kKENPTkZJR19CUklER0VfRUJUX0lQKSAmIzQzOz0gZWJ0X2lwLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUklER0VfRUJUX0lQNikgJiM0Mzs9IGVidF9pcDYub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTElNSVQpICYjNDM7PSBlYnRfbGltaXQub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjY6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTUFSSykgJiM0Mzs9IGVidF9tYXJrX20ub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjc6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfUEtUVFlQRSkgJiM0Mzs9IGVidF9wa3R0eXBlLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19CUklER0VfRUJUX1NUUCkgJiM0Mzs9IGVidF9zdHAub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfVkxBTikgJiM0Mzs9IGVidF92bGFuLm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTMwLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzEtIyB0YXJnZXRzXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozMjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BUlBSRVBMWSkgJiM0Mzs9IGVidF9hcnByZXBseS5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQlJJREdFX0VCVF9NQVJLX1QpICYjNDM7PSBlYnRfbWFyay5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozNDpvYmotJChDT05GSUdfQlJJREdFX0VCVF9ETkFUKSAmIzQzOz0gZWJ0X2RuYXQub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MzU6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfUkVESVJFQ1QpICYjNDM7PSBlYnRfcmVkaXJlY3Qub1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfU05BVCkgJiM0Mzs9IGVidF9zbmF0Lm9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTM3LVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzgtIyB3YXRjaGVyc1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mzk6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTE9HKSAmIzQzOz0gZWJ0X2xvZy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTo0MDpvYmotJChDT05GSUdfQlJJREdFX0VCVF9ORkxPRykgJiM0Mzs9IGVidF9uZmxvZy5vXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZS00MS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODE5NgoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDE5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgZWJ0YWJsZXMgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggcmVsYXRlZCB0byBlYnRhYmxlcyBhbmQgYnJpZGdlIGZpbHRlcmluZy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBhIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZSwgc3BlY2lmaWNhbGx5IGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIGBlYnRfY2hlY2tfbWF0Y2hgLiBUaGUgZGVzY3JpcHRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyByZWFkIG9jY3VycyB3aGVuIGBtLSZndDt1Lm5hbWVgIGlzbiYjMzk7dCBwcm9wZXJseSBudWxsLXRlcm1pbmF0ZWQgd2l0aGluIHRoZSBgZWJ0X2NoZWNrX21hdGNoYCBmdW5jdGlvbi4gVGhhdCYjMzk7cyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvOyBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBpbXByb3ZlIHNhZmV0eSBhcmUgYWx3YXlzIHdlbGNvbWUsIHNvIEkgd2lsbCBldmFsdWF0ZSB0aGlzIGFzIGEgcG9zaXRpdmUgdGhpbmcuCgpHaXZlbiB0aGUgY29udGV4dCwgSSB0aGluayBpdCYjMzk7cyB3aXNlIHRvIGVuYWJsZSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgYW5kIHBvc3NpYmx5IGBCUklER0VfRUJUX1RfRklMVEVSYCB0byBmYWNpbGl0YXRlIGNvbXByZWhlbnNpdmUgdGVzdGluZyBvZiB0aGUgZmlsdGVyIHRhYmxlcy4gSSBzaG91bGQgdmVyaWZ5IHRoYXQgYGVidF9jaGVja19tYXRjaGAgaXMgY29ycmVjdGx5IGludm9rZWQgd2hlbiBhIG1hdGNoIGlzIGJlaW5nIGV2YWx1YXRlZCwgYXMgdGhlIGRlc2NyaXB0aW9uIHN1Z2dlc3RzLgoKTXkgZm9jdXMgc2hvdWxkIGJlIG9uIHRob3JvdWdobHkgZXhhbWluaW5nIHRoZSBmb2xsb3dpbmcgc3ltYm9sczogYGVidF9jaGVja19tYXRjaGAsIG9idmlvdXNseSwgYWxvbmcgd2l0aCBgZWJ0X2NoZWNrX2VudHJ5YCAoZm9yIHJlbGF0ZWQgZW50cnkgdmFsaWRhdGlvbiksIHRoZW4gdGhlIHRhYmxlIHRyYW5zbGF0aW9uIGxvZ2ljIGluIGB0cmFuc2xhdGVfdGFibGVgIGFuZCB0aGUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGBkb19yZXBsYWNlYCBhbmQgYGNvbXBhdF9kb19yZXBsYWNlYCwgYW5kIGZpbmFsbHkgbWFraW5nIHN1cmUgdGhlIG5hbWUgb2YgYGRvX3JlcGxhY2VgIGlzIGluZGVlZCBjb3JyZWN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGUgYG0tJmd0O3UubmFtZWAgZmllbGQgaXMgdXNlZCBhY3Jvc3MgYWxsIHRoZXNlIGZ1bmN0aW9ucywgYW5kIGhvdyB0aGUgbnVsbCB0ZXJtaW5hdGlvbiBpcyAob3IgaXNuJiMzOTt0KSBlbmZvcmNlZC4gVGhpcyBhbHNvIGNvbmNlcm5zIG1lLiBXZSBkbyBub3Qgd2FudCB0byBpbnRyb2R1Y2UgYnVncy4KClRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb25zIG1lbnRpb25lZCBhcmUgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIGFuZCBgQlJJREdFX05GX0VCVEFCTEVTYC4gVW5kZXJzdGFuZGluZyBob3cgdGhlc2Ugc2V0dGluZ3MgaW5mbHVlbmNlIHRoZSBjb2RlIHBhdGggaXMgY3J1Y2lhbCBmb3IgdmVyaWZ5aW5nIHRoYXQgdGhlIGZpeCBpcyBlZmZlY3RpdmUgYWNyb3NzIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZG9fcmVwbGFjZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz04NzE9c3RhdGljIGludCB0cmFuc2xhdGVfdGFibGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtOTIyLVx0aWYgKHVkY19jbnQpIHtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6OTIzOlx0XHQvKiB0aGlzIHdpbGwgZ2V0IGZyZWUmIzM5O2QgaW4gZG9fcmVwbGFjZSgpL2VidF9yZWdpc3Rlcl90YWJsZSgpXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTkyNC1cdFx0ICogaWYgYW4gZXJyb3Igb2NjdXJzXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz05OTE9c3RhdGljIHZvaWQgZ2V0X2NvdW50ZXJzKGNvbnN0IHN0cnVjdCBlYnRfY291bnRlciAqb2xkY291bnRlcnMsXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMDExLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMDEyOnN0YXRpYyBpbnQgZG9fcmVwbGFjZV9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZWJ0X3JlcGxhY2UgKnJlcGwsXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEwMTMtXHRcdFx0ICAgICAgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvKVxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTExMS0vKiByZXBsYWNlIHRoZSB0YWJsZSAqL1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMTEyOnN0YXRpYyBpbnQgZG9fcmVwbGFjZShzdHJ1Y3QgbmV0ICpuZXQsIHNvY2twdHJfdCBhcmcsIHVuc2lnbmVkIGludCBsZW4pXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTExMTMte1xuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTE1Ni1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTE1NzpcdHJldCA9IGRvX3JlcGxhY2VfZmluaXNoKG5ldCwgXHUwMDI2dG1wLCBuZXdpbmZvKTtcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTE1OC1cdGlmIChyZXQgPT0gMClcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTIyNTM9c3RhdGljIGludCBjb21wYXRfY29weV9lYnRfcmVwbGFjZV9mcm9tX3VzZXIoc3RydWN0IGVidF9yZXBsYWNlICpyZXBsLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjI4OC1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjI4OTpzdGF0aWMgaW50IGNvbXBhdF9kb19yZXBsYWNlKHN0cnVjdCBuZXQgKm5ldCwgc29ja3B0cl90IGFyZywgdW5zaWduZWQgaW50IGxlbilcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjI5MC17XG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMjk5LVx0XHQvKiB0cnkgcmVhbCBoYW5kbGVyIGluIGNhc2UgdXNlcmxhbmQgc3VwcGxpZWQgbmVlZGVkIHBhZGRpbmcgKi9cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjMwMDpcdFx0aWYgKHJldCA9PSAtRUlOVkFMIFx1MDAyNlx1MDAyNiBkb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pID09IDApXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIzMDEtXHRcdFx0cmV0ID0gMDtcbi0tXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIzNzYtXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjIzNzc6XHRyZXQgPSBkb19yZXBsYWNlX2ZpbmlzaChuZXQsIFx1MDAyNnRtcCwgbmV3aW5mbyk7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIzNzgtXHRpZiAocmV0ID09IDApXG4tLVxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0yNTUwPXN0YXRpYyBpbnQgZG9fZWJ0X3NldF9jdGwoc3RydWN0IHNvY2sgKnNrLCBpbnQgY21kLCBzb2NrcHRyX3QgYXJnLFxuLS1cbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2NC1cdFx0aWYgKGluX2NvbXBhdF9zeXNjYWxsKCkpXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjI1NjU6XHRcdFx0cmV0ID0gY29tcGF0X2RvX3JlcGxhY2UobmV0LCBhcmcsIGxlbik7XG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjYtXHRcdGVsc2Vcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2Ny0jZW5kaWZcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjU2ODpcdFx0XHRyZXQgPSBkb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yNTY5LVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDYgMTQ6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTcxOQoJCQkJCQkJb3V0cHV0OiAxNjkKCQkJCQkJCXRob3VnaHRzOiAxMDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgemVyb2VkIGluIG9uIHRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZTogYGRvX3JlcGxhY2VgLCBgY29tcGF0X2RvX3JlcGxhY2VgLCBhbmQgYWxzbyBgZG9fcmVwbGFjZV9maW5pc2hgLiBUaGVzZSBhcmUgZGVmaW5pdGVseSB0aGUga2V5IHBsYXllcnMgaW4gdGhpcyBwYXRjaC4gTXkgdW5kZXJzdGFuZGluZyBpcyB0aGlzIHBhdGNoIGFkZHJlc3NlcyBhIHZ1bG5lcmFiaWxpdHkg4oCTIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB3aXRoaW4gYGVidF9jaGVja19tYXRjaGAuIFRoZSByb290IGNhdXNlIGlzIGEgbWF0Y2ggbmFtZSB0aGF0IGlzbiYjMzk7dCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgdHJpZ2dlcmVkIHRocm91Z2ggdXNlciBzcGFjZSBpbnRlcmFjdGlvbiB2aWEgYHNldHNvY2tvcHRgIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AsIHdoaWNoIHNvdW5kcyBsaWtlIGEgY2xhc3NpYyBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHNvbWVvbmUgY291bGQgZXhwbG9pdC4gVGhhdCYjMzk7cyBhIGdvb2QgZmluZC4gSSB3aWxsIGNhbGwgYSBgc2V0LXJlc3VsdHNgIHRvb2wgbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNiAxNDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWSYjMzQ7LAogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtlYnRfY2hlY2tfbWF0Y2gmIzM0OywKICAgICYjMzQ7ZWJ0X2NoZWNrX2VudHJ5JiMzNDssCiAgICAmIzM0O3RyYW5zbGF0ZV90YWJsZSYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlX2ZpbmlzaCYjMzQ7LAogICAgJiMzNDtkb19yZXBsYWNlJiMzNDssCiAgICAmIzM0O2NvbXBhdF9kb19yZXBsYWNlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBjaGVjayB0byBwcmV2ZW50IGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgZWJ0X2NoZWNrX21hdGNoYCB3aGVuIHRoZSBtYXRjaCBuYW1lIGlzIG5vdCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgZWJ0YWJsZXMgbGVnYWN5IGNvZGUsIHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgdGhlIGBzZXRzb2Nrb3B0YCBzeXN0ZW0gY2FsbCB3aXRoIGBFQlRfU09fU0VUX0VOVFJJRVNgLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZJiMzNDssCiAgICAmIzM0O0JSSURHRV9ORl9FQlRBQkxFUyYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2VidF9jaGVja19tYXRjaCYjMzQ7LAogICAgJiMzNDtlYnRfY2hlY2tfZW50cnkmIzM0OywKICAgICYjMzQ7dHJhbnNsYXRlX3RhYmxlJiMzNDssCiAgICAmIzM0O2RvX3JlcGxhY2VfZmluaXNoJiMzNDssCiAgICAmIzM0O2RvX3JlcGxhY2UmIzM0OywKICAgICYjMzQ7Y29tcGF0X2RvX3JlcGxhY2UmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMDo0MC4yNjAyNzA1MDRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDAyMTA0NjIzNjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVwiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWJ0X2NoZWNrX21hdGNoXCIsXG4gICAgXCJlYnRfY2hlY2tfZW50cnlcIixcbiAgICBcInRyYW5zbGF0ZV90YWJsZVwiLFxuICAgIFwiZG9fcmVwbGFjZV9maW5pc2hcIixcbiAgICBcImRvX3JlcGxhY2VcIixcbiAgICBcImNvbXBhdF9kb19yZXBsYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMwOjQwLjI2MDI3NDI5NFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk5NzEzOTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYWY0YTNkNWUxNjU2MjkwMjExODg2MTJjOTBlNTUzYzMzYTFjNTdlNVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEp1bCA2IDE0OjMwOjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXFxuaW5kZXggZjIwYzAzOWU0NGM4ZDcuLmZlNWIzZGM5YWZiMTIyIDEwMDY0NFxcbi0tLSBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcXG4rKysgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXFxuQEAgLTQwMyw2ICs0MDMsOSBAQCBlYnRfY2hlY2tfbWF0Y2goc3RydWN0IGVidF9lbnRyeV9tYXRjaCAqbSwgc3RydWN0IHh0X210Y2hrX3BhcmFtICpwYXIsXFxuIFxcdCAgICBsZWZ0IC0gc2l6ZW9mKHN0cnVjdCBlYnRfZW50cnlfbWF0Y2gpIFxcdTAwM2MgbS1cXHUwMDNlbWF0Y2hfc2l6ZSlcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcbitcXHRpZiAoc3RybmxlbihtLVxcdTAwM2V1Lm5hbWUsIFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKSA9PSBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTilcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcbiBcXHRtYXRjaCA9IHh0X2ZpbmRfbWF0Y2goTkZQUk9UT19CUklER0UsIG0tXFx1MDAzZXUubmFtZSwgbS1cXHUwMDNldS5yZXZpc2lvbik7XFxuIFxcdGlmIChJU19FUlIobWF0Y2gpIHx8IG1hdGNoLVxcdTAwM2VmYW1pbHkgIT0gTkZQUk9UT19CUklER0UpIHtcXG4gXFx0XFx0aWYgKCFJU19FUlIobWF0Y2gpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMDo0MC44NjA1NTU4NjVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzOTYxMDE2ODk1MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXCIsXG4gICAgXCJCUklER0VfTkZfRUJUQUJMRVNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJlYnRfY2hlY2tfbWF0Y2hcIixcbiAgICBcImVidF9jaGVja19lbnRyeVwiLFxuICAgIFwidHJhbnNsYXRlX3RhYmxlXCIsXG4gICAgXCJkb19yZXBsYWNlX2ZpbmlzaFwiLFxuICAgIFwiZG9fcmVwbGFjZVwiLFxuICAgIFwiY29tcGF0X2RvX3JlcGxhY2VcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgY2hlY2sgdG8gcHJldmVudCBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYGVidF9jaGVja19tYXRjaGAgd2hlbiB0aGUgbWF0Y2ggbmFtZSBpcyBub3QgbnVsbC10ZXJtaW5hdGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGVidGFibGVzIGxlZ2FjeSBjb2RlLCByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgc2V0c29ja29wdGAgc3lzdGVtIGNhbGwgd2l0aCBgRUJUX1NPX1NFVF9FTlRSSUVTYC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhZjRhM2Q1ZTE2NTYyOTAyMTE4ODYxMmM5MGU1NTNjMzNhMWM1N2U1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgNiAxNDozMDozOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5pbmRleCBmMjBjMDM5ZTQ0YzhkNy4uZmU1YjNkYzlhZmIxMjIgMTAwNjQ0XG4tLS0gYS9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG4rKysgYi9uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXG5AQCAtNDAzLDYgKzQwMyw5IEBAIGVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhcixcbiBcdCAgICBsZWZ0IC0gc2l6ZW9mKHN0cnVjdCBlYnRfZW50cnlfbWF0Y2gpIFx1MDAzYyBtLVx1MDAzZW1hdGNoX3NpemUpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuK1x0aWYgKHN0cm5sZW4obS1cdTAwM2V1Lm5hbWUsIFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOKSA9PSBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTilcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXG4gXHRtYXRjaCA9IHh0X2ZpbmRfbWF0Y2goTkZQUk9UT19CUklER0UsIG0tXHUwMDNldS5uYW1lLCBtLVx1MDAzZXUucmV2aXNpb24pO1xuIFx0aWYgKElTX0VSUihtYXRjaCkgfHwgbWF0Y2gtXHUwMDNlZmFtaWx5ICE9IE5GUFJPVE9fQlJJREdFKSB7XG4gXHRcdGlmICghSVNfRVJSKG1hdGNoKSlcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMwOjQwLjg2MDU1NzEyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NDA4MDAwNTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBlYnRhYmxlcyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBzZWVtcyB0byBiZSBpbiB0aGUgYGVidF9jaGVja19tYXRjaGAgZnVuY3Rpb24uIFRoZXkndmUgYWRkZWQgYSBjaGVjazogYGlmIChzdHJubGVuKG0tXHUwMDNldS5uYW1lLCBYVF9FWFRFTlNJT05fTUFYTkFNRUxFTikgPT0gWFRfRVhURU5TSU9OX01BWE5BTUVMRU4pIHJldHVybiAtRUlOVkFMO2AuIEhtbSwgdGhpcyBpcyBjbGVhcmx5IGZ1bmN0aW9uYWwuIE15IGluaXRpYWwgdGhvdWdodCBpcywgdGhpcyBpcyBnb29kIGRlZmVuc2l2ZSBwcm9ncmFtbWluZy4gVGhleSBhcmUgcHJlZW1wdGl2ZWx5IG1pdGlnYXRpbmcgYSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0eS4gSXQgbG9va3MgbGlrZSB0aGV5IGFyZSBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgcmVhZCBvciBzaW1pbGFyIGlzc3VlIHRoYXQgY291bGQgYXJpc2UgaWYgdGhlIG1hdGNoIG5hbWUgd2Fzbid0IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgdGhpbmcgdGhhdCBjYXRjaGVzIG15IGF0dGVudGlvbi4gSSdsbCBuZWVkIHRvIGRyaWxsIGRvd24gYW5kIHNlZSBob3cgYFhUX0VYVEVOU0lPTl9NQVhOQU1FTEVOYCBpcyBkZWZpbmVkIGFuZCBob3cgYG0tXHUwMDNldS5uYW1lYCBpcyB1c2VkIGVsc2V3aGVyZSB0byBmdWxseSBncmFzcCB0aGUgY29udGV4dCBhbmQgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIGNoYW5nZS4gSSdsbCB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYGVidF9jaGVja19tYXRjaGAgaXRzZWxmIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgaW1wbGljYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTAwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzA6NDUuNTAxMzU5MzkyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0OTk4MDgwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJlYnRfY2hlY2tfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTM5Mz1zdGF0aWMgaW5saW5lIGludFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6Mzk0OmVidF9jaGVja19tYXRjaChzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICptLCBzdHJ1Y3QgeHRfbXRjaGtfcGFyYW0gKnBhcixcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTM5NS1cXHRcXHR1bnNpZ25lZCBpbnQgKmNudClcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9Njg1PWVidF9jaGVja19lbnRyeShzdHJ1Y3QgZWJ0X2VudHJ5ICplLCBzdHJ1Y3QgbmV0ICpuZXQsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTc0Mi1cXHRtdHBhci5mYW1pbHkgICAgPSB0Z3Bhci5mYW1pbHkgICAgPSBORlBST1RPX0JSSURHRTtcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjc0MzpcXHRyZXQgPSBFQlRfTUFUQ0hfSVRFUkFURShlLCBlYnRfY2hlY2tfbWF0Y2gsIFxcdTAwMjZtdHBhciwgXFx1MDAyNmkpO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNzQ0LVxcdGlmIChyZXQgIT0gMClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzA6NDUuNjUxMzQ4NDI3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjI4MTQ0NjQ1MDAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydCBpbiB0aGlzIGFyZWEgYW5kIHRoaW5raW5nIHRocm91Z2ggdGhpcyBjb2RlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBlYnRfY2hlY2tfbWF0Y2ggRnVuY3Rpb24qKlxuXG5SaWdodCwgc28gYGVidF9jaGVja19tYXRjaGAuLi4gSSdtIHByZXR0eSBzdXJlIHRoYXQgZ2V0cyBjYWxsZWQgYnkgYGVidF9jaGVja19lbnRyeWAuIFRoYXQgd291bGQgbWFrZSBzZW5zZSwgZXNwZWNpYWxseSBpZiB0aGlzIGlzIHJlbGF0ZWQgdG8gdGFibGUgcmVwbGFjZW1lbnQg4oCTIEknZCBiZXQgaXQncyBiZWluZyB1c2VkIGR1cmluZyBhIHRhYmxlIHJlcGxhY2VtZW50IG9wZXJhdGlvbiBsaWtlIGBkb19yZXBsYWNlYC4gT2theSwgbGV0J3MganVzdCBtYWtlIHN1cmUuIEknbGwgdGFrZSBhIHF1aWNrIGxvb2sgYXQgaG93IGBlYnRfY2hlY2tfZW50cnlgIGlzIHVzZWQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgdGhlIGNvbnRleHQgSSBuZWVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTU1LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzE6MDguNDY1ODE0MTk4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3OTMxNjg0MzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X2NoZWNrX2VudHJ5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz01MzY9c3RhdGljIGlubGluZSBpbnRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjUzNzplYnRfY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3MoY29uc3Qgc3RydWN0IGVidF9lbnRyeSAqZSxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTUzOC1cXHRcXHRcXHQgICAgICAgY29uc3Qgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz02ODQ9c3RhdGljIGlubGluZSBpbnRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjY4NTplYnRfY2hlY2tfZW50cnkoc3RydWN0IGVidF9lbnRyeSAqZSwgc3RydWN0IG5ldCAqbmV0LFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtNjg2LVxcdFxcdGNvbnN0IHN0cnVjdCBlYnRfdGFibGVfaW5mbyAqbmV3aW5mbyxcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9ODcxPXN0YXRpYyBpbnQgdHJhbnNsYXRlX3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtOTA2LVxcdHJldCA9IEVCVF9FTlRSWV9JVEVSQVRFKG5ld2luZm8tXFx1MDAzZWVudHJpZXMsIG5ld2luZm8tXFx1MDAzZWVudHJpZXNfc2l6ZSxcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjkwNzpcXHQgICBlYnRfY2hlY2tfZW50cnlfc2l6ZV9hbmRfaG9va3MsIG5ld2luZm8sXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05MDgtXFx0ICAgXFx1MDAyNmksIFxcdTAwMjZqLCBcXHUwMDI2aywgXFx1MDAyNnVkY19jbnQpO1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05ODAtXFx0cmV0ID0gRUJUX0VOVFJZX0lURVJBVEUobmV3aW5mby1cXHUwMDNlZW50cmllcywgbmV3aW5mby1cXHUwMDNlZW50cmllc19zaXplLFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6OTgxOlxcdCAgIGVidF9jaGVja19lbnRyeSwgbmV0LCBuZXdpbmZvLCBuYW1lLCBcXHUwMDI2aSwgY2xfcywgdWRjX2NudCk7XFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05ODItXFx0aWYgKHJldCAhPSAwKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjEwLjI1ODk4NzAzNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMwODc3NjMxOTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyB0aGUgVHJhbnNsYXRpb24gUHJvY2VzcyoqXG5cbk9rYXksIHNvIEkgc2VlIGEgZnVuY3Rpb24gY2FsbDogYHRyYW5zbGF0ZV90YWJsZWAgaXMgcmVhY2hpbmcgb3V0IHRvIGBlYnRfY2hlY2tfZW50cnlgLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGRpZyBpbnRvIHRoZSBgdHJhbnNsYXRlX3RhYmxlYCBmdW5jdGlvbiBpdHNlbGYg4oCTIHRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyB0YWJsZSBpcyBhY3R1YWxseSAqZG9pbmcqIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggYGVidF9jaGVja19lbnRyeWAuIFRoZSBjYWxsIHRvIGBlYnRfY2hlY2tfZW50cnlgIGlzIGxpa2VseSBhIGNydWNpYWwgc3RlcCB3aXRoaW4gdGhlIHRyYW5zbGF0aW9uIHdvcmtmbG93LCBzbyBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRoYXQgZGVwZW5kZW5jeS4gTGV0J3Mgc3RhcnQgd2l0aCBgdHJhbnNsYXRlX3RhYmxlYCBhbmQgc2VlIHdoYXQgaXQgcmV2ZWFscy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIzNSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjEzLjM0Njc1MTg0OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTI3MDM5MTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidHJhbnNsYXRlX3RhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz04MDQ9c3RhdGljIGludCBjaGVja19jaGFpbmxvb3BzKGNvbnN0IHN0cnVjdCBlYnRfZW50cmllcyAqY2hhaW4sIHN0cnVjdCBlYnRfY2xfc3RhY2sgKmNsX3MsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTg3MC0vKiBkbyB0aGUgcGFyc2luZyBvZiB0aGUgdGFibGUvY2hhaW5zL2VudHJpZXMvbWF0Y2hlcy93YXRjaGVycy90YXJnZXRzLCBoZWggKi9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjg3MTpzdGF0aWMgaW50IHRyYW5zbGF0ZV90YWJsZShzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKm5hbWUsXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy04NzItXFx0XFx0XFx0ICAgc3RydWN0IGVidF90YWJsZV9pbmZvICpuZXdpbmZvKVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0xMDEyPXN0YXRpYyBpbnQgZG9fcmVwbGFjZV9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZWJ0X3JlcGxhY2UgKnJlcGwsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTEwMzUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMDM2OlxcdHJldCA9IHRyYW5zbGF0ZV90YWJsZShuZXQsIHJlcGwtXFx1MDAzZW5hbWUsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTAzNy1cXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTEwNS1cXHR2ZnJlZShjb3VudGVyc3RtcCk7XFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMTA2OlxcdC8qIGNhbiBiZSBpbml0aWFsaXplZCBpbiB0cmFuc2xhdGVfdGFibGUoKSAqL1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTEwNy1cXHRlYnRfZnJlZV90YWJsZV9pbmZvKG5ld2luZm8pO1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz0xMTgwPWludCBlYnRfcmVnaXN0ZXJfdGFibGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3QgZWJ0X3RhYmxlICppbnB1dF90YWJsZSxcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTIzMS1cXHR9XFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoxMjMyOlxcdHJldCA9IHRyYW5zbGF0ZV90YWJsZShuZXQsIHJlcGwtXFx1MDAzZW5hbWUsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTIzMy1cXHRpZiAocmV0ICE9IDApXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjEzLjQ1OTQ2MjQxOVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4MDQ1NDYwNTAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIGVidGFibGVzIFJlcGxhY2VtZW50IFBhdGgqKlxuXG5Pa2F5LCBzbyBsb29raW5nIGF0IHRoaXMsIEkgbmVlZCB0byBmb2N1cyBteSBmdXp6aW5nIGVmZm9ydHMgb24gdGhlIGBlYnRhYmxlc2AgcmVwbGFjZW1lbnQgZnVuY3Rpb25hbGl0eS4gU3BlY2lmaWNhbGx5LCB0aGUgY2FsbCBjaGFpbiBpcyBjbGVhcjogYGRvX3JlcGxhY2VfZmluaXNoYCBhbmQgYGVidF9yZWdpc3Rlcl90YWJsZWAgYm90aCB1bHRpbWF0ZWx5IGNhbGwgYHRyYW5zbGF0ZV90YWJsZWAuIEkgc2VlIHRoYXQgYGRvX3JlcGxhY2VfZmluaXNoYCBpcyByZWFjaGVkIGZyb20gYGRvX3JlcGxhY2VgLCB3aGljaCBoYW5kbGVzIHRoZSBgRUJUX1NPX1NFVF9FTlRSSUVTYCBgc2V0c29ja29wdGAgY2FsbC4gVGhhdCdzIHRoZSBlbnRyeSBwb2ludCBmcm9tIHVzZXJzcGFjZTsgYSBuZXRmaWx0ZXIgc29ja2V0LiBUaGlzIGlzIGltcG9ydGFudCDigJMgdGhhdCdzIHdoZXJlIEkgY2FuIGRpcmVjdGx5IGluamVjdCBteSBmdXp6aW5nIGlucHV0cy5cblxuVGhlcmVmb3JlLCBJIG5lZWQgdG8gcHJpb3JpdGl6ZSBmdXp6aW5nIGBkb19yZXBsYWNlYCwgYHRyYW5zbGF0ZV90YWJsZWAsIGBlYnRfY2hlY2tfZW50cnlgLCBhbmQgYGVidF9jaGVja19tYXRjaGAuIE9mIGNvdXJzZSwgSSBuZWVkIHRvIGNoZWNrIGlmIGEgYGNvbXBhdF9kb19yZXBsYWNlYCBleGlzdHMsIGFuZCBpbmNsdWRlIHRoYXQgYXMgd2VsbCwganVzdCB0byBiZSB0aG9yb3VnaCBhbmQgY292ZXIgYW55IHBvdGVudGlhbCBjb21wYXRpYmlsaXR5LXJlbGF0ZWQgYnVncy4gVGhhdCBjb3ZlcnMgdGhlIGVudGlyZSByZXBsYWNlbWVudCBwcm9jZXNzLCBmcm9tIHVzZXJzcGFjZSBpbnB1dCwgdGhyb3VnaCB0cmFuc2xhdGlvbiBhbmQgdmFsaWRhdGlvbi4gVGhpcyBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGlkZW50aWZ5aW5nIHZ1bG5lcmFiaWxpdGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzkyMiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMTozMS41MDQ5MjYwMTFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2MDQwMTYxOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb21wYXRfZG9fcmVwbGFjZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9MjI1Mz1zdGF0aWMgaW50IGNvbXBhdF9jb3B5X2VidF9yZXBsYWNlX2Zyb21fdXNlcihzdHJ1Y3QgZWJ0X3JlcGxhY2UgKnJlcGwsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyODgtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyMjg5OnN0YXRpYyBpbnQgY29tcGF0X2RvX3JlcGxhY2Uoc3RydWN0IG5ldCAqbmV0LCBzb2NrcHRyX3QgYXJnLCB1bnNpZ25lZCBpbnQgbGVuKVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjI5MC17XFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTI1NTA9c3RhdGljIGludCBkb19lYnRfc2V0X2N0bChzdHJ1Y3Qgc29jayAqc2ssIGludCBjbWQsIHNvY2twdHJfdCBhcmcsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjQtXFx0XFx0aWYgKGluX2NvbXBhdF9zeXNjYWxsKCkpXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyNTY1OlxcdFxcdFxcdHJldCA9IGNvbXBhdF9kb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2Ni1cXHRcXHRlbHNlXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMxOjMyLjA2NTMzMzE0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMTg4NzAxMzk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpczpcblxuKipFQlRhYmxlcyBDb25maWd1cmF0aW9uIENoZWNrKipcblxuT2theSwgc28gSSBrbm93IGBjb21wYXRfZG9fcmVwbGFjZWAgaXMgZGVmaW5pdGVseSBhIHRoaW5nLCBzbyB0aGF0J3MgY29uZmlybWVkLiBOb3csIGxldCdzIHN3aXRjaCBnZWFycyBhbmQgZm9jdXMgb24gdGhlIGVzc2VudGlhbCBjb25maWd1cmF0aW9ucyByZXF1aXJlZCB0byBnZXQgZWJ0YWJsZXMgd29ya2luZyBvcHRpbWFsbHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbid0IG1pc3NlZCBhbnkgY3J1Y2lhbCBzZXR0aW5ncy4gSXQncyB0aW1lIHRvIHRob3JvdWdobHkgcmV2aWV3IHRoZSBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU3NCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjAzLjI1NDAzNjM5OVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA3NTAyMjU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUklER0VfRUJUX1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc9NjI9aWYgQlJJREdFX05GX0VCVEFCTEVTXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTY2LSNcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjY3OmNvbmZpZyBCUklER0VfRUJUX0JST1VURVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNjgtXFx0dHJpc3RhdGUgXFxcImVidDogYnJvdXRlIHRhYmxlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTc3LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6Nzg6Y29uZmlnIEJSSURHRV9FQlRfVF9GSUxURVJcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTc5LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGZpbHRlciB0YWJsZSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy04Ny1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjg4OmNvbmZpZyBCUklER0VfRUJUX1RfTkFUXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy04OS1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBuYXQgdGFibGUgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctOTktI1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTAwOmNvbmZpZyBCUklER0VfRUJUXzgwMl8zXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMDEtXFx0dHJpc3RhdGUgXFxcImVidDogODAyLjMgZmlsdGVyIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEwNi1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjEwNzpjb25maWcgQlJJREdFX0VCVF9BTU9OR1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTA4LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGFtb25nIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMTUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMTY6Y29uZmlnIEJSSURHRV9FQlRfQVJQXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMTctXFx0dHJpc3RhdGUgXFxcImVidDogQVJQIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xMjMtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxMjQ6Y29uZmlnIEJSSURHRV9FQlRfSVBcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTEyNS1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBJUCBmaWx0ZXIgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTMxLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTMyOmNvbmZpZyBCUklER0VfRUJUX0lQNlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTMzLVxcdHRyaXN0YXRlIFxcXCJlYnQ6IElQNiBmaWx0ZXIgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTQwLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTQxOmNvbmZpZyBCUklER0VfRUJUX0xJTUlUXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNDItXFx0dHJpc3RhdGUgXFxcImVidDogbGltaXQgbWF0Y2ggc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTUwLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTUxOmNvbmZpZyBCUklER0VfRUJUX01BUktcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTE1Mi1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBtYXJrIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNjAtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNjE6Y29uZmlnIEJSSURHRV9FQlRfUEtUVFlQRVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTYyLVxcdHRyaXN0YXRlIFxcXCJlYnQ6IHBhY2tldCB0eXBlIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzAtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNzE6Y29uZmlnIEJSSURHRV9FQlRfU1RQXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzItXFx0dHJpc3RhdGUgXFxcImVidDogU1RQIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xNzgtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxNzk6Y29uZmlnIEJSSURHRV9FQlRfVkxBTlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTgwLVxcdHRyaXN0YXRlIFxcXCJlYnQ6IDgwMi4xUSBWTEFOIGZpbHRlciBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xODgtI1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MTg5OmNvbmZpZyBCUklER0VfRUJUX0FSUFJFUExZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xOTAtXFx0dHJpc3RhdGUgXFxcImVidDogYXJwIHJlcGx5IHRhcmdldCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0xOTctXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoxOTg6Y29uZmlnIEJSSURHRV9FQlRfRE5BVFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMTk5LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGRuYXQgdGFyZ2V0IHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIwNS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjIwNjpjb25maWcgQlJJREdFX0VCVF9NQVJLX1RcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIwNy1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBtYXJrIHRhcmdldCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMTUtXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoyMTY6Y29uZmlnIEJSSURHRV9FQlRfUkVESVJFQ1RcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIxNy1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiByZWRpcmVjdCB0YXJnZXQgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjIzLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjI0OmNvbmZpZyBCUklER0VfRUJUX1NOQVRcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTIyNS1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBzbmF0IHRhcmdldCBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yMzMtI1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6MjM0OmNvbmZpZyBCUklER0VfRUJUX0xPR1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctMjM1LVxcdHRyaXN0YXRlIFxcXCJlYnQ6IGxvZyBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy0yNDItXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzoyNDM6Y29uZmlnIEJSSURHRV9FQlRfTkZMT0dcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTI0NC1cXHR0cmlzdGF0ZSBcXFwiZWJ0OiBuZmxvZyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjowMy44NjE1NDI4ODVaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE1MTYyNTIxODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgZWJ0YWJsZXMgQ29uZmlndXJhdGlvbiBmb3IgTmV0d29yayBCcmlkZ2UgRnVuY3Rpb25hbGl0eSoqXG5cblJpZ2h0LCBzbyB0aGUgcHJpbWFyeSBjb25maWd1cmF0aW9uIGl0ZW0gSSBpbW1lZGlhdGVseSB0aGluayBvZiB3aGVuIGRlYWxpbmcgd2l0aCBlYnRhYmxlcyBpbiBhIGJyaWRnZWQgbmV0d29yayBjb250ZXh0IGlzIGRlZmluaXRlbHkgYEJSSURHRV9ORl9FQlRBQkxFU2AuIFRoYXTigJlzIHRoZSBiaWcgb25lLCB0aGUgbWFzdGVyIHN3aXRjaCwgc28gdG8gc3BlYWsuIEJ1dCwgYmVpbmcgdGhvcm91Z2ggYXMgYWx3YXlzLCBJIG5lZWQgdG8gZGlnIGRlZXBlci4gSSB3YW50IHRvIGVuc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcuIEkgbmVlZCB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHNwZWNpZmljIGBuZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jYCBmaWxlIHRoYXQgbWlnaHQgaW5mbHVlbmNlIGl0cyBiZWhhdmlvci4gSXQncyByYXJlIHRoYXQgYSBzaW5nbGUgY29uZmlnIG9wdGlvbiB0ZWxscyB0aGUgd2hvbGUgc3RvcnksIGVzcGVjaWFsbHkgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwuIEkgaGF2ZSB0byBsb29rIGZvciBzZWNvbmRhcnkgb3Igc3VwcGxlbWVudGFyeSBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCB0aGUgaW50ZXJhY3Rpb24gb2YgZWJ0YWJsZXMgd2l0aGluIHRoZSBicmlkZ2UncyBuZXRmaWx0ZXIgaG9va3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxMDksIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjoyNS4zNzc4MDE3MzNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyNDkxMjc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImVidGFibGVzLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU9MTA9b2JqLSQoQ09ORklHX05GX0NPTk5UUkFDS19CUklER0UpICs9IG5mX2Nvbm50cmFja19icmlkZ2Uub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTExLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjEyOm9iai0kKENPTkZJR19CUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZKSArPSBlYnRhYmxlcy5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMTMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjI1LjQ3MDI5ODkxOFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNjU5NzU3ODQyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTGVnYWN5IGVidGFibGVzIGluIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbioqXG5cblJpZ2h0LCBzbyBpdCdzIGNvbWUgdXAgYWdhaW4sIHRoYXQgcGVza3kgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgLiAgSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGlzLiAgTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGdvIHN0cmFpZ2h0IHRvIEtjb25maWcuICBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgKmN1cnJlbnRseSogZW5hYmxlZCwgaXRzIGRlcGVuZGVuY2llcywgYW5kIGlkZWFsbHksIGl0cyBpbXBsaWNhdGlvbnMuICBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIGRlbHZlIGludG8gdGhpcyBsZWdhY3kgbW9kZSdzIGJlaGF2aW9yLiBUaW1lIHRvIG5hdmlnYXRlIHRob3NlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIHNlZSB3aGF0J3Mgd2hhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjQ3NiwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjQyLjA2Nzg3ODg4MloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzc3MjQyNTA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZz0yOD1jb25maWcgTkZfQ09OTlRSQUNLX0JSSURHRVxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00Mi0jIG9sZCBzb2Nrb3B0IGludGVyZmFjZSBhbmQgZXZhbCBsb29wXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZzo0Mzpjb25maWcgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIkxlZ2FjeSBFQlRBQkxFUyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjo0Mi40NDUxMjU2NThaIiwiU2VxIjoxNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE2MjgyMDY0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRUJUQUJMRVMgQ29uZmlndXJhdGlvbiDigJMgTGV0J3MgRGlnIEluKipcblxuQWxyaWdodCwgc28gSSdtIGZvY3VzaW5nIG9uIHRoZSBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAgY29uZmlnLCB3aGljaCByaW5ncyBhIGJlbGwuIEJ1dCB0aGVuLCBhIHF1aWNrIGludGVybmFsIGNoZWNrLiBJcyBgQlJJREdFX05GX0VCVEFCTEVTYCBhIG1vcmUgZ2VuZXJhbCBtZW51Y29uZmlnIG9wdGlvbiBvciBzb21ldGhpbmcgcmVsYXRlZD8gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGVyZSBtaWdodCBiZSBhIG1vcmUgZ3JhbnVsYXIgc2V0dGluZyBsdXJraW5nIHdpdGhpbiB0aGUgYnJvYWRlciBjb25maWd1cmF0aW9uIHN0cnVjdHVyZS4gVGltZSB0byB2ZXJpZnkuIEkgbmVlZCB0byBjbGFyaWZ5IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0aGVzZSBvcHRpb25zOyBteSB1bmRlcnN0YW5kaW5nIGNvdWxkIGJlIHN0cmVuZ3RoZW5lZC5cblxuXG4iLCJJbnB1dFRva2VucyI6Njc5NiwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjQ1LjYwNzk1MDU1OFoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1NTQ0MDA1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnPTI4PWNvbmZpZyBORl9DT05OVFJBQ0tfQlJJREdFXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTQyLSMgb2xkIHNvY2tvcHQgaW50ZXJmYWNlIGFuZCBldmFsIGxvb3BcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnOjQzOmNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNfTEVHQUNZXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvS2NvbmZpZy00NC1cXHR0cmlzdGF0ZSBcXFwiTGVnYWN5IEVCVEFCTEVTIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTUyLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL0tjb25maWc6NTM6bWVudWNvbmZpZyBCUklER0VfTkZfRUJUQUJMRVNcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9LY29uZmlnLTU0LVxcdHRyaXN0YXRlIFxcXCJFdGhlcm5ldCBCcmlkZ2UgdGFibGVzIChlYnRhYmxlcykgc3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzI6NDUuNzQzNTAxODY0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyMjY4NTg4MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBlYnRhYmxlcyBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSBzZWUgYEJSSURHRV9ORl9FQlRBQkxFU2AgaW4gdGhlIG1lbnVjb25maWcsIHJpZ2h0PyBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGVuYWJsZSBib3RoIGBCUklER0VfTkZfRUJUQUJMRVNgIGFuZCBgQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWWAuIEhvd2V2ZXIsIGEgc2Vjb25kIHRob3VnaHQ6IGl0IHNlZW1zIHRoYXQgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIG9uIGl0cyBvd24gaXMgc3VmZmljaWVudCB0byBnZXQgYGVidGFibGVzLm9gIGNvbXBpbGVkLiBCdXQsIGhhbmcgb24sIHdoYXQgYWJvdXQgdGhlIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byB0aG9zZSB0YWJsZXMgdGhlbXNlbHZlcz8gSSBrbm93IHNvbWUgdGFibGVzLCBsaWtlIGBCUklER0VfRUJUX1RfRklMVEVSYCwgbWlnaHQgcmVxdWlyZSBgQlJJREdFX05GX0VCVEFCTEVTYC4gSSBuZWVkIHRvIGJlIHN1cmUuIFRpbWUgdG8gZG91YmxlLWNoZWNrIHRoZSBgbmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGVgIHRvIGNvbmZpcm0gbXkgdW5kZXJzdGFuZGluZyBhbmQgbWFrZSB0aGUgcmlnaHQgZGVjaXNpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxNzUsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzI6NDkuOTcwMzYyMTYxWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDA0Mzg2NDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZWJ0X1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZT0xNz1vYmotJChDT05GSUdfQlJJREdFX0VCVF9UX05BVCkgKz0gZWJ0YWJsZV9uYXQub1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMTktI21hdGNoZXNcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMDpvYmotJChDT05GSUdfQlJJREdFX0VCVF84MDJfMykgKz0gZWJ0XzgwMl8zLm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMTpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BTU9ORykgKz0gZWJ0X2Ftb25nLm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZToyMjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9BUlApICs9IGVidF9hcnAub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjIzOm9iai0kKENPTkZJR19CUklER0VfRUJUX0lQKSArPSBlYnRfaXAub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI0Om9iai0kKENPTkZJR19CUklER0VfRUJUX0lQNikgKz0gZWJ0X2lwNi5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjU6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTElNSVQpICs9IGVidF9saW1pdC5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6MjY6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTUFSSykgKz0gZWJ0X21hcmtfbS5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjc6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfUEtUVFlQRSkgKz0gZWJ0X3BrdHR5cGUub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjI4Om9iai0kKENPTkZJR19CUklER0VfRUJUX1NUUCkgKz0gZWJ0X3N0cC5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfVkxBTikgKz0gZWJ0X3ZsYW4ub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTMwLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlLTMxLSMgdGFyZ2V0c1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjMyOm9iai0kKENPTkZJR19CUklER0VfRUJUX0FSUFJFUExZKSArPSBlYnRfYXJwcmVwbHkub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjMzOm9iai0kKENPTkZJR19CUklER0VfRUJUX01BUktfVCkgKz0gZWJ0X21hcmsub1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjM0Om9iai0kKENPTkZJR19CUklER0VfRUJUX0ROQVQpICs9IGVidF9kbmF0Lm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozNTpvYmotJChDT05GSUdfQlJJREdFX0VCVF9SRURJUkVDVCkgKz0gZWJ0X3JlZGlyZWN0Lm9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQlJJREdFX0VCVF9TTkFUKSArPSBlYnRfc25hdC5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzctXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtMzgtIyB3YXRjaGVyc1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL01ha2VmaWxlOjM5Om9iai0kKENPTkZJR19CUklER0VfRUJUX0xPRykgKz0gZWJ0X2xvZy5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGU6NDA6b2JqLSQoQ09ORklHX0JSSURHRV9FQlRfTkZMT0cpICs9IGVidF9uZmxvZy5vXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvTWFrZWZpbGUtNDEtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMyOjUwLjExMDgwNjE4M1oiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzAzNDM5NDU1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBlYnRhYmxlcyBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggcmVsYXRlZCB0byBlYnRhYmxlcyBhbmQgYnJpZGdlIGZpbHRlcmluZy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byByZXZvbHZlIGFyb3VuZCBhIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZSwgc3BlY2lmaWNhbGx5IGFuIG91dC1vZi1ib3VuZHMgcmVhZCB2dWxuZXJhYmlsaXR5IGluIGBlYnRfY2hlY2tfbWF0Y2hgLiBUaGUgZGVzY3JpcHRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyByZWFkIG9jY3VycyB3aGVuIGBtLVx1MDAzZXUubmFtZWAgaXNuJ3QgcHJvcGVybHkgbnVsbC10ZXJtaW5hdGVkIHdpdGhpbiB0aGUgYGVidF9jaGVja19tYXRjaGAgZnVuY3Rpb24uIFRoYXQncyBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byBwYXkgYXR0ZW50aW9uIHRvOyBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBpbXByb3ZlIHNhZmV0eSBhcmUgYWx3YXlzIHdlbGNvbWUsIHNvIEkgd2lsbCBldmFsdWF0ZSB0aGlzIGFzIGEgcG9zaXRpdmUgdGhpbmcuXG5cbkdpdmVuIHRoZSBjb250ZXh0LCBJIHRoaW5rIGl0J3Mgd2lzZSB0byBlbmFibGUgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIGFuZCBwb3NzaWJseSBgQlJJREdFX0VCVF9UX0ZJTFRFUmAgdG8gZmFjaWxpdGF0ZSBjb21wcmVoZW5zaXZlIHRlc3Rpbmcgb2YgdGhlIGZpbHRlciB0YWJsZXMuIEkgc2hvdWxkIHZlcmlmeSB0aGF0IGBlYnRfY2hlY2tfbWF0Y2hgIGlzIGNvcnJlY3RseSBpbnZva2VkIHdoZW4gYSBtYXRjaCBpcyBiZWluZyBldmFsdWF0ZWQsIGFzIHRoZSBkZXNjcmlwdGlvbiBzdWdnZXN0cy5cblxuTXkgZm9jdXMgc2hvdWxkIGJlIG9uIHRob3JvdWdobHkgZXhhbWluaW5nIHRoZSBmb2xsb3dpbmcgc3ltYm9sczogYGVidF9jaGVja19tYXRjaGAsIG9idmlvdXNseSwgYWxvbmcgd2l0aCBgZWJ0X2NoZWNrX2VudHJ5YCAoZm9yIHJlbGF0ZWQgZW50cnkgdmFsaWRhdGlvbiksIHRoZW4gdGhlIHRhYmxlIHRyYW5zbGF0aW9uIGxvZ2ljIGluIGB0cmFuc2xhdGVfdGFibGVgIGFuZCB0aGUgcmVwbGFjZW1lbnQgZnVuY3Rpb25zIGBkb19yZXBsYWNlYCBhbmQgYGNvbXBhdF9kb19yZXBsYWNlYCwgYW5kIGZpbmFsbHkgbWFraW5nIHN1cmUgdGhlIG5hbWUgb2YgYGRvX3JlcGxhY2VgIGlzIGluZGVlZCBjb3JyZWN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBleGFjdGx5IGhvdyB0aGUgYG0tXHUwMDNldS5uYW1lYCBmaWVsZCBpcyB1c2VkIGFjcm9zcyBhbGwgdGhlc2UgZnVuY3Rpb25zLCBhbmQgaG93IHRoZSBudWxsIHRlcm1pbmF0aW9uIGlzIChvciBpc24ndCkgZW5mb3JjZWQuIFRoaXMgYWxzbyBjb25jZXJucyBtZS4gV2UgZG8gbm90IHdhbnQgdG8gaW50cm9kdWNlIGJ1Z3MuXG5cblRoZSBwcmltYXJ5IGNvbmZpZ3VyYXRpb25zIG1lbnRpb25lZCBhcmUgYEJSSURHRV9ORl9FQlRBQkxFU19MRUdBQ1lgIGFuZCBgQlJJREdFX05GX0VCVEFCTEVTYC4gVW5kZXJzdGFuZGluZyBob3cgdGhlc2Ugc2V0dGluZ3MgaW5mbHVlbmNlIHRoZSBjb2RlIHBhdGggaXMgY3J1Y2lhbCBmb3IgdmVyaWZ5aW5nIHRoYXQgdGhlIGZpeCBpcyBlZmZlY3RpdmUgYWNyb3NzIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODE5NiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wNlQxNDozMjo1NS40MTQyNDg4NzdaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzODQ5OTk0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkb19yZXBsYWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYz04NzE9c3RhdGljIGludCB0cmFuc2xhdGVfdGFibGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy05MjItXFx0aWYgKHVkY19jbnQpIHtcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjkyMzpcXHRcXHQvKiB0aGlzIHdpbGwgZ2V0IGZyZWUnZCBpbiBkb19yZXBsYWNlKCkvZWJ0X3JlZ2lzdGVyX3RhYmxlKClcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTkyNC1cXHRcXHQgKiBpZiBhbiBlcnJvciBvY2N1cnNcXG4tLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM9OTkxPXN0YXRpYyB2b2lkIGdldF9jb3VudGVycyhjb25zdCBzdHJ1Y3QgZWJ0X2NvdW50ZXIgKm9sZGNvdW50ZXJzLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMDExLVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTAxMjpzdGF0aWMgaW50IGRvX3JlcGxhY2VfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGVidF9yZXBsYWNlICpyZXBsLFxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTAxMy1cXHRcXHRcXHQgICAgICBzdHJ1Y3QgZWJ0X3RhYmxlX2luZm8gKm5ld2luZm8pXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTExMTEtLyogcmVwbGFjZSB0aGUgdGFibGUgKi9cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jOjExMTI6c3RhdGljIGludCBkb19yZXBsYWNlKHN0cnVjdCBuZXQgKm5ldCwgc29ja3B0cl90IGFyZywgdW5zaWduZWQgaW50IGxlbilcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTExMTMte1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0xMTU2LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MTE1NzpcXHRyZXQgPSBkb19yZXBsYWNlX2ZpbmlzaChuZXQsIFxcdTAwMjZ0bXAsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMTE1OC1cXHRpZiAocmV0ID09IDApXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTIyNTM9c3RhdGljIGludCBjb21wYXRfY29weV9lYnRfcmVwbGFjZV9mcm9tX3VzZXIoc3RydWN0IGVidF9yZXBsYWNlICpyZXBsLFxcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMjg4LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjI4OTpzdGF0aWMgaW50IGNvbXBhdF9kb19yZXBsYWNlKHN0cnVjdCBuZXQgKm5ldCwgc29ja3B0cl90IGFyZywgdW5zaWduZWQgaW50IGxlbilcXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTIyOTAte1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMjk5LVxcdFxcdC8qIHRyeSByZWFsIGhhbmRsZXIgaW4gY2FzZSB1c2VybGFuZCBzdXBwbGllZCBuZWVkZWQgcGFkZGluZyAqL1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjMwMDpcXHRcXHRpZiAocmV0ID09IC1FSU5WQUwgXFx1MDAyNlxcdTAwMjYgZG9fcmVwbGFjZShuZXQsIGFyZywgbGVuKSA9PSAwKVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjMwMS1cXHRcXHRcXHRyZXQgPSAwO1xcbi0tXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yMzc2LVxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjM3NzpcXHRyZXQgPSBkb19yZXBsYWNlX2ZpbmlzaChuZXQsIFxcdTAwMjZ0bXAsIG5ld2luZm8pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjM3OC1cXHRpZiAocmV0ID09IDApXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jPTI1NTA9c3RhdGljIGludCBkb19lYnRfc2V0X2N0bChzdHJ1Y3Qgc29jayAqc2ssIGludCBjbWQsIHNvY2twdHJfdCBhcmcsXFxuLS1cXG5uZXQvYnJpZGdlL25ldGZpbHRlci9lYnRhYmxlcy5jLTI1NjQtXFx0XFx0aWYgKGluX2NvbXBhdF9zeXNjYWxsKCkpXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYzoyNTY1OlxcdFxcdFxcdHJldCA9IGNvbXBhdF9kb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2Ni1cXHRcXHRlbHNlXFxubmV0L2JyaWRnZS9uZXRmaWx0ZXIvZWJ0YWJsZXMuYy0yNTY3LSNlbmRpZlxcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmM6MjU2ODpcXHRcXHRcXHRyZXQgPSBkb19yZXBsYWNlKG5ldCwgYXJnLCBsZW4pO1xcbm5ldC9icmlkZ2UvbmV0ZmlsdGVyL2VidGFibGVzLmMtMjU2OS1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDZUMTQ6MzI6NTUuNTUyNzUyNzIxWiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NzAzOTI5NTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQb3RlbnRpYWwgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIHplcm9lZCBpbiBvbiB0aGUgY3JpdGljYWwgZnVuY3Rpb25zIGhlcmU6IGBkb19yZXBsYWNlYCwgYGNvbXBhdF9kb19yZXBsYWNlYCwgYW5kIGFsc28gYGRvX3JlcGxhY2VfZmluaXNoYC4gVGhlc2UgYXJlIGRlZmluaXRlbHkgdGhlIGtleSBwbGF5ZXJzIGluIHRoaXMgcGF0Y2guIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhpcyBwYXRjaCBhZGRyZXNzZXMgYSB2dWxuZXJhYmlsaXR5IOKAkyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgd2l0aGluIGBlYnRfY2hlY2tfbWF0Y2hgLiBUaGUgcm9vdCBjYXVzZSBpcyBhIG1hdGNoIG5hbWUgdGhhdCBpc24ndCBudWxsLXRlcm1pbmF0ZWQuIFRoaXMgaXMgdHJpZ2dlcmVkIHRocm91Z2ggdXNlciBzcGFjZSBpbnRlcmFjdGlvbiB2aWEgYHNldHNvY2tvcHRgIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AsIHdoaWNoIHNvdW5kcyBsaWtlIGEgY2xhc3NpYyBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHNvbWVvbmUgY291bGQgZXhwbG9pdC4gVGhhdCdzIGEgZ29vZCBmaW5kLiBJIHdpbGwgY2FsbCBhIGBzZXQtcmVzdWx0c2AgdG9vbCBub3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3MTksIk91dHB1dFRva2VucyI6MTY5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA2VDE0OjMzOjAwLjMyMzE0NzU2OFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NzU3MzU0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVwiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWJ0X2NoZWNrX21hdGNoXCIsXG4gICAgXCJlYnRfY2hlY2tfZW50cnlcIixcbiAgICBcInRyYW5zbGF0ZV90YWJsZVwiLFxuICAgIFwiZG9fcmVwbGFjZV9maW5pc2hcIixcbiAgICBcImRvX3JlcGxhY2VcIixcbiAgICBcImNvbXBhdF9kb19yZXBsYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTX0xFR0FDWVwiLFxuICAgIFwiQlJJREdFX05GX0VCVEFCTEVTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZWJ0X2NoZWNrX21hdGNoXCIsXG4gICAgXCJlYnRfY2hlY2tfZW50cnlcIixcbiAgICBcInRyYW5zbGF0ZV90YWJsZVwiLFxuICAgIFwiZG9fcmVwbGFjZV9maW5pc2hcIixcbiAgICBcImRvX3JlcGxhY2VcIixcbiAgICBcImNvbXBhdF9kb19yZXBsYWNlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGNoZWNrIHRvIHByZXZlbnQgYW4gb3V0LW9mLWJvdW5kcyByZWFkIGluIGBlYnRfY2hlY2tfbWF0Y2hgIHdoZW4gdGhlIG1hdGNoIG5hbWUgaXMgbm90IG51bGwtdGVybWluYXRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBlYnRhYmxlcyBsZWdhY3kgY29kZSwgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYHNldHNvY2tvcHRgIHN5c3RlbSBjYWxsIHdpdGggYEVCVF9TT19TRVRfRU5UUklFU2AuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[1] Phase: Succeeded StartedAt: 2026-07-06 14:33:33 +0000 UTC FinishedAt: 2026-07-06 14:33:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-06 14:33:33 +0000 UTC FinishedAt: 2026-07-06 14:33:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2] Phase: Succeeded StartedAt: 2026-07-06 14:33:33 +0000 UTC FinishedAt: 2026-07-06 19:15:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-06 14:33:33 +0000 UTC FinishedAt: 2026-07-06 19:15:42 +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":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-06 14:33:33 +0000 UTC FinishedAt: 2026-07-06 14:33:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-06 14:33:33 +0000 UTC FinishedAt: 2026-07-06 14:33:56 +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":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.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-workflowt4hh9/series-workflowt4hh9-convert-artifact-972878961/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-06 14:33:59 +0000 UTC FinishedAt: 2026-07-06 15:19:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-06 14:33:59 +0000 UTC FinishedAt: 2026-07-06 15:19:52 +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:*838d29f2-ca34-4552-97a7-ad18b0f46d23,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-workflowt4hh9/series-workflowt4hh9-convert-artifact-972878961/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": "b6f0ef59-6390-4ac8-acc9-9d28a3073faa", "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-workflowt4hh9/series-workflowt4hh9-build-action-1718070943/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-06 14:33:59 +0000 UTC FinishedAt: 2026-07-06 15:19:40 +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:*838d29f2-ca34-4552-97a7-ad18b0f46d23,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-workflowt4hh9/series-workflowt4hh9-convert-artifact-972878961/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": "b6f0ef59-6390-4ac8-acc9-9d28a3073faa", "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-workflowt4hh9/series-workflowt4hh9-build-action-1718070943/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-06 15:19:52 +0000 UTC FinishedAt: 2026-07-06 15:19:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-06 15:19:52 +0000 UTC FinishedAt: 2026-07-06 15:19:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-06 15:19:52 +0000 UTC FinishedAt: 2026-07-06 15:20:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-06 15:19:52 +0000 UTC FinishedAt: 2026-07-06 15:20:18 +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":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.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-workflowt4hh9/series-workflowt4hh9-convert-artifact-3617869252/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-06 15:20:30 +0000 UTC FinishedAt: 2026-07-06 15:22:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-06 15:20:30 +0000 UTC FinishedAt: 2026-07-06 15:22:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b6f0ef59-6390-4ac8-acc9-9d28a3073faa,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-workflowt4hh9/series-workflowt4hh9-build-action-1718070943/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-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-06 15:22:40 +0000 UTC FinishedAt: 2026-07-06 15:22:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-06 15:22:41 +0000 UTC FinishedAt: 2026-07-06 15:22:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-06 15:22:41 +0000 UTC FinishedAt: 2026-07-06 16:11:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-06 15:22:41 +0000 UTC FinishedAt: 2026-07-06 16:11:31 +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:*838d29f2-ca34-4552-97a7-ad18b0f46d23,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-workflowt4hh9/series-workflowt4hh9-convert-artifact-3617869252/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": "ff904312-d0f1-448c-94d4-ebdb3f0f1818", "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-workflowt4hh9/series-workflowt4hh9-build-action-1192916432/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-06 15:22:41 +0000 UTC FinishedAt: 2026-07-06 16:11:09 +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:*838d29f2-ca34-4552-97a7-ad18b0f46d23,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-workflowt4hh9/series-workflowt4hh9-convert-artifact-3617869252/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": "ff904312-d0f1-448c-94d4-ebdb3f0f1818", "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-workflowt4hh9/series-workflowt4hh9-build-action-1192916432/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-06 16:11:31 +0000 UTC FinishedAt: 2026-07-06 16:11:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-06 16:11:31 +0000 UTC FinishedAt: 2026-07-06 16:11:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-06 16:11:31 +0000 UTC FinishedAt: 2026-07-06 16:13:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-06 16:11:31 +0000 UTC FinishedAt: 2026-07-06 16:13:37 +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:*ff904312-d0f1-448c-94d4-ebdb3f0f1818,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-workflowt4hh9/series-workflowt4hh9-build-action-1192916432/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-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-06 16:13:46 +0000 UTC FinishedAt: 2026-07-06 19:15:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-06 16:13:46 +0000 UTC FinishedAt: 2026-07-06 19:15:42 +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":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"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:*b6f0ef59-6390-4ac8-acc9-9d28a3073faa,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ff904312-d0f1-448c-94d4-ebdb3f0f1818,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-workflowt4hh9/series-workflowt4hh9-build-action-1718070943/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-workflowt4hh9/series-workflowt4hh9-build-action-1192916432/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-06 16:13:46 +0000 UTC FinishedAt: 2026-07-06 16:14:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-06 16:13:46 +0000 UTC FinishedAt: 2026-07-06 16:13: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":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"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-workflowt4hh9/series-workflowt4hh9-convert-artifact-1738408909/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-06 16:13:46 +0000 UTC FinishedAt: 2026-07-06 16:13:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-06 16:13:46 +0000 UTC FinishedAt: 2026-07-06 16:13:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-06 16:13:46 +0000 UTC FinishedAt: 2026-07-06 16:13:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-06 16:14:17 +0000 UTC FinishedAt: 2026-07-06 19:15:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt4hh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["ebt_check_match","ebt_check_entry","translate_table","do_replace_finish","do_replace","compat_do_replace"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"d6456743424721a837e1509b912f362caaeecd97","config_name":"upstream-apparmor-kasan.config","enable_configs":["BRIDGE_NF_EBTABLES_LEGACY","BRIDGE_NF_EBTABLES"],"series_id":"5f6a3c1d-e162-4d36-be83-ec6487dd31d3","tree_name":"nf","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netfilter/nf.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-06 16:14:17 +0000 UTC FinishedAt: 2026-07-06 19:15:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b6f0ef59-6390-4ac8-acc9-9d28a3073faa,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ff904312-d0f1-448c-94d4-ebdb3f0f1818,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-workflowt4hh9/series-workflowt4hh9-build-action-1718070943/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-workflowt4hh9/series-workflowt4hh9-build-action-1192916432/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-workflowt4hh9/series-workflowt4hh9-convert-artifact-1738408909/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,}