Name: series-workflowg28mj Phase: Succeeded StartedAt: 2026-08-01 21:13:57 +0000 UTC FinishedAt: 2026-08-02 01:09:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[0] Phase: Succeeded StartedAt: 2026-08-01 21:13:57 +0000 UTC FinishedAt: 2026-08-01 21:28:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[0].run-triage Phase: Succeeded StartedAt: 2026-08-01 21:13:57 +0000 UTC FinishedAt: 2026-08-01 21:28:38 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "6e18bc18-47a0-46c8-b58b-63cc460060d8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "vxlan_fdb_delete_bulk", "vxlan_stop", "vxlan_dellink" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fZmRiX2RlbGV0ZV9idWxrJiMzNDssCiAgICAmIzM0O3Z4bGFuX3N0b3AmIzM0OywKICAgICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZsdXNoaW5nIFZYTEFOIEZEQiBlbnRyaWVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlbW90ZXMgbGlzdCBpcyBzaW5ndWxhci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFZYTEFOIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRsaW5rIG9wZXJhdGlvbnMgbGlrZSBidWxrIGRlbGV0ZSBvciBsaW5rIGRlbGV0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGYyNTRmMzBkZDcyYzI1NDIzMmQ1NGUyMjFjODc4N2E4ZTdjY2NlN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMjE6Mjc6MzIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG5pbmRleCBkODM0YTQ4NjVhZWNjLi5hMDBkZjEyN2RhODI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbkBAIC0zMDU4LDYgJiM0MzszMDU4LDExIEBAIHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxuIFx0XHRpZiAoIXZ4bGFuX2ZkYl9mbHVzaF9yZW1vdGVfbWF0Y2hlcyhkZXNjLCByZCkpXG4gXHRcdFx0Y29udGludWU7XG4gXG4mIzQzO1x0XHRpZiAobGlzdF9pc19zaW5ndWxhcihcdTAwMjZmLVx1MDAzZXJlbW90ZXMpKSB7XG4mIzQzO1x0XHRcdCpwX2Rlc3Ryb3lfZmRiID0gdHJ1ZTtcbiYjNDM7XHRcdFx0cmV0dXJuO1xuJiM0MztcdFx0fVxuJiM0MztcbiBcdFx0dnhsYW5fZmRiX2RzdF9kZXN0cm95KHZ4bGFuLCBmLCByZCwgdHJ1ZSk7XG4gXHRcdHJlbW90ZXNfZmx1c2hlZCA9IHRydWU7XG4gXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fZmRiX2RlbGV0ZV9idWxrJiMzNDssCiAgICAmIzM0O3Z4bGFuX3N0b3AmIzM0OywKICAgICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZsdXNoaW5nIFZYTEFOIEZEQiBlbnRyaWVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlbW90ZXMgbGlzdCBpcyBzaW5ndWxhci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFZYTEFOIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRsaW5rIG9wZXJhdGlvbnMgbGlrZSBidWxrIGRlbGV0ZSBvciBsaW5rIGRlbGV0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGYyNTRmMzBkZDcyYzI1NDIzMmQ1NGUyMjFjODc4N2E4ZTdjY2NlNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMjE6Mjc6MzIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMKaW5kZXggZDgzNGE0ODY1YWVjYy4uYTAwZGYxMjdkYTgyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYwpAQCAtMzA1OCw2ICYjNDM7MzA1OCwxMSBAQCB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3RlcyhzdHJ1Y3QgdnhsYW5fZmRiICpmLCBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAkJaWYgKCF2eGxhbl9mZGJfZmx1c2hfcmVtb3RlX21hdGNoZXMoZGVzYywgcmQpKQogCQkJY29udGludWU7CiAKJiM0MzsJCWlmIChsaXN0X2lzX3Npbmd1bGFyKCZhbXA7Zi0mZ3Q7cmVtb3RlcykpIHsKJiM0MzsJCQkqcF9kZXN0cm95X2ZkYiA9IHRydWU7CiYjNDM7CQkJcmV0dXJuOwomIzQzOwkJfQomIzQzOwogCQl2eGxhbl9mZGJfZHN0X2Rlc3Ryb3kodnhsYW4sIGYsIHJkLCB0cnVlKTsKIAkJcmVtb3Rlc19mbHVzaGVkID0gdHJ1ZTsKIAl9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxMDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVlhMQU4gRkRCIEZsdXNoIE9wdGltaXphdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNgIGZpbGUuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgdHdlYWtpbmcgdGhlIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgZnVuY3Rpb24uIFdoYXQgdGhleSYjMzk7dmUgZG9uZSBpcyBhZGQgYSBjb25kaXRpb246CgpgYGBjCgkJaWYgKGxpc3RfaXNfc2luZ3VsYXIoJmFtcDtmLSZndDtyZW1vdGVzKSkgewoJCQkqcF9kZXN0cm95X2ZkYiA9IHRydWU7CgkJCXJldHVybjsKCQl9CmBgYAoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBsaWtlbHkgYW4gb3B0aW1pemF0aW9uLiBJZiBhIGZvcndhcmRpbmcgZGF0YWJhc2UgKEZEQikgZW50cnkgYGZgIG9ubHkgaGFzIGEgc2luZ2xlIHJlbW90ZSBlbnRyeSwgYW5kIHRoaXMgbmV3IGNvZGUgaXMgaGl0LCB0aGV5JiMzOTtyZSBzZXR0aW5nIGAqcF9kZXN0cm95X2ZkYmAgdG8gdHJ1ZSBhbmQgcmV0dXJuaW5nLiBUaGlzIHN1Z2dlc3RzIHRoYXQgaWYgdGhlIGVudHJ5IGlzIHNpbmd1bGFyLCBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgZGVzdHJveWVkIHJhdGhlciB0aGFuIGdvaW5nIHRocm91Z2ggdGhlIGZ1bGwgZmx1c2ggcHJvY2Vzcywgd2hpY2ggc2F2ZXMgY3ljbGVzLCBwZXJoYXBzIGJ5IGF2b2lkaW5nIGxvY2tpbmcgb3ZlcmhlYWQgb24gdGhlIGBmYCBlbnRyeS4gSXTigJlzIGEgZ29vZCBjYXRjaCwgYmVjYXVzZSBmbHVzaGluZyBhIHNpbmdsZSBpdGVtIGZyb20gYSBsaXN0IGlzIGZhciBsZXNzIGNvbXBsZXggdGhhbiBmbHVzaGluZyBhIG11bHRpLWl0ZW0gbGlzdC4KClRvIHJlYWxseSB1bmRlcnN0YW5kIHRoZSBpbXBhY3QsIEkgbmVlZCB0byB0aG9yb3VnaGx5IHVuZGVyc3RhbmQgdGhlIGNvbnRleHRzIHdoZXJlIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgaXMgKmNhbGxlZCouIEkgbmVlZCB0byBzZWUgaWYgdGhpcyBvcHRpbWl6YXRpb24gaGFzIGFueSBlZGdlIGNhc2VzIG9yIGRlcGVuZGVuY2llcyBJIHNob3VsZCBiZSBhd2FyZSBvZi4gSSYjMzk7bGwgbmVlZCB0byB0cmFjZSB0aHJvdWdoIHRob3NlIGNhbGxpbmcgZnVuY3Rpb25zLCBsb29raW5nIGZvciBpbnRlcmFjdGlvbnMgd2l0aCBsb2Nrcywgb3RoZXIgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgZXJyb3IgaGFuZGxpbmcuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHN1YnRsZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuIEEgY2xvc2VyIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSBvdmVyYWxsIEZEQiBmbHVzaGluZyBsb2dpYyBpcyByZXF1aXJlZCB0byB2YWxpZGF0ZSB0aGUgaW50ZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDQ5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzA1MDp2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3RlcyhzdHJ1Y3QgdnhsYW5fZmRiICpmLCBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDUxLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyAqZGVzYyxcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzA3ND1zdGF0aWMgdm9pZCB2eGxhbl9mbHVzaChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzA5MS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMDkyOlx0XHRcdHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKGYsIHZ4bGFuLCBkZXNjLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwOTMtXHRcdFx0XHRcdFx0ICAgICAgXHUwMDI2ZGVzdHJveV9mZGIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NTIKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKlZ4bGFuX0ZsdXNoOiBUaW1lIHRvIEFzc2VzcyoqCgpBbHJpZ2h0LCAqdnhsYW5fZmx1c2gqLiBUaGF0JiMzOTtzIHRoZSB0cmlnZ2VyLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IHpvb20gaW4gYW5kIGFzc2VzcyB0aGUgc2l0dWF0aW9uIHdpdGggdGhhdCBmdW5jdGlvbi4gKldoYXQgcHJlY2lzZWx5IGFtIEkgbG9va2luZyBmb3I/KiBJcyBpdCBhIHJvdXRpbmUgb3BlcmF0aW9uIEkmIzM5O20gb2JzZXJ2aW5nLCBhIHBvdGVudGlhbCBwcm9ibGVtIGluZGljYXRvciwgb3IgdGhlIHN0YXJ0IG9mIGEgZGVlcCBkaXZlIGludG8gVlhMQU4gcGVyZm9ybWFuY2Ugb3IgY29udHJvbCBwbGFuZSBiZWhhdmlvcj8gVGhlIGNvbnRleHQgaXMga2V5LiBEZXBlbmRpbmcgb24gdGhlIHNjZW5hcmlvLCBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUsIGludGVyYWN0aW9uIHdpdGggdGhlIGRhdGEgcGxhbmUsIGFuZCBhbnkgcmVjZW50IGNoYW5nZXMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyB3aWxsIGxpa2VseSBsZWFkIHRvIHNvbWUgcXVlc3Rpb25zLiBEbyBJIG5lZWQgdG8gYmUgcmVhZHkgdG8gYW5hbHl6ZSBuZXR3b3JrIHRyYWZmaWMsIGV4YW1pbmUgZm9yd2FyZGluZyB0YWJsZXMsIG9yIHBvdGVudGlhbGx5IGV2ZW4gdHJvdWJsZXNob290IGNvbnRyb2wtcGxhbmUgaXNzdWVzIHJlbGF0ZWQgdG8gVlhMQU4gZW5jYXBzdWxhdGlvbj8gTGV0JiMzOTtzIGNoZWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZsdXNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xNDI1PXN0YXRpYyBlbnVtIHNrYl9kcm9wX3JlYXNvbiB2eGxhbl9zbm9vcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xNDc0LVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjE0NzU6XHRcdC8qIGNsb3NlIG9mZiByYWNlIGJldHdlZW4gdnhsYW5fZmx1c2ggYW5kIGluY29taW5nIHBhY2tldHMgKi9cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xNDc2LVx0XHRpZiAobmV0aWZfcnVubmluZyhkZXYpKVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDUwPXZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDczLS8qIFB1cmdlIHRoZSBmb3J3YXJkaW5nIHRhYmxlICovXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzA3NDpzdGF0aWMgdm9pZCB2eGxhbl9mbHVzaChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDc1LVx0XHRcdGNvbnN0IHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyAqZGVzYylcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEyMj1zdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4MC1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTgxOlx0dnhsYW5fZmx1c2godnhsYW4sIFx1MDAyNmRlc2MpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODItXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxODc9c3RhdGljIGludCB2eGxhbl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyMDAtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzIwMTpcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcdTAwMjZkZXNjKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjAyLVx0dnhsYW5fc29ja19yZWxlYXNlKHZ4bGFuKTtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDUxNj1zdGF0aWMgdm9pZCB2eGxhbl9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MjAtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDUyMTpcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcdTAwMjZkZXNjKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTIyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NDEKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkNoZWNraW5nIHRoZSBWWExBTiBGREIgQnVsayBEZWxldGUgSGFuZGxlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGlzIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGZ1bmN0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBhIG5ldGxpbmsgaGFuZGxlci4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gVGhhdCYjMzk7cyB0aGUgY3J1Y2lhbCBmaXJzdCBzdGVwLCByaWdodD8gTm93LCB0aGUgcXVlc3Rpb24gaXMsICppcyogdGhpcyBoYW5kbGVyIHByb3Blcmx5IHJlZ2lzdGVyZWQ/IEkgbmVlZCB0byBjaGVjayB0aGUgbmV0bGluayByZWdpc3RyYXRpb24gdGFibGUgdG8gdmVyaWZ5IGl0cyBwcmVzZW5jZS4gSSBuZWVkIHRvIGVuc3VyZSBpdCYjMzk7cyBzZXQgdXAgYW5kIHJlYWR5IHRvIGdvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZkYl9kZWxldGVfYnVsayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEwNj1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdnhsYW5fZGVsX2J1bGtfcG9saWN5W05EQV9NQVggJiM0MzsgMV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjEtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzEyMjpzdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIzLVx0XHRcdFx0IHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzI4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9ldGhlcl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyOTMtXHQubmRvX2ZkYl9kZWxcdFx0PSB2eGxhbl9mZGJfZGVsZXRlLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyOTQ6XHQubmRvX2ZkYl9kZWxfYnVsa1x0PSB2eGxhbl9mZGJfZGVsZXRlX2J1bGssXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5NS1cdC5uZG9fZmRiX2R1bXBcdFx0PSB2eGxhbl9mZGJfZHVtcCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjYwCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBWWExBTiBGREIgRGVsZXRpb24gTG9naWMqKgoKT2theSwgc28gSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AgaXMgaW5kZWVkIHJlZ2lzdGVyZWQgYXMgYC5uZG9fZmRiX2RlbF9idWxrYC4gVGhhdCBtZWFucyBpdCYjMzk7cyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rLCB3aGljaCBpcyB3aGF0IEkgc3VzcGVjdGVkLiBUaGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IG1vZGlmaWVzIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AsIGFuZCB0aGF0JiMzOTtzIGNhbGxlZCBieSBgdnhsYW5fZmx1c2hgLiBBbmQgKnRoYXQqIGZ1bmN0aW9uLCBgdnhsYW5fZmx1c2hgLCBpcyBjYWxsZWQgYnkgc2V2ZXJhbCBwbGFjZXM6IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgICh3aGljaCBpcyBvdXIgbWFpbiBmb2N1cyksIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYC4gU28sIHRoZXJlJiMzOTtzIGEgY2xlYXIgcGF0aCB0byBleGVjdXRpb24uCgpOb3csIGxldCYjMzk7cyBuYWlsIGRvd24gb3VyIGZvY3VzIHN5bWJvbHMuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGFuZCBgdnhsYW5fZmx1c2hgLCBidXQgSSB0aGluayBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCBpdHNlbGYgaXMgYSByZWFsbHkgc3Ryb25nIGNhbmRpZGF0ZSwgYWxvbmcgd2l0aCBgdnhsYW5fc3RvcGAgYW5kIGB2eGxhbl9kZWxsaW5rYC4gTGV0IG1lIGNoZWNrIGlmIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgaXMgc3RhdGljLiBZZXAsIGl0IGlzLiBgdnhsYW5fZmx1c2hgIGlzIGFsc28gc3RhdGljLiBBbmQgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AgaXPigKYgc3RhdGljIGFzIHdlbGw/IEhvbGQgb24sIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIEl0JiMzOTtzIHN0YXRpYywgYnV0IGl0JiMzOTtzIGFuIGVudHJ5IHBvaW50ISBUaGF0IGNvdWxkIG1lYW4gaXQmIzM5O3MgaW5saW5lZCwgb3Igbm90IGRpcmVjdGx5IHZpc2libGUuIEkgbmVlZCB0byBtYWtlIHN1cmUuCgpPa2F5LCBsZXQmIzM5O3MgY29uZmlybSB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGlzIGFuIGVudHJ5IHBvaW50LiBZZXMsIGl0JiMzOTtzIHJlZ2lzdGVyZWQgd2l0aGluIGB2eGxhbl9uZXRkZXZfZXRoZXJfb3BzYC4gUmlnaHQsIHRoYXQgbWFrZXMgc2Vuc2UuIElzIHRoZXJlIGFueSBub24tc3RhdGljIGZ1bmN0aW9uIGludm9sdmVkIGhlcmU/IEFoLCBgdnhsYW5fZGVsbGlua2AgaXMgc3RhdGljLiBTbywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgYHZ4bGFuX25ldGRldl9ldGhlcl9vcHNgIHJlZ2lzdHJhdGlvbiBiZXR0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX25ldGRldl9ldGhlcl9vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMyMzI9c3RhdGljIGludCB2eGxhbl9maWxsX21ldGFkYXRhX2RzdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjgxLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyODI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2eGxhbl9uZXRkZXZfZXRoZXJfb3BzID0ge1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyODMtXHQubmRvX2luaXRcdFx0PSB2eGxhbl9pbml0LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMzk3PXN0YXRpYyB2b2lkIHZ4bGFuX2V0aGVyX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTM0MDAtXHRkZXYtXHUwMDNlcHJpdl9mbGFncyB8PSBJRkZfTElWRV9BRERSX0NIQU5HRTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozNDAxOlx0ZGV2LVx1MDAzZW5ldGRldl9vcHMgPSBcdTAwMjZ2eGxhbl9uZXRkZXZfZXRoZXJfb3BzO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTM0MDItfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzUzCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNvbnNpZGVyaW5nIFZYTEFOIEZEQiBCdWxrIERlbGV0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGZ1bmN0aW9uLiBUaGUgY29kZSBzYXlzIGl0JiMzOTtzIHN0YXRpYywgYnV0IGl0JiMzOTtzIHVzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIHdpdGhpbiBgbmV0X2RldmljZV9vcHNgLiAgVGhhdCYjMzk7cyBhIGtleSBkZXRhaWwuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgYXZvaWQgdXNpbmcgYSBzdGF0aWMgZnVuY3Rpb24gaGVyZT8gSXMgdGhlcmUgYSBub24tc3RhdGljIGFsdGVybmF0aXZlIHRoYXQgd291bGQgYmUgYmV0dGVyPyBJIG5lZWQgdG8gYWRoZXJlIHRvIHRoZSBwcmluY2lwbGUgb2YgcHJlZmVycmluZyBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMgdG8gYXZvaWQgaW5saW5lZCBzdGF0aWMgaGVscGVycy4gVGhpcyBpcyBkdWUgdG8gZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBhbmQgaGVscHMgd2l0aCBtYWludGFpbmFiaWxpdHkuCgpIbW0sIGlmIHRoZXJlIGlzbiYjMzk7dCBhIG5vbi1zdGF0aWMgb3B0aW9uLCBJJiMzOTtsbCBmYWxsIGJhY2sgdG8gdXNpbmcgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGFsb25nc2lkZSBgdnhsYW5fZGVsbGlua2AgYW5kIGB2eGxhbl9zdG9wYCB3aGljaCBzaG91bGQgYWxsIGJlIGZpbmUuIEJ1dCB3YWl0Li4uIGV2ZW4gdGhvdWdoIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgICppcyogc3RhdGljLCB0aGUgZmFjdCB0aGF0IGl0cyBhZGRyZXNzIGlzIHRha2VuIGFuZCBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgbWVhbnMgaXQgY2FuJiMzOTt0IGJlICpjb21wbGV0ZWx5KiBpbmxpbmVkLiBUaGUgY29tcGlsZXIgaXMgZm9yY2VkIHRvIG1ha2UgYSBzdGFuZGFsb25lIGNvcHkgdG8gc2F0aXNmeSB0aGUgcG9pbnRlci4gU28gaXQgZG9lcyBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuICBJdCYjMzk7cyBub3QgdHJ1bHkgJiMzOTtpbnRlcm5hbCYjMzk7IGluIHRoYXQgc2Vuc2UuICAKClN0aWxsLCBJIHNob3VsZCBjaGVjay4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb3RoZXIgdmlhYmxlIG5vbi1zdGF0aWMgZnVuY3Rpb24gY2hvaWNlcyBhdmFpbGFibGUgYmVmb3JlIG1vdmluZyBmb3J3YXJkLiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBteSBhc3N1bXB0aW9ucyBhbmQgc2VlIGlmIGEgYmV0dGVyIG9wdGlvbiBleGlzdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZkYl9kZWxldGVfYnVsayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEwNj1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdnhsYW5fZGVsX2J1bGtfcG9saWN5W05EQV9NQVggJiM0MzsgMV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjEtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzEyMjpzdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIzLVx0XHRcdFx0IHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzI4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9ldGhlcl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyOTMtXHQubmRvX2ZkYl9kZWxcdFx0PSB2eGxhbl9mZGJfZGVsZXRlLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyOTQ6XHQubmRvX2ZkYl9kZWxfYnVsa1x0PSB2eGxhbl9mZGJfZGVsZXRlX2J1bGssXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5NS1cdC5uZG9fZmRiX2R1bXBcdFx0PSB2eGxhbl9mZGJfZHVtcCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjE5MgoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGEgU3lzdGVtJiMzOTtzIFZYTEFOIEhhbHQqKgoKQWxyaWdodCwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgc3RvcHBpbmcgVlhMQU4sIGJ1dCB0aGUgcGhyYXNlICYjMzQ7dnhsYW5fc3RvcCYjMzQ7IGp1c3QgcGluZ2VkIGEgY2VydGFpbiBmbGFnIGluIG15IGhlYWQuIEltbWVkaWF0ZWx5IEnigJltIGFza2luZzogV2hhdCBkb2VzIGB2eGxhbl9zdG9wYCAqYWN0dWFsbHkqIG1lYW4gaW4gdGhpcyBjb250ZXh0PyBJcyB0aGlzIGEgc2NyaXB0LCBhIGNvbW1hbmQsIGEgZnVuY3Rpb24gbmFtZSwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBzcGVjaWZpY2l0eSBpcyBjcnVjaWFsIGhlcmUgYmVjYXVzZSB0aGUgbnVhbmNlIG9mIGhvdyB5b3UgaGFsdCBWWExBTiBjYW4gdmFyeSB3aWxkbHkgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbi4gSXMgdGhpcyBhIGNsZWFuIHNodXRkb3duLCBhIGZvcmNlLXF1aXQsIGFuIG9yY2hlc3RyYXRpb24gY2FsbCwgb3IgYSBtb3JlIGRpcmVjdCBzeXN0ZW0tbGV2ZWwgY29udHJvbD8gSXMgaXQgZ3JhY2VmdWxseSB0ZWFyaW5nIGRvd24gdHVubmVscyBhbmQgYWRqYWNlbmN5IHRhYmxlcywgb3IganVzdCBraWxsaW5nIHRoZSBwcm9jZXNzZXMgYW5kIGxlYXZpbmcgYSBtZXNzIGJlaGluZD8gVW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIHdoYXQmIzM5O3MgKmhhcHBlbmluZyogaXMgdGhlIGZpcnN0LCB2aXRhbCBzdGVwIGJlZm9yZSBJIHN0YXJ0IGFzc3VtaW5nLiBNeSBtaW5kIG5vdyBnb2VzIHRvIGFsbCBvZiB0aGUgZWRnZSBjYXNlcyBhbmQgcXVlc3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2eGxhbl9zdG9wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTIyPXN0YXRpYyBpbnQgdnhsYW5fZmRiX2RlbGV0ZV9idWxrKHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTg2LS8qIENsZWFudXAgdGltZXIgYW5kIGZvcndhcmRpbmcgdGFibGUgb24gc2h1dGRvd24gKi9cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTg3OnN0YXRpYyBpbnQgdnhsYW5fc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODgte1xuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMjgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdnhsYW5fbmV0ZGV2X2V0aGVyX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4NS1cdC5uZG9fb3Blblx0XHQ9IHZ4bGFuX29wZW4sXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzI4NjpcdC5uZG9fc3RvcFx0XHQ9IHZ4bGFuX3N0b3AsXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4Ny1cdC5uZG9fc3RhcnRfeG1pdFx0XHQ9IHZ4bGFuX3htaXQsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMzMDU9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2eGxhbl9uZXRkZXZfcmF3X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzMwOC1cdC5uZG9fb3Blblx0XHQ9IHZ4bGFuX29wZW4sXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzMwOTpcdC5uZG9fc3RvcFx0XHQ9IHZ4bGFuX3N0b3AsXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzMxMC1cdC5uZG9fc3RhcnRfeG1pdFx0XHQ9IHZ4bGFuX3htaXQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY4NzEKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWxseSBSZWxldmFudCBQYXJhbWV0ZXIqKgoKSG1tLCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBjdXJyZW50IHByb2JsZW0uLi4gYW5kIGEgc3BlY2lmaWMgcGFyYW1ldGVyIHBvcHMgaW50byBteSBtaW5kOiBgdnhsYW5fZGVsbGlua2AuIElzIHRoYXQgcGFyYW1ldGVyIHJlbGF0ZWQgdG8gdGhlIGN1cnJlbnQgaXNzdWUsIG9yIHNob3VsZCBJIGJlIGxvb2tpbmcgZWxzZXdoZXJlPyBNeSBleHBlcnRpc2UgaXMgdGVsbGluZyBtZSB0aGF0IHRoaXMgY291bGQgYmUgYSBwb3RlbnRpYWwgcmVkIGhlcnJpbmcsIG9yIGl0IGNvdWxkIGJlIGEgdXNlZnVsIHBvaW50ZXIgdG93YXJkcyBhIGRlZXBlciBpc3N1ZSByZWxhdGVkIHRvIHRoZSBWeExBTiBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgaXQmIzM5O3MgcmVsZXZhbnQsIGFuZCBpZiBzbywgaG93LiBJcyB0aGVyZSBzb21ldGhpbmcgaW4gdGhlIGNvZGViYXNlIHRoYXQgdG91Y2hlcyB0aGlzIHBhcmFtZXRlciB0aGF0IEkgaGF2ZW4mIzM5O3QgY29uc2lkZXJlZCwgb3IgYSBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCBsZXZlcmFnZXMgaXQ/IFRpbWUgdG8gcXVpY2tseSBkaWcgaW50byB0aGUgc3Vycm91bmRpbmcgY29kZSBhbmQgZG9jdW1lbnRhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzE4Nz1zdGF0aWMgaW50IHZ4bGFuX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE5MC1cdHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyBkZXNjID0ge1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxOTE6XHRcdC8qIERlZmF1bHQgZW50cnkgaXMgZGVsZXRlZCBhdCB2eGxhbl9kZWxsaW5rLiAqL1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxOTItXHRcdC5pZ25vcmVfZGVmYXVsdF9lbnRyeSA9IHRydWUsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ0MTg9c3RhdGljIGludCB2eGxhbl9jaGFuZ2VsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRiW10sXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MTUtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDUxNjpzdGF0aWMgdm9pZCB2eGxhbl9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDUxNy17XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ2ODQ9c3RhdGljIHN0cnVjdCBydG5sX2xpbmtfb3BzIHZ4bGFuX2xpbmtfb3BzIF9fcmVhZF9tb3N0bHkgPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTItXHQuY2hhbmdlbGlua1x0PSB2eGxhbl9jaGFuZ2VsaW5rLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ2OTM6XHQuZGVsbGlua1x0PSB2eGxhbl9kZWxsaW5rLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTQtXHQuZ2V0X3NpemVcdD0gdnhsYW5fZ2V0X3NpemUsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ2OTk9c3RydWN0IG5ldF9kZXZpY2UgKnZ4bGFuX2Rldl9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lLFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NzIzLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ3MjQ6XHRcdHZ4bGFuX2RlbGxpbmsoZGV2LCBcdTAwMjZsaXN0X2tpbGwpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ3MjUtXHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkoXHUwMDI2bGlzdF9raWxsKTtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDczMz1zdGF0aWMgdm9pZCB2eGxhbl9oYW5kbGVfbG93ZXJkZXZfdW5yZWdpc3RlcihzdHJ1Y3QgdnhsYW5fbmV0ICp2bixcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDc0OC1cdFx0aWYgKGRzdC1cdTAwM2VyZW1vdGVfaWZpbmRleCA9PSBkZXYtXHUwMDNlaWZpbmRleClcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NzQ5Olx0XHRcdHZ4bGFuX2RlbGxpbmsodnhsYW4tXHUwMDNlZGV2LCBcdTAwMjZsaXN0X2tpbGwpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ3NTAtXHR9XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ5NDQ9c3RhdGljIHZvaWQgX19uZXRfZXhpdCB2eGxhbl9kZXN0cm95X3R1bm5lbHMoc3RydWN0IHZ4bGFuX25ldCAqdm4sXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ5NDktXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodnhsYW4sIG5leHQsIFx1MDAyNnZuLVx1MDAzZXZ4bGFuX2xpc3QsIG5leHQpXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDk1MDpcdFx0dnhsYW5fZGVsbGluayh2eGxhbi1cdTAwM2VkZXYsIGRldl90b19raWxsKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00OTUxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzkxMQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDExMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipWWExBTiBDb25maWd1cmF0aW9uIGFuZCBPcGVyYXRpb24gQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IFZYTEFOJiMzOTtzIGNvZGViYXNlIGFnYWluLCBhbmQgbXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgLCBgdnhsYW5fc3RvcGAsIGFuZCBgdnhsYW5fZGVsbGlua2AgYXJlIGFsbCBzdGF0aWNhbGx5IGRlZmluZWQgZnVuY3Rpb25zLiBIb3dldmVyLCB0aGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGF0IHRoZXkmIzM5O3JlICphbHNvKiBhc3NpZ25lZCB0byBmdW5jdGlvbiBwb2ludGVycyB3aXRoaW4gYG5ldF9kZXZpY2Vfb3BzYCBhbmQgYHJ0bmxfbGlua19vcHNgLiBUaGlzIGhhcyBzb21lIHNlcmlvdXMgaW1wbGljYXRpb25zLiBCZWNhdXNlIHRoZXkmIzM5O3JlIGFjY2Vzc2VkIHRocm91Z2ggdGhlc2UgcG9pbnRlcnMsIHRoZXkgYXJlIG5vdCBjb21wbGV0ZWx5IGlubGluZWQsIGFuZCB0aGV5IGFyZSBkZWZpbml0ZWx5IHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIG5ldHdvcmtpbmcgb3BlcmF0aW9ucyBhbmQsIGltcG9ydGFudGx5LCBOZXRsaW5rLiBJIHRoaW5rIHRoaXMgaXMgYSBjcml0aWNhbCBwb2ludC4KCkkmIzM5O2xsIGJlIGZvY3VzaW5nIG15IGFuYWx5c2lzIG9uIHRoZXNlIHRocmVlIGZ1bmN0aW9ucyDigJMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYCDigJMgYXMga2V5IGluZGljYXRvcnMgb2YgaG93IHRoZSBWWExBTiBtb2R1bGUgaGFuZGxlcyBvcGVyYXRpb25zIGF0IGEgbG93ZXIgbGV2ZWwuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGNvbmZpZ3VyYXRpb24gY2hvaWNlcyBhZmZlY3QgdGhlIGJlaGF2aW9yIG9mIHRoZXNlIGZ1bmN0aW9ucyBhbmQgaG93IHRoZXkgYXJlIGludm9rZWQuIE15IG5leHQgc3RlcCBpcyBhIGRlZXAgZGl2ZSBpbnRvIHRoZSBWWExBTiBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZGV0ZXJtaW5lIGhvdyB0aG9zZSBwYXJhbWV0ZXJzIGluZmx1ZW5jZSB0aGUgZXhlY3V0aW9uIHBhdGhzIHRoYXQgdWx0aW1hdGVseSBpbnZvbHZlIHRoZXNlIHN5bWJvbHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBWWExBTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMjktXG5kcml2ZXJzL25ldC9LY29uZmlnOjIzMDpjb25maWcgVlhMQU5cbmRyaXZlcnMvbmV0L0tjb25maWctMjMxLVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzODIKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqSW52ZXN0aWdhdGluZyBWWExBTiBDb25maWd1cmF0aW9uIGluIHRoZSBLZXJuZWwqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIFZYTEFOIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgbG9jYXRlZCB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoZSBuYXR1cmFsIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBrZXJuZWwmIzM5O3Mgc3RydWN0dXJlLCBpcyB0aGUgYGRyaXZlcnMvbmV0YCBkaXJlY3RvcnkuIEl0JiMzOTtzIGFsbW9zdCBhbHdheXMgd2hlcmUgbmV0d29ya2luZy1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHJlc2lkZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIEkgc2hvdWxkIGxvb2sgYXQgYEtjb25maWdgIGZpbGVzIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gVGhlc2UgYEtjb25maWdgIGZpbGVzIGFyZSB0aGUgYmFja2JvbmUgb2YgdGhlIGtlcm5lbCYjMzk7cyBjb25maWd1cmF0aW9uIHN5c3RlbSwgc28gdGhhdCYjMzk7cyB3aGVyZSB0aGUgZGVmaW5pdGlvbiBvZiBmZWF0dXJlcyB3aWxsIGJlLiBJIG5lZWQgdG8gY29uZmlybSBpZiBWWExBTiBpcyBldmVuIHN1cHBvcnRlZCBhbmQsIGlmIHNvLCBob3cgaXQgaXMgZXhwb3NlZCB0byB1c2VycyBhbmQgd2hlcmUgSSBtaWdodCBiZSBhYmxlIHRvIGZpbmQgcmVsZXZhbnQgc2V0dGluZ3MsIHNvIEkgd2lsbCBzdGFydCB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMzA6XHRjb25maWcgVlhMQU5cbiAyMzE6XHRcdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgZVh0ZW5zaWJsZSBMb2NhbCBBcmVhIE5ldHdvcmsgKFZYTEFOKVwmIzM0O1xuIDIzMjpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gMjMzOlx0XHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcbiAyMzQ6XHRcdHNlbGVjdCBHUk9fQ0VMTFNcbiAyMzU6XHRcdGhlbHBcbiAyMzY6XHRcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2eGxhbiB2aXJ0dWFsIGludGVyZmFjZXMgdGhhdCBwcm92aWRlXG4gMjM3Olx0XHQgIExheWVyIDIgTmV0d29ya3Mgb3ZlciBMYXllciAzIE5ldHdvcmtzLiBWWExBTiBpcyBvZnRlbiB1c2VkXG4gMjM4Olx0XHQgIHRvIHR1bm5lbCB2aXJ0dWFsIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlxuIDIzOTpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6XG4gMjQwOlx0XHQgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbWFoYWxpbmdhbS1kdXR0LWRjb3BzLXZ4bGFuLTAyXG4gMjQxOlx0XG4gMjQyOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyNDM6XHRcdCAgd2lsbCBiZSBjYWxsZWQgdnhsYW4uXG4gMjQ0Olx0XG4gMjQ1Olx0Y29uZmlnIEdFTkVWRVxuIDI0NjpcdFx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBOZXR3b3JrIFZpcnR1YWxpemF0aW9uIEVuY2Fwc3VsYXRpb25cJiMzNDtcbiAyNDc6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDI0ODpcdFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4gMjQ5Olx0XHRzZWxlY3QgR1JPX0NFTExTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg5MjEKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAxODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWWExBTiBDb25maWd1cmF0aW9uIFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGlzIGNlbnRlcmVkIGFyb3VuZCBgVlhMQU5gLCBhbmQgaXQgcmVsaWVzIG9uIGBJTkVUYC4gVGhhdCBtZWFucywgZm9yIGVuYWJsaW5nIHRoaXMgZnVuY3Rpb25hbGl0eSwgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBhYnNvbHV0ZWx5IGluY2x1ZGUgYCYjMzQ7VlhMQU4mIzM0O2AuIE1ha2VzIHNlbnNlLgoKVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBpbiBgZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jYCwgc3BlY2lmaWNhbGx5IHRoZSBmdW5jdGlvbiBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIGFkZGluZyBhIGNvbmRpdGlvbmFsIGNoZWNrOiBgbGlzdF9pc19zaW5ndWxhcigmYW1wO2YtJmd0O3JlbW90ZXMpYC4gSWYgdGhlIGxpc3QgYGYtJmd0O3JlbW90ZXNgIGlzIHNpbmd1bGFyLCBtZWFuaW5nIHRoZXJlJiMzOTtzIG9ubHkgb25lIGVudHJ5LCB0aGVuIGAqcF9kZXN0cm95X2ZkYiA9IHRydWVgIGlzIHNldCwgYW5kIHRoZSBmdW5jdGlvbiByZXR1cm5zLiBUaGlzIHNvdW5kcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGxpa2VseSBhIGJ1ZyBmaXggb3IgYSBuZXcgZmVhdHVyZS4gRGVmaW5pdGVseSBzb21ldGhpbmcgd29ydGggc2NydXRpbml6aW5nLgoKTXkgZ3V0IGZlZWxpbmcgaXMgdG8gZnV6eiBpdC4gV2Ugc2hvdWxkIGZvY3VzIG91ciBhdHRlbnRpb24gb24gdGhlIHN5bWJvbHMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYC4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBsaWtlbHkgZW50cnkgcG9pbnRzIHRvIHByb2JlIHRoaXMgbmV3IGNvbmRpdGlvbmFsIGxvZ2ljLgoKQnV0IHdhaXQsIGxldCYjMzk7cyBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB0aGF0IGNhbGwgZWl0aGVyIGB2eGxhbl9mbHVzaGAgb3IgdGhpcyBtb2RpZmllZCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGZ1bmN0aW9uLiBJdCYjMzk7cyBhbHdheXMgZ29vZCB0byBoYXZlIHRoYXQgYmlnIHBpY3R1cmUgdW5kZXJzdGFuZGluZy4gVGhhdCBjb3VsZCBoaWdobGlnaHQgc29tZXRoaW5nIGludGVyZXN0aW5nIG9yIHByb3ZpZGUgYW5vdGhlciBmb2N1cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnhsYW5fZmx1c2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTE0MjU9c3RhdGljIGVudW0gc2tiX2Ryb3BfcmVhc29uIHZ4bGFuX3Nub29wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzQtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTQ3NTpcdFx0LyogY2xvc2Ugb2ZmIHJhY2UgYmV0d2VlbiB2eGxhbl9mbHVzaCBhbmQgaW5jb21pbmcgcGFja2V0cyAqL1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzYtXHRcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMwNTA9dnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXMoc3RydWN0IHZ4bGFuX2ZkYiAqZiwgc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzMtLyogUHVyZ2UgdGhlIGZvcndhcmRpbmcgdGFibGUgKi9cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMDc0OnN0YXRpYyB2b2lkIHZ4bGFuX2ZsdXNoKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzUtXHRcdFx0Y29uc3Qgc3RydWN0IHZ4bGFuX2ZkYl9mbHVzaF9kZXNjICpkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTIyPXN0YXRpYyBpbnQgdnhsYW5fZmRiX2RlbGV0ZV9idWxrKHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTgwLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxODE6XHR2eGxhbl9mbHVzaCh2eGxhbiwgXHUwMDI2ZGVzYyk7XG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4Mi1cbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzE4Nz1zdGF0aWMgaW50IHZ4bGFuX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzIwMC1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjAxOlx0dnhsYW5fZmx1c2godnhsYW4sIFx1MDAyNmRlc2MpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyMDItXHR2eGxhbl9zb2NrX3JlbGVhc2UodnhsYW4pO1xuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00NTE2PXN0YXRpYyB2b2lkIHZ4bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDUyMC1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NTIxOlx0dnhsYW5fZmx1c2godnhsYW4sIFx1MDAyNmRlc2MpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MjItXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMTE5CgkJCQkJCQlvdXRwdXQ6IDExMgoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBWWExBTiBDb2RlIENoYW5nZXMqKgoKT2theSwgc28gSSYjMzk7dmUgdGFrZW4gYSBsb29rIGF0IHRoZXNlIGNoYW5nZXMuIEl0IHNlZW1zIHdlJiMzOTtyZSBwcmltYXJpbHkgY29uY2VybmVkIHdpdGggdGhyZWUgc3BlY2lmaWMgZnVuY3Rpb25zOiBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCwgYHZ4bGFuX3N0b3BgLCBhbmQgYHZ4bGFuX2RlbGxpbmtgLiBUaGVzZSBhcmUgdGhlIGtleSBhcmVhcyBvZiBmb2N1cy4gVGhleSYjMzk7cmUgYWxsIHN0YXRpYyBhbmQgcmVnaXN0ZXJlZCBhcyBjYWxsYmFja3MsIHdoaWNoIHN1Z2dlc3RzIHRoZXkmIzM5O3JlIGltcG9ydGFudCBlbnRyeSBwb2ludHMgZm9yIHNwZWNpZmljIFZYTEFOIG9wZXJhdGlvbnMuIEkmIzM5O2xsIGRlZmluaXRlbHkga2VlcCB0aG9zZSBzeW1ib2xzIGluIG1pbmQgYXMgSSBkZWx2ZSBkZWVwZXIuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBtb2RpZmljYXRpb25z4oCUc3BlY2lmaWNhbGx5IHRoZSBhZGp1c3RtZW50cyB0byBGREIgZW50cnkgZmx1c2hpbmcsIGVzcGVjaWFsbHkgaW4gdGhlIHNpbmd1bGFyICYjMzQ7cmVtb3RlcyBsaXN0JiMzNDsgc2NlbmFyaW/igJR0aGlzIHdhcnJhbnRzIGZvY3VzZWQgYXR0ZW50aW9uLiBUaGUgZmFjdCB0aGF0IHRoZSBjaGFuZ2VzIGltcGFjdCB0aGUgY29yZSBWWExBTiBkcml2ZXIgYW5kIGFyZSB0cmlnZ2VyZWQgYnkgbmV0bGluayBvcGVyYXRpb25zIHN1Y2ggYXMgYnVsayBkZWxldGUgb3IgbGluayBkZWxldGlvbiBzdWdnZXN0cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcmVxdWlyZXMgdGhvcm91Z2ggZnV6emluZy4gSSYjMzk7bGwgZmxhZyB0aGlzIGFzICYjMzQ7V29ydGhGdXp6aW5nLCYjMzQ7IGFuZCB0aGUgJiMzNDtFbmFibGVDb25maWdzJiMzNDsgd2lsbCBkZWZpbml0ZWx5IGluY2x1ZGUgJiMzNDtWWExBTiYjMzQ7LiBNeSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIHRvdWNoIGNyaXRpY2FsIFZYTEFOIGZ1bmN0aW9uYWxpdHkgYW5kIGNvdWxkIGhhdmUgdW5leHBlY3RlZCBjb25zZXF1ZW5jZXMgd2hlbiBoYW5kbGluZyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucywgcGFydGljdWxhcmx5IHJlbGF0ZWQgdG8gdGhlIGZsdXNoaW5nIG9mIEZEQiBlbnRyaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VlhMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2eGxhbl9mZGJfZGVsZXRlX2J1bGsmIzM0OywKICAgICYjMzQ7dnhsYW5fc3RvcCYjMzQ7LAogICAgJiMzNDt2eGxhbl9kZWxsaW5rJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fZmRiX2RlbGV0ZV9idWxrJiMzNDssCiAgICAmIzM0O3Z4bGFuX3N0b3AmIzM0OywKICAgICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZsdXNoaW5nIFZYTEFOIEZEQiBlbnRyaWVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlbW90ZXMgbGlzdCBpcyBzaW5ndWxhci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFZYTEFOIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRsaW5rIG9wZXJhdGlvbnMgbGlrZSBidWxrIGRlbGV0ZSBvciBsaW5rIGRlbGV0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6MzMuNTYwMTM1MDFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzQ1NzQ2OTU4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWWExBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ4bGFuX2ZkYl9kZWxldGVfYnVsa1wiLFxuICAgIFwidnhsYW5fc3RvcFwiLFxuICAgIFwidnhsYW5fZGVsbGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI3OjMzLjU2MDE0MTM5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTQzOTI4MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0ZjI1NGYzMGRkNzJjMjU0MjMyZDU0ZTIyMWM4Nzg3YThlN2NjY2U3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMjE6Mjc6MzIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXFxuaW5kZXggZDgzNGE0ODY1YWVjYy4uYTAwZGYxMjdkYTgyNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcXG5AQCAtMzA1OCw2ICszMDU4LDExIEBAIHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbiBcXHRcXHRpZiAoIXZ4bGFuX2ZkYl9mbHVzaF9yZW1vdGVfbWF0Y2hlcyhkZXNjLCByZCkpXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXG4rXFx0XFx0aWYgKGxpc3RfaXNfc2luZ3VsYXIoXFx1MDAyNmYtXFx1MDAzZXJlbW90ZXMpKSB7XFxuK1xcdFxcdFxcdCpwX2Rlc3Ryb3lfZmRiID0gdHJ1ZTtcXG4rXFx0XFx0XFx0cmV0dXJuO1xcbitcXHRcXHR9XFxuK1xcbiBcXHRcXHR2eGxhbl9mZGJfZHN0X2Rlc3Ryb3kodnhsYW4sIGYsIHJkLCB0cnVlKTtcXG4gXFx0XFx0cmVtb3Rlc19mbHVzaGVkID0gdHJ1ZTtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzozMy44NzUxNDM2ODVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MzE0MjQ1MjEyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWWExBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ4bGFuX2ZkYl9kZWxldGVfYnVsa1wiLFxuICAgIFwidnhsYW5fc3RvcFwiLFxuICAgIFwidnhsYW5fZGVsbGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRmMjU0ZjMwZGQ3MmMyNTQyMzJkNTRlMjIxYzg3ODdhOGU3Y2NjZTdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDIxOjI3OjMyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG5pbmRleCBkODM0YTQ4NjVhZWNjLi5hMDBkZjEyN2RhODI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbkBAIC0zMDU4LDYgKzMwNTgsMTEgQEAgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXMoc3RydWN0IHZ4bGFuX2ZkYiAqZiwgc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXHRcdGlmICghdnhsYW5fZmRiX2ZsdXNoX3JlbW90ZV9tYXRjaGVzKGRlc2MsIHJkKSlcbiBcdFx0XHRjb250aW51ZTtcbiBcbitcdFx0aWYgKGxpc3RfaXNfc2luZ3VsYXIoXHUwMDI2Zi1cdTAwM2VyZW1vdGVzKSkge1xuK1x0XHRcdCpwX2Rlc3Ryb3lfZmRiID0gdHJ1ZTtcbitcdFx0XHRyZXR1cm47XG4rXHRcdH1cbitcbiBcdFx0dnhsYW5fZmRiX2RzdF9kZXN0cm95KHZ4bGFuLCBmLCByZCwgdHJ1ZSk7XG4gXHRcdHJlbW90ZXNfZmx1c2hlZCA9IHRydWU7XG4gXHR9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzozMy44NzUxNDQ4NTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDM0MTU0OTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFZYTEFOIEZEQiBGbHVzaCBPcHRpbWl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY2AgZmlsZS4gU3BlY2lmaWNhbGx5LCBpdCdzIHR3ZWFraW5nIHRoZSBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGZ1bmN0aW9uLiBXaGF0IHRoZXkndmUgZG9uZSBpcyBhZGQgYSBjb25kaXRpb246XG5cbmBgYGNcblx0XHRpZiAobGlzdF9pc19zaW5ndWxhcihcdTAwMjZmLVx1MDAzZXJlbW90ZXMpKSB7XG5cdFx0XHQqcF9kZXN0cm95X2ZkYiA9IHRydWU7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuYGBgXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgbGlrZWx5IGFuIG9wdGltaXphdGlvbi4gSWYgYSBmb3J3YXJkaW5nIGRhdGFiYXNlIChGREIpIGVudHJ5IGBmYCBvbmx5IGhhcyBhIHNpbmdsZSByZW1vdGUgZW50cnksIGFuZCB0aGlzIG5ldyBjb2RlIGlzIGhpdCwgdGhleSdyZSBzZXR0aW5nIGAqcF9kZXN0cm95X2ZkYmAgdG8gdHJ1ZSBhbmQgcmV0dXJuaW5nLiBUaGlzIHN1Z2dlc3RzIHRoYXQgaWYgdGhlIGVudHJ5IGlzIHNpbmd1bGFyLCBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgZGVzdHJveWVkIHJhdGhlciB0aGFuIGdvaW5nIHRocm91Z2ggdGhlIGZ1bGwgZmx1c2ggcHJvY2Vzcywgd2hpY2ggc2F2ZXMgY3ljbGVzLCBwZXJoYXBzIGJ5IGF2b2lkaW5nIGxvY2tpbmcgb3ZlcmhlYWQgb24gdGhlIGBmYCBlbnRyeS4gSXTigJlzIGEgZ29vZCBjYXRjaCwgYmVjYXVzZSBmbHVzaGluZyBhIHNpbmdsZSBpdGVtIGZyb20gYSBsaXN0IGlzIGZhciBsZXNzIGNvbXBsZXggdGhhbiBmbHVzaGluZyBhIG11bHRpLWl0ZW0gbGlzdC5cblxuVG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGltcGFjdCwgSSBuZWVkIHRvIHRob3JvdWdobHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dHMgd2hlcmUgYHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzYCBpcyAqY2FsbGVkKi4gSSBuZWVkIHRvIHNlZSBpZiB0aGlzIG9wdGltaXphdGlvbiBoYXMgYW55IGVkZ2UgY2FzZXMgb3IgZGVwZW5kZW5jaWVzIEkgc2hvdWxkIGJlIGF3YXJlIG9mLiBJJ2xsIG5lZWQgdG8gdHJhY2UgdGhyb3VnaCB0aG9zZSBjYWxsaW5nIGZ1bmN0aW9ucywgbG9va2luZyBmb3IgaW50ZXJhY3Rpb25zIHdpdGggbG9ja3MsIG90aGVyIGRhdGEgc3RydWN0dXJlcywgYW5kIGVycm9yIGhhbmRsaW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHN1YnRsZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuIEEgY2xvc2VyIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSBvdmVyYWxsIEZEQiBmbHVzaGluZyBsb2dpYyBpcyByZXF1aXJlZCB0byB2YWxpZGF0ZSB0aGUgaW50ZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTAxLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6MzguMzA5MzAzNzQ0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzODQ5NjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzA0OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMDUwOnZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDUxLVxcdFxcdFxcdCAgICAgIGNvbnN0IHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyAqZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDc0PXN0YXRpYyB2b2lkIHZ4bGFuX2ZsdXNoKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwOTEtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMwOTI6XFx0XFx0XFx0dnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXMoZiwgdnhsYW4sIGRlc2MsXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwOTMtXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNmRlc3Ryb3lfZmRiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6MzguMzUzMTU5MTUzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzODUwMzk5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCBJJ20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKlZ4bGFuX0ZsdXNoOiBUaW1lIHRvIEFzc2VzcyoqXG5cbkFscmlnaHQsICp2eGxhbl9mbHVzaCouIFRoYXQncyB0aGUgdHJpZ2dlci4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBpbW1lZGlhdGVseSB6b29tIGluIGFuZCBhc3Nlc3MgdGhlIHNpdHVhdGlvbiB3aXRoIHRoYXQgZnVuY3Rpb24uICpXaGF0IHByZWNpc2VseSBhbSBJIGxvb2tpbmcgZm9yPyogSXMgaXQgYSByb3V0aW5lIG9wZXJhdGlvbiBJJ20gb2JzZXJ2aW5nLCBhIHBvdGVudGlhbCBwcm9ibGVtIGluZGljYXRvciwgb3IgdGhlIHN0YXJ0IG9mIGEgZGVlcCBkaXZlIGludG8gVlhMQU4gcGVyZm9ybWFuY2Ugb3IgY29udHJvbCBwbGFuZSBiZWhhdmlvcj8gVGhlIGNvbnRleHQgaXMga2V5LiBEZXBlbmRpbmcgb24gdGhlIHNjZW5hcmlvLCBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUsIGludGVyYWN0aW9uIHdpdGggdGhlIGRhdGEgcGxhbmUsIGFuZCBhbnkgcmVjZW50IGNoYW5nZXMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyB3aWxsIGxpa2VseSBsZWFkIHRvIHNvbWUgcXVlc3Rpb25zLiBEbyBJIG5lZWQgdG8gYmUgcmVhZHkgdG8gYW5hbHl6ZSBuZXR3b3JrIHRyYWZmaWMsIGV4YW1pbmUgZm9yd2FyZGluZyB0YWJsZXMsIG9yIHBvdGVudGlhbGx5IGV2ZW4gdHJvdWJsZXNob290IGNvbnRyb2wtcGxhbmUgaXNzdWVzIHJlbGF0ZWQgdG8gVlhMQU4gZW5jYXBzdWxhdGlvbj8gTGV0J3MgY2hlY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo0MS4zOTE2NjU1NzRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQwODg1MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fZmx1c2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xNDI1PXN0YXRpYyBlbnVtIHNrYl9kcm9wX3JlYXNvbiB2eGxhbl9zbm9vcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzQtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjE0NzU6XFx0XFx0LyogY2xvc2Ugb2ZmIHJhY2UgYmV0d2VlbiB2eGxhbl9mbHVzaCBhbmQgaW5jb21pbmcgcGFja2V0cyAqL1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xNDc2LVxcdFxcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzA1MD12eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3RlcyhzdHJ1Y3QgdnhsYW5fZmRiICpmLCBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDczLS8qIFB1cmdlIHRoZSBmb3J3YXJkaW5nIHRhYmxlICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMwNzQ6c3RhdGljIHZvaWQgdnhsYW5fZmx1c2goc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzUtXFx0XFx0XFx0Y29uc3Qgc3RydWN0IHZ4bGFuX2ZkYl9mbHVzaF9kZXNjICpkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxMjI9c3RhdGljIGludCB2eGxhbl9mZGJfZGVsZXRlX2J1bGsoc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4MC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzE4MTpcXHR2eGxhbl9mbHVzaCh2eGxhbiwgXFx1MDAyNmRlc2MpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxODc9c3RhdGljIGludCB2eGxhbl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzIwMC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzIwMTpcXHR2eGxhbl9mbHVzaCh2eGxhbiwgXFx1MDAyNmRlc2MpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjAyLVxcdHZ4bGFuX3NvY2tfcmVsZWFzZSh2eGxhbik7XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDUxNj1zdGF0aWMgdm9pZCB2eGxhbl9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDUyMC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDUyMTpcXHR2eGxhbl9mbHVzaCh2eGxhbiwgXFx1MDAyNmRlc2MpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTIyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo0MS40MzU3NTk1NTRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjA0MzczNjA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkNoZWNraW5nIHRoZSBWWExBTiBGREIgQnVsayBEZWxldGUgSGFuZGxlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGludG8gdGhpcyBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQncyBhIG5ldGxpbmsgaGFuZGxlci4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gVGhhdCdzIHRoZSBjcnVjaWFsIGZpcnN0IHN0ZXAsIHJpZ2h0PyBOb3csIHRoZSBxdWVzdGlvbiBpcywgKmlzKiB0aGlzIGhhbmRsZXIgcHJvcGVybHkgcmVnaXN0ZXJlZD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBuZXRsaW5rIHJlZ2lzdHJhdGlvbiB0YWJsZSB0byB2ZXJpZnkgaXRzIHByZXNlbmNlLiBJIG5lZWQgdG8gZW5zdXJlIGl0J3Mgc2V0IHVwIGFuZCByZWFkeSB0byBnby5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc0MSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI3OjQ0LjY0MDEzNTYxMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjUyMDM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2eGxhbl9mZGJfZGVsZXRlX2J1bGtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTA2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB2eGxhbl9kZWxfYnVsa19wb2xpY3lbTkRBX01BWCArIDFdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjEtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxMjI6c3RhdGljIGludCB2eGxhbl9mZGJfZGVsZXRlX2J1bGsoc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjMtXFx0XFx0XFx0XFx0IHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMjgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdnhsYW5fbmV0ZGV2X2V0aGVyX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjkzLVxcdC5uZG9fZmRiX2RlbFxcdFxcdD0gdnhsYW5fZmRiX2RlbGV0ZSxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzI5NDpcXHQubmRvX2ZkYl9kZWxfYnVsa1xcdD0gdnhsYW5fZmRiX2RlbGV0ZV9idWxrLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjk1LVxcdC5uZG9fZmRiX2R1bXBcXHRcXHQ9IHZ4bGFuX2ZkYl9kdW1wLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo0NC42ODI2NjE5NTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzMzNjY2MjcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBWWExBTiBGREIgRGVsZXRpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGlzIGluZGVlZCByZWdpc3RlcmVkIGFzIGAubmRvX2ZkYl9kZWxfYnVsa2AuIFRoYXQgbWVhbnMgaXQncyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rLCB3aGljaCBpcyB3aGF0IEkgc3VzcGVjdGVkLiBUaGUgcGF0Y2ggSSdtIGxvb2tpbmcgYXQgbW9kaWZpZXMgYHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzYCwgYW5kIHRoYXQncyBjYWxsZWQgYnkgYHZ4bGFuX2ZsdXNoYC4gQW5kICp0aGF0KiBmdW5jdGlvbiwgYHZ4bGFuX2ZsdXNoYCwgaXMgY2FsbGVkIGJ5IHNldmVyYWwgcGxhY2VzOiBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCAod2hpY2ggaXMgb3VyIG1haW4gZm9jdXMpLCBgdnhsYW5fc3RvcGAsIGFuZCBgdnhsYW5fZGVsbGlua2AuIFNvLCB0aGVyZSdzIGEgY2xlYXIgcGF0aCB0byBleGVjdXRpb24uXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIG91ciBmb2N1cyBzeW1ib2xzLiBJJ20gZ29pbmcgdG8gbG9vayBhdCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGFuZCBgdnhsYW5fZmx1c2hgLCBidXQgSSB0aGluayBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCBpdHNlbGYgaXMgYSByZWFsbHkgc3Ryb25nIGNhbmRpZGF0ZSwgYWxvbmcgd2l0aCBgdnhsYW5fc3RvcGAgYW5kIGB2eGxhbl9kZWxsaW5rYC4gTGV0IG1lIGNoZWNrIGlmIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgaXMgc3RhdGljLiBZZXAsIGl0IGlzLiBgdnhsYW5fZmx1c2hgIGlzIGFsc28gc3RhdGljLiBBbmQgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AgaXPigKYgc3RhdGljIGFzIHdlbGw/IEhvbGQgb24sIHRoYXQncyBpbnRlcmVzdGluZy4gSXQncyBzdGF0aWMsIGJ1dCBpdCdzIGFuIGVudHJ5IHBvaW50ISBUaGF0IGNvdWxkIG1lYW4gaXQncyBpbmxpbmVkLCBvciBub3QgZGlyZWN0bHkgdmlzaWJsZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZS5cblxuT2theSwgbGV0J3MgY29uZmlybSB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGlzIGFuIGVudHJ5IHBvaW50LiBZZXMsIGl0J3MgcmVnaXN0ZXJlZCB3aXRoaW4gYHZ4bGFuX25ldGRldl9ldGhlcl9vcHNgLiBSaWdodCwgdGhhdCBtYWtlcyBzZW5zZS4gSXMgdGhlcmUgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24gaW52b2x2ZWQgaGVyZT8gQWgsIGB2eGxhbl9kZWxsaW5rYCBpcyBzdGF0aWMuIFNvLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBgdnhsYW5fbmV0ZGV2X2V0aGVyX29wc2AgcmVnaXN0cmF0aW9uIGJldHRlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI2MCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo1Mi4wMTYzMzE0NzRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNzE0OTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX25ldGRldl9ldGhlcl9vcHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMjMyPXN0YXRpYyBpbnQgdnhsYW5fZmlsbF9tZXRhZGF0YV9kc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjgxLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjgyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdnhsYW5fbmV0ZGV2X2V0aGVyX29wcyA9IHtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4My1cXHQubmRvX2luaXRcXHRcXHQ9IHZ4bGFuX2luaXQsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzM5Nz1zdGF0aWMgdm9pZCB2eGxhbl9ldGhlcl9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTM0MDAtXFx0ZGV2LVxcdTAwM2Vwcml2X2ZsYWdzIHw9IElGRl9MSVZFX0FERFJfQ0hBTkdFO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozNDAxOlxcdGRldi1cXHUwMDNlbmV0ZGV2X29wcyA9IFxcdTAwMjZ2eGxhbl9uZXRkZXZfZXRoZXJfb3BzO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zNDAyLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6NTIuMDYwMDUzNjAzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4Mjk1ODY5MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ29uc2lkZXJpbmcgVlhMQU4gRkRCIEJ1bGsgRGVsZXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGZ1bmN0aW9uLiBUaGUgY29kZSBzYXlzIGl0J3Mgc3RhdGljLCBidXQgaXQncyB1c2VkIGFzIGEgZnVuY3Rpb24gcG9pbnRlciB3aXRoaW4gYG5ldF9kZXZpY2Vfb3BzYC4gIFRoYXQncyBhIGtleSBkZXRhaWwuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgYXZvaWQgdXNpbmcgYSBzdGF0aWMgZnVuY3Rpb24gaGVyZT8gSXMgdGhlcmUgYSBub24tc3RhdGljIGFsdGVybmF0aXZlIHRoYXQgd291bGQgYmUgYmV0dGVyPyBJIG5lZWQgdG8gYWRoZXJlIHRvIHRoZSBwcmluY2lwbGUgb2YgcHJlZmVycmluZyBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMgdG8gYXZvaWQgaW5saW5lZCBzdGF0aWMgaGVscGVycy4gVGhpcyBpcyBkdWUgdG8gZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBhbmQgaGVscHMgd2l0aCBtYWludGFpbmFiaWxpdHkuXG5cbkhtbSwgaWYgdGhlcmUgaXNuJ3QgYSBub24tc3RhdGljIG9wdGlvbiwgSSdsbCBmYWxsIGJhY2sgdG8gdXNpbmcgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGFsb25nc2lkZSBgdnhsYW5fZGVsbGlua2AgYW5kIGB2eGxhbl9zdG9wYCB3aGljaCBzaG91bGQgYWxsIGJlIGZpbmUuIEJ1dCB3YWl0Li4uIGV2ZW4gdGhvdWdoIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgICppcyogc3RhdGljLCB0aGUgZmFjdCB0aGF0IGl0cyBhZGRyZXNzIGlzIHRha2VuIGFuZCBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgbWVhbnMgaXQgY2FuJ3QgYmUgKmNvbXBsZXRlbHkqIGlubGluZWQuIFRoZSBjb21waWxlciBpcyBmb3JjZWQgdG8gbWFrZSBhIHN0YW5kYWxvbmUgY29weSB0byBzYXRpc2Z5IHRoZSBwb2ludGVyLiBTbyBpdCBkb2VzIGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gIEl0J3Mgbm90IHRydWx5ICdpbnRlcm5hbCcgaW4gdGhhdCBzZW5zZS4gIFxuXG5TdGlsbCwgSSBzaG91bGQgY2hlY2suIExldCdzIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb3RoZXIgdmlhYmxlIG5vbi1zdGF0aWMgZnVuY3Rpb24gY2hvaWNlcyBhdmFpbGFibGUgYmVmb3JlIG1vdmluZyBmb3J3YXJkLiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb25zIGFuZCBzZWUgaWYgYSBiZXR0ZXIgb3B0aW9uIGV4aXN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM1MywiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo1Ni44ODk2NDMwMTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDk0NzAwMzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fZmRiX2RlbGV0ZV9idWxrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEwNj1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdnhsYW5fZGVsX2J1bGtfcG9saWN5W05EQV9NQVggKyAxXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIxLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTIyOnN0YXRpYyBpbnQgdnhsYW5fZmRiX2RlbGV0ZV9idWxrKHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIzLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzI4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9ldGhlcl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5My1cXHQubmRvX2ZkYl9kZWxcXHRcXHQ9IHZ4bGFuX2ZkYl9kZWxldGUsXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyOTQ6XFx0Lm5kb19mZGJfZGVsX2J1bGtcXHQ9IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5NS1cXHQubmRvX2ZkYl9kdW1wXFx0XFx0PSB2eGxhbl9mZGJfZHVtcCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6NTguNTk5MTE3NTM4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2ODkyNzQyNTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBhIFN5c3RlbSdzIFZYTEFOIEhhbHQqKlxuXG5BbHJpZ2h0LCBzbyB3ZSdyZSBsb29raW5nIGF0IHN0b3BwaW5nIFZYTEFOLCBidXQgdGhlIHBocmFzZSBcInZ4bGFuX3N0b3BcIiBqdXN0IHBpbmdlZCBhIGNlcnRhaW4gZmxhZyBpbiBteSBoZWFkLiBJbW1lZGlhdGVseSBJ4oCZbSBhc2tpbmc6IFdoYXQgZG9lcyBgdnhsYW5fc3RvcGAgKmFjdHVhbGx5KiBtZWFuIGluIHRoaXMgY29udGV4dD8gSXMgdGhpcyBhIHNjcmlwdCwgYSBjb21tYW5kLCBhIGZ1bmN0aW9uIG5hbWUsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBUaGUgc3BlY2lmaWNpdHkgaXMgY3J1Y2lhbCBoZXJlIGJlY2F1c2UgdGhlIG51YW5jZSBvZiBob3cgeW91IGhhbHQgVlhMQU4gY2FuIHZhcnkgd2lsZGx5IGRlcGVuZGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24uIElzIHRoaXMgYSBjbGVhbiBzaHV0ZG93biwgYSBmb3JjZS1xdWl0LCBhbiBvcmNoZXN0cmF0aW9uIGNhbGwsIG9yIGEgbW9yZSBkaXJlY3Qgc3lzdGVtLWxldmVsIGNvbnRyb2w/IElzIGl0IGdyYWNlZnVsbHkgdGVhcmluZyBkb3duIHR1bm5lbHMgYW5kIGFkamFjZW5jeSB0YWJsZXMsIG9yIGp1c3Qga2lsbGluZyB0aGUgcHJvY2Vzc2VzIGFuZCBsZWF2aW5nIGEgbWVzcyBiZWhpbmQ/IFVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiB3aGF0J3MgKmhhcHBlbmluZyogaXMgdGhlIGZpcnN0LCB2aXRhbCBzdGVwIGJlZm9yZSBJIHN0YXJ0IGFzc3VtaW5nLiBNeSBtaW5kIG5vdyBnb2VzIHRvIGFsbCBvZiB0aGUgZWRnZSBjYXNlcyBhbmQgcXVlc3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTkyLCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyODowMi4yODgzOTQ2NjlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NzEzOTM1NTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fc3RvcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxMjI9c3RhdGljIGludCB2eGxhbl9mZGJfZGVsZXRlX2J1bGsoc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4Ni0vKiBDbGVhbnVwIHRpbWVyIGFuZCBmb3J3YXJkaW5nIHRhYmxlIG9uIHNodXRkb3duICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxODc6c3RhdGljIGludCB2eGxhbl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODgte1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMyODI9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2eGxhbl9uZXRkZXZfZXRoZXJfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyODUtXFx0Lm5kb19vcGVuXFx0XFx0PSB2eGxhbl9vcGVuLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjg2OlxcdC5uZG9fc3RvcFxcdFxcdD0gdnhsYW5fc3RvcCxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4Ny1cXHQubmRvX3N0YXJ0X3htaXRcXHRcXHQ9IHZ4bGFuX3htaXQsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzMwNT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9yYXdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMzMDgtXFx0Lm5kb19vcGVuXFx0XFx0PSB2eGxhbl9vcGVuLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMzA5OlxcdC5uZG9fc3RvcFxcdFxcdD0gdnhsYW5fc3RvcCxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzMxMC1cXHQubmRvX3N0YXJ0X3htaXRcXHRcXHQ9IHZ4bGFuX3htaXQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI4OjAzLjk1OTc5NDM4MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk1MzgzNTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWxseSBSZWxldmFudCBQYXJhbWV0ZXIqKlxuXG5IbW0sIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGUgY3VycmVudCBwcm9ibGVtLi4uIGFuZCBhIHNwZWNpZmljIHBhcmFtZXRlciBwb3BzIGludG8gbXkgbWluZDogYHZ4bGFuX2RlbGxpbmtgLiBJcyB0aGF0IHBhcmFtZXRlciByZWxhdGVkIHRvIHRoZSBjdXJyZW50IGlzc3VlLCBvciBzaG91bGQgSSBiZSBsb29raW5nIGVsc2V3aGVyZT8gTXkgZXhwZXJ0aXNlIGlzIHRlbGxpbmcgbWUgdGhhdCB0aGlzIGNvdWxkIGJlIGEgcG90ZW50aWFsIHJlZCBoZXJyaW5nLCBvciBpdCBjb3VsZCBiZSBhIHVzZWZ1bCBwb2ludGVyIHRvd2FyZHMgYSBkZWVwZXIgaXNzdWUgcmVsYXRlZCB0byB0aGUgVnhMQU4gY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIGl0J3MgcmVsZXZhbnQsIGFuZCBpZiBzbywgaG93LiBJcyB0aGVyZSBzb21ldGhpbmcgaW4gdGhlIGNvZGViYXNlIHRoYXQgdG91Y2hlcyB0aGlzIHBhcmFtZXRlciB0aGF0IEkgaGF2ZW4ndCBjb25zaWRlcmVkLCBvciBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IGxldmVyYWdlcyBpdD8gVGltZSB0byBxdWlja2x5IGRpZyBpbnRvIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCBkb2N1bWVudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2ODcxLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MDcuNzU1MTgwMzgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTAwNjIzMjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX2RlbGxpbmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTg3PXN0YXRpYyBpbnQgdnhsYW5fc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxOTAtXFx0c3RydWN0IHZ4bGFuX2ZkYl9mbHVzaF9kZXNjIGRlc2MgPSB7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxOTE6XFx0XFx0LyogRGVmYXVsdCBlbnRyeSBpcyBkZWxldGVkIGF0IHZ4bGFuX2RlbGxpbmsuICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxOTItXFx0XFx0Lmlnbm9yZV9kZWZhdWx0X2VudHJ5ID0gdHJ1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00NDE4PXN0YXRpYyBpbnQgdnhsYW5fY2hhbmdlbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdLFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MTUtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ1MTY6c3RhdGljIHZvaWQgdnhsYW5fZGVsbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00Njg0PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyB2eGxhbl9saW5rX29wcyBfX3JlYWRfbW9zdGx5ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTItXFx0LmNoYW5nZWxpbmtcXHQ9IHZ4bGFuX2NoYW5nZWxpbmssXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ2OTM6XFx0LmRlbGxpbmtcXHQ9IHZ4bGFuX2RlbGxpbmssXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTQtXFx0LmdldF9zaXplXFx0PSB2eGxhbl9nZXRfc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00Njk5PXN0cnVjdCBuZXRfZGV2aWNlICp2eGxhbl9kZXZfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NzIzLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NzI0OlxcdFxcdHZ4bGFuX2RlbGxpbmsoZGV2LCBcXHUwMDI2bGlzdF9raWxsKTtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDcyNS1cXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9tYW55KFxcdTAwMjZsaXN0X2tpbGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ3MzM9c3RhdGljIHZvaWQgdnhsYW5faGFuZGxlX2xvd2VyZGV2X3VucmVnaXN0ZXIoc3RydWN0IHZ4bGFuX25ldCAqdm4sXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDc0OC1cXHRcXHRpZiAoZHN0LVxcdTAwM2VyZW1vdGVfaWZpbmRleCA9PSBkZXYtXFx1MDAzZWlmaW5kZXgpXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ3NDk6XFx0XFx0XFx0dnhsYW5fZGVsbGluayh2eGxhbi1cXHUwMDNlZGV2LCBcXHUwMDI2bGlzdF9raWxsKTtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDc1MC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDk0ND1zdGF0aWMgdm9pZCBfX25ldF9leGl0IHZ4bGFuX2Rlc3Ryb3lfdHVubmVscyhzdHJ1Y3QgdnhsYW5fbmV0ICp2bixcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00OTQ5LVxcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2eGxhbiwgbmV4dCwgXFx1MDAyNnZuLVxcdTAwM2V2eGxhbl9saXN0LCBuZXh0KVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0OTUwOlxcdFxcdHZ4bGFuX2RlbGxpbmsodnhsYW4tXFx1MDAzZWRldiwgZGV2X3RvX2tpbGwpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00OTUxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MDkuMjU1ODA5MTE3WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NzQ5NTM3OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVlhMQU4gQ29uZmlndXJhdGlvbiBhbmQgT3BlcmF0aW9uIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgVlhMQU4ncyBjb2RlYmFzZSBhZ2FpbiwgYW5kIG15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCwgYHZ4bGFuX3N0b3BgLCBhbmQgYHZ4bGFuX2RlbGxpbmtgIGFyZSBhbGwgc3RhdGljYWxseSBkZWZpbmVkIGZ1bmN0aW9ucy4gSG93ZXZlciwgdGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCB0aGV5J3JlICphbHNvKiBhc3NpZ25lZCB0byBmdW5jdGlvbiBwb2ludGVycyB3aXRoaW4gYG5ldF9kZXZpY2Vfb3BzYCBhbmQgYHJ0bmxfbGlua19vcHNgLiBUaGlzIGhhcyBzb21lIHNlcmlvdXMgaW1wbGljYXRpb25zLiBCZWNhdXNlIHRoZXkncmUgYWNjZXNzZWQgdGhyb3VnaCB0aGVzZSBwb2ludGVycywgdGhleSBhcmUgbm90IGNvbXBsZXRlbHkgaW5saW5lZCwgYW5kIHRoZXkgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggc3RhbmRhcmQgbmV0d29ya2luZyBvcGVyYXRpb25zIGFuZCwgaW1wb3J0YW50bHksIE5ldGxpbmsuIEkgdGhpbmsgdGhpcyBpcyBhIGNyaXRpY2FsIHBvaW50LlxuXG5JJ2xsIGJlIGZvY3VzaW5nIG15IGFuYWx5c2lzIG9uIHRoZXNlIHRocmVlIGZ1bmN0aW9ucyDigJMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYCDigJMgYXMga2V5IGluZGljYXRvcnMgb2YgaG93IHRoZSBWWExBTiBtb2R1bGUgaGFuZGxlcyBvcGVyYXRpb25zIGF0IGEgbG93ZXIgbGV2ZWwuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGNvbmZpZ3VyYXRpb24gY2hvaWNlcyBhZmZlY3QgdGhlIGJlaGF2aW9yIG9mIHRoZXNlIGZ1bmN0aW9ucyBhbmQgaG93IHRoZXkgYXJlIGludm9rZWQuIE15IG5leHQgc3RlcCBpcyBhIGRlZXAgZGl2ZSBpbnRvIHRoZSBWWExBTiBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZGV0ZXJtaW5lIGhvdyB0aG9zZSBwYXJhbWV0ZXJzIGluZmx1ZW5jZSB0aGUgZXhlY3V0aW9uIHBhdGhzIHRoYXQgdWx0aW1hdGVseSBpbnZvbHZlIHRoZXNlIHN5bWJvbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc5MTEsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MTMuMTMwNzY0OTc0WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjMzNjA3OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFZYTEFOXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIyOS1cXG5kcml2ZXJzL25ldC9LY29uZmlnOjIzMDpjb25maWcgVlhMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMS1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyODoxMy4yNTQxMzE2NzJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA2MjE0OTc4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKkludmVzdGlnYXRpbmcgVlhMQU4gQ29uZmlndXJhdGlvbiBpbiB0aGUgS2VybmVsKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIFZYTEFOIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgbG9jYXRlZCB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoZSBuYXR1cmFsIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBrZXJuZWwncyBzdHJ1Y3R1cmUsIGlzIHRoZSBgZHJpdmVycy9uZXRgIGRpcmVjdG9yeS4gSXQncyBhbG1vc3QgYWx3YXlzIHdoZXJlIG5ldHdvcmtpbmctcmVsYXRlZCBjb25maWd1cmF0aW9ucyByZXNpZGUuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIEkgc2hvdWxkIGxvb2sgYXQgYEtjb25maWdgIGZpbGVzIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gVGhlc2UgYEtjb25maWdgIGZpbGVzIGFyZSB0aGUgYmFja2JvbmUgb2YgdGhlIGtlcm5lbCdzIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzbyB0aGF0J3Mgd2hlcmUgdGhlIGRlZmluaXRpb24gb2YgZmVhdHVyZXMgd2lsbCBiZS4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgVlhMQU4gaXMgZXZlbiBzdXBwb3J0ZWQgYW5kLCBpZiBzbywgaG93IGl0IGlzIGV4cG9zZWQgdG8gdXNlcnMgYW5kIHdoZXJlIEkgbWlnaHQgYmUgYWJsZSB0byBmaW5kIHJlbGV2YW50IHNldHRpbmdzLCBzbyBJIHdpbGwgc3RhcnQgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzODIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyODoxNi4zMTYyODM1MzRaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg1ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMzAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMzA6XFx0Y29uZmlnIFZYTEFOXFxuIDIzMTpcXHRcXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXFxcIlxcbiAyMzI6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuIDIzMzpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMjM0OlxcdFxcdHNlbGVjdCBHUk9fQ0VMTFNcXG4gMjM1OlxcdFxcdGhlbHBcXG4gMjM2OlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2eGxhbiB2aXJ0dWFsIGludGVyZmFjZXMgdGhhdCBwcm92aWRlXFxuIDIzNzpcXHRcXHQgIExheWVyIDIgTmV0d29ya3Mgb3ZlciBMYXllciAzIE5ldHdvcmtzLiBWWExBTiBpcyBvZnRlbiB1c2VkXFxuIDIzODpcXHRcXHQgIHRvIHR1bm5lbCB2aXJ0dWFsIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlxcbiAyMzk6XFx0XFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6XFxuIDI0MDpcXHRcXHQgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbWFoYWxpbmdhbS1kdXR0LWRjb3BzLXZ4bGFuLTAyXFxuIDI0MTpcXHRcXG4gMjQyOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAyNDM6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCB2eGxhbi5cXG4gMjQ0OlxcdFxcbiAyNDU6XFx0Y29uZmlnIEdFTkVWRVxcbiAyNDY6XFx0XFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgTmV0d29yayBWaXJ0dWFsaXphdGlvbiBFbmNhcHN1bGF0aW9uXFxcIlxcbiAyNDc6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuIDI0ODpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMjQ5OlxcdFxcdHNlbGVjdCBHUk9fQ0VMTFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MTYuMzE2MzczNDE0WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1MjcyMDc3MDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBWWExBTiBDb25maWd1cmF0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgY2VudGVyZWQgYXJvdW5kIGBWWExBTmAsIGFuZCBpdCByZWxpZXMgb24gYElORVRgLiBUaGF0IG1lYW5zLCBmb3IgZW5hYmxpbmcgdGhpcyBmdW5jdGlvbmFsaXR5LCBgRW5hYmxlQ29uZmlnc2Agc2hvdWxkIGFic29sdXRlbHkgaW5jbHVkZSBgXCJWWExBTlwiYC4gTWFrZXMgc2Vuc2UuXG5cblRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgaW4gYGRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY2AsIHNwZWNpZmljYWxseSB0aGUgZnVuY3Rpb24gYHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGFkZGluZyBhIGNvbmRpdGlvbmFsIGNoZWNrOiBgbGlzdF9pc19zaW5ndWxhcihcdTAwMjZmLVx1MDAzZXJlbW90ZXMpYC4gSWYgdGhlIGxpc3QgYGYtXHUwMDNlcmVtb3Rlc2AgaXMgc2luZ3VsYXIsIG1lYW5pbmcgdGhlcmUncyBvbmx5IG9uZSBlbnRyeSwgdGhlbiBgKnBfZGVzdHJveV9mZGIgPSB0cnVlYCBpcyBzZXQsIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucy4gVGhpcyBzb3VuZHMgbGlrZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBsaWtlbHkgYSBidWcgZml4IG9yIGEgbmV3IGZlYXR1cmUuIERlZmluaXRlbHkgc29tZXRoaW5nIHdvcnRoIHNjcnV0aW5pemluZy5cblxuTXkgZ3V0IGZlZWxpbmcgaXMgdG8gZnV6eiBpdC4gV2Ugc2hvdWxkIGZvY3VzIG91ciBhdHRlbnRpb24gb24gdGhlIHN5bWJvbHMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYC4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBsaWtlbHkgZW50cnkgcG9pbnRzIHRvIHByb2JlIHRoaXMgbmV3IGNvbmRpdGlvbmFsIGxvZ2ljLlxuXG5CdXQgd2FpdCwgbGV0J3MganVzdCBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB0aGF0IGNhbGwgZWl0aGVyIGB2eGxhbl9mbHVzaGAgb3IgdGhpcyBtb2RpZmllZCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGZ1bmN0aW9uLiBJdCdzIGFsd2F5cyBnb29kIHRvIGhhdmUgdGhhdCBiaWcgcGljdHVyZSB1bmRlcnN0YW5kaW5nLiBUaGF0IGNvdWxkIGhpZ2hsaWdodCBzb21ldGhpbmcgaW50ZXJlc3Rpbmcgb3IgcHJvdmlkZSBhbm90aGVyIGZvY3VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4OTIxLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MjEuODQzNTg0MzU1WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjMxMzE0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2eGxhbl9mbHVzaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC92eGxhbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTE0MjU9c3RhdGljIGVudW0gc2tiX2Ryb3BfcmVhc29uIHZ4bGFuX3Nub29wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMTQ3NC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTQ3NTpcXHRcXHQvKiBjbG9zZSBvZmYgcmFjZSBiZXR3ZWVuIHZ4bGFuX2ZsdXNoIGFuZCBpbmNvbWluZyBwYWNrZXRzICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzYtXFx0XFx0aWYgKG5ldGlmX3J1bm5pbmcoZGV2KSlcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDUwPXZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzMtLyogUHVyZ2UgdGhlIGZvcndhcmRpbmcgdGFibGUgKi9cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzA3NDpzdGF0aWMgdm9pZCB2eGxhbl9mbHVzaChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzA3NS1cXHRcXHRcXHRjb25zdCBzdHJ1Y3QgdnhsYW5fZmRiX2ZsdXNoX2Rlc2MgKmRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEyMj1zdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTgwLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTgxOlxcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcXHUwMDI2ZGVzYyk7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODItXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzE4Nz1zdGF0aWMgaW50IHZ4bGFuX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjAwLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjAxOlxcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcXHUwMDI2ZGVzYyk7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyMDItXFx0dnhsYW5fc29ja19yZWxlYXNlKHZ4bGFuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00NTE2PXN0YXRpYyB2b2lkIHZ4bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTIwLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NTIxOlxcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcXHUwMDI2ZGVzYyk7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MjItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI4OjIxLjg4NTkwNDI2NFoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDYxMDk0MDg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFZYTEFOIENvZGUgQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEkndmUgdGFrZW4gYSBsb29rIGF0IHRoZXNlIGNoYW5nZXMuIEl0IHNlZW1zIHdlJ3JlIHByaW1hcmlseSBjb25jZXJuZWQgd2l0aCB0aHJlZSBzcGVjaWZpYyBmdW5jdGlvbnM6IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgLCBgdnhsYW5fc3RvcGAsIGFuZCBgdnhsYW5fZGVsbGlua2AuIFRoZXNlIGFyZSB0aGUga2V5IGFyZWFzIG9mIGZvY3VzLiBUaGV5J3JlIGFsbCBzdGF0aWMgYW5kIHJlZ2lzdGVyZWQgYXMgY2FsbGJhY2tzLCB3aGljaCBzdWdnZXN0cyB0aGV5J3JlIGltcG9ydGFudCBlbnRyeSBwb2ludHMgZm9yIHNwZWNpZmljIFZYTEFOIG9wZXJhdGlvbnMuIEknbGwgZGVmaW5pdGVseSBrZWVwIHRob3NlIHN5bWJvbHMgaW4gbWluZCBhcyBJIGRlbHZlIGRlZXBlci5cblxuR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgbW9kaWZpY2F0aW9uc+KAlHNwZWNpZmljYWxseSB0aGUgYWRqdXN0bWVudHMgdG8gRkRCIGVudHJ5IGZsdXNoaW5nLCBlc3BlY2lhbGx5IGluIHRoZSBzaW5ndWxhciBcInJlbW90ZXMgbGlzdFwiIHNjZW5hcmlv4oCUdGhpcyB3YXJyYW50cyBmb2N1c2VkIGF0dGVudGlvbi4gVGhlIGZhY3QgdGhhdCB0aGUgY2hhbmdlcyBpbXBhY3QgdGhlIGNvcmUgVlhMQU4gZHJpdmVyIGFuZCBhcmUgdHJpZ2dlcmVkIGJ5IG5ldGxpbmsgb3BlcmF0aW9ucyBzdWNoIGFzIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24gc3VnZ2VzdHMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHJlcXVpcmVzIHRob3JvdWdoIGZ1enppbmcuIEknbGwgZmxhZyB0aGlzIGFzIFwiV29ydGhGdXp6aW5nLFwiIGFuZCB0aGUgXCJFbmFibGVDb25maWdzXCIgd2lsbCBkZWZpbml0ZWx5IGluY2x1ZGUgXCJWWExBTlwiLiBNeSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIHRvdWNoIGNyaXRpY2FsIFZYTEFOIGZ1bmN0aW9uYWxpdHkgYW5kIGNvdWxkIGhhdmUgdW5leHBlY3RlZCBjb25zZXF1ZW5jZXMgd2hlbiBoYW5kbGluZyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucywgcGFydGljdWxhcmx5IHJlbGF0ZWQgdG8gdGhlIGZsdXNoaW5nIG9mIEZEQiBlbnRyaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDExOSwiT3V0cHV0VG9rZW5zIjoxMTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MjYuOTQ3MDAwNzMzWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1OTIxNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnhsYW5fZmRiX2RlbGV0ZV9idWxrXCIsXG4gICAgXCJ2eGxhbl9zdG9wXCIsXG4gICAgXCJ2eGxhbl9kZWxsaW5rXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmbHVzaGluZyBWWExBTiBGREIgZW50cmllcywgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRoZSBjYXNlIHdoZXJlIHRoZSByZW1vdGVzIGxpc3QgaXMgc2luZ3VsYXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBWWExBTiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0bGluayBvcGVyYXRpb25zIGxpa2UgYnVsayBkZWxldGUgb3IgbGluayBkZWxldGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWWExBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ4bGFuX2ZkYl9kZWxldGVfYnVsa1wiLFxuICAgIFwidnhsYW5fc3RvcFwiLFxuICAgIFwidnhsYW5fZGVsbGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowg28mj[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-01 21:13:57 +0000 UTC FinishedAt: 2026-08-01 21:28:29 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "VXLAN" ], "series_id": "6e18bc18-47a0-46c8-b58b-63cc460060d8" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "vxlan_fdb_delete_bulk", "vxlan_stop", "vxlan_dellink" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fZmRiX2RlbGV0ZV9idWxrJiMzNDssCiAgICAmIzM0O3Z4bGFuX3N0b3AmIzM0OywKICAgICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZsdXNoaW5nIFZYTEFOIEZEQiBlbnRyaWVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlbW90ZXMgbGlzdCBpcyBzaW5ndWxhci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFZYTEFOIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRsaW5rIG9wZXJhdGlvbnMgbGlrZSBidWxrIGRlbGV0ZSBvciBsaW5rIGRlbGV0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGYyNTRmMzBkZDcyYzI1NDIzMmQ1NGUyMjFjODc4N2E4ZTdjY2NlN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgQXVnIDEgMjE6Mjc6MzIgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG5pbmRleCBkODM0YTQ4NjVhZWNjLi5hMDBkZjEyN2RhODI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbkBAIC0zMDU4LDYgJiM0MzszMDU4LDExIEBAIHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxuIFx0XHRpZiAoIXZ4bGFuX2ZkYl9mbHVzaF9yZW1vdGVfbWF0Y2hlcyhkZXNjLCByZCkpXG4gXHRcdFx0Y29udGludWU7XG4gXG4mIzQzO1x0XHRpZiAobGlzdF9pc19zaW5ndWxhcihcdTAwMjZmLVx1MDAzZXJlbW90ZXMpKSB7XG4mIzQzO1x0XHRcdCpwX2Rlc3Ryb3lfZmRiID0gdHJ1ZTtcbiYjNDM7XHRcdFx0cmV0dXJuO1xuJiM0MztcdFx0fVxuJiM0MztcbiBcdFx0dnhsYW5fZmRiX2RzdF9kZXN0cm95KHZ4bGFuLCBmLCByZCwgdHJ1ZSk7XG4gXHRcdHJlbW90ZXNfZmx1c2hlZCA9IHRydWU7XG4gXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fZmRiX2RlbGV0ZV9idWxrJiMzNDssCiAgICAmIzM0O3Z4bGFuX3N0b3AmIzM0OywKICAgICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZsdXNoaW5nIFZYTEFOIEZEQiBlbnRyaWVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlbW90ZXMgbGlzdCBpcyBzaW5ndWxhci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFZYTEFOIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRsaW5rIG9wZXJhdGlvbnMgbGlrZSBidWxrIGRlbGV0ZSBvciBsaW5rIGRlbGV0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGYyNTRmMzBkZDcyYzI1NDIzMmQ1NGUyMjFjODc4N2E4ZTdjY2NlNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgQXVnIDEgMjE6Mjc6MzIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMKaW5kZXggZDgzNGE0ODY1YWVjYy4uYTAwZGYxMjdkYTgyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYwpAQCAtMzA1OCw2ICYjNDM7MzA1OCwxMSBAQCB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3RlcyhzdHJ1Y3QgdnhsYW5fZmRiICpmLCBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAkJaWYgKCF2eGxhbl9mZGJfZmx1c2hfcmVtb3RlX21hdGNoZXMoZGVzYywgcmQpKQogCQkJY29udGludWU7CiAKJiM0MzsJCWlmIChsaXN0X2lzX3Npbmd1bGFyKCZhbXA7Zi0mZ3Q7cmVtb3RlcykpIHsKJiM0MzsJCQkqcF9kZXN0cm95X2ZkYiA9IHRydWU7CiYjNDM7CQkJcmV0dXJuOwomIzQzOwkJfQomIzQzOwogCQl2eGxhbl9mZGJfZHN0X2Rlc3Ryb3kodnhsYW4sIGYsIHJkLCB0cnVlKTsKIAkJcmVtb3Rlc19mbHVzaGVkID0gdHJ1ZTsKIAl9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxMDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVlhMQU4gRkRCIEZsdXNoIE9wdGltaXphdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNgIGZpbGUuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgdHdlYWtpbmcgdGhlIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgZnVuY3Rpb24uIFdoYXQgdGhleSYjMzk7dmUgZG9uZSBpcyBhZGQgYSBjb25kaXRpb246CgpgYGBjCgkJaWYgKGxpc3RfaXNfc2luZ3VsYXIoJmFtcDtmLSZndDtyZW1vdGVzKSkgewoJCQkqcF9kZXN0cm95X2ZkYiA9IHRydWU7CgkJCXJldHVybjsKCQl9CmBgYAoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgdGhpcyBpcyBsaWtlbHkgYW4gb3B0aW1pemF0aW9uLiBJZiBhIGZvcndhcmRpbmcgZGF0YWJhc2UgKEZEQikgZW50cnkgYGZgIG9ubHkgaGFzIGEgc2luZ2xlIHJlbW90ZSBlbnRyeSwgYW5kIHRoaXMgbmV3IGNvZGUgaXMgaGl0LCB0aGV5JiMzOTtyZSBzZXR0aW5nIGAqcF9kZXN0cm95X2ZkYmAgdG8gdHJ1ZSBhbmQgcmV0dXJuaW5nLiBUaGlzIHN1Z2dlc3RzIHRoYXQgaWYgdGhlIGVudHJ5IGlzIHNpbmd1bGFyLCBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgZGVzdHJveWVkIHJhdGhlciB0aGFuIGdvaW5nIHRocm91Z2ggdGhlIGZ1bGwgZmx1c2ggcHJvY2Vzcywgd2hpY2ggc2F2ZXMgY3ljbGVzLCBwZXJoYXBzIGJ5IGF2b2lkaW5nIGxvY2tpbmcgb3ZlcmhlYWQgb24gdGhlIGBmYCBlbnRyeS4gSXTigJlzIGEgZ29vZCBjYXRjaCwgYmVjYXVzZSBmbHVzaGluZyBhIHNpbmdsZSBpdGVtIGZyb20gYSBsaXN0IGlzIGZhciBsZXNzIGNvbXBsZXggdGhhbiBmbHVzaGluZyBhIG11bHRpLWl0ZW0gbGlzdC4KClRvIHJlYWxseSB1bmRlcnN0YW5kIHRoZSBpbXBhY3QsIEkgbmVlZCB0byB0aG9yb3VnaGx5IHVuZGVyc3RhbmQgdGhlIGNvbnRleHRzIHdoZXJlIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgaXMgKmNhbGxlZCouIEkgbmVlZCB0byBzZWUgaWYgdGhpcyBvcHRpbWl6YXRpb24gaGFzIGFueSBlZGdlIGNhc2VzIG9yIGRlcGVuZGVuY2llcyBJIHNob3VsZCBiZSBhd2FyZSBvZi4gSSYjMzk7bGwgbmVlZCB0byB0cmFjZSB0aHJvdWdoIHRob3NlIGNhbGxpbmcgZnVuY3Rpb25zLCBsb29raW5nIGZvciBpbnRlcmFjdGlvbnMgd2l0aCBsb2Nrcywgb3RoZXIgZGF0YSBzdHJ1Y3R1cmVzLCBhbmQgZXJyb3IgaGFuZGxpbmcuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IHN1YnRsZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuIEEgY2xvc2VyIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSBvdmVyYWxsIEZEQiBmbHVzaGluZyBsb2dpYyBpcyByZXF1aXJlZCB0byB2YWxpZGF0ZSB0aGUgaW50ZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDQ5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzA1MDp2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3RlcyhzdHJ1Y3QgdnhsYW5fZmRiICpmLCBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDUxLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyAqZGVzYyxcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzA3ND1zdGF0aWMgdm9pZCB2eGxhbl9mbHVzaChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzA5MS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMDkyOlx0XHRcdHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKGYsIHZ4bGFuLCBkZXNjLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwOTMtXHRcdFx0XHRcdFx0ICAgICAgXHUwMDI2ZGVzdHJveV9mZGIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NTIKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhIGZlbGxvdyBleHBlcnQ6CgoqKlZ4bGFuX0ZsdXNoOiBUaW1lIHRvIEFzc2VzcyoqCgpBbHJpZ2h0LCAqdnhsYW5fZmx1c2gqLiBUaGF0JiMzOTtzIHRoZSB0cmlnZ2VyLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGltbWVkaWF0ZWx5IHpvb20gaW4gYW5kIGFzc2VzcyB0aGUgc2l0dWF0aW9uIHdpdGggdGhhdCBmdW5jdGlvbi4gKldoYXQgcHJlY2lzZWx5IGFtIEkgbG9va2luZyBmb3I/KiBJcyBpdCBhIHJvdXRpbmUgb3BlcmF0aW9uIEkmIzM5O20gb2JzZXJ2aW5nLCBhIHBvdGVudGlhbCBwcm9ibGVtIGluZGljYXRvciwgb3IgdGhlIHN0YXJ0IG9mIGEgZGVlcCBkaXZlIGludG8gVlhMQU4gcGVyZm9ybWFuY2Ugb3IgY29udHJvbCBwbGFuZSBiZWhhdmlvcj8gVGhlIGNvbnRleHQgaXMga2V5LiBEZXBlbmRpbmcgb24gdGhlIHNjZW5hcmlvLCBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUsIGludGVyYWN0aW9uIHdpdGggdGhlIGRhdGEgcGxhbmUsIGFuZCBhbnkgcmVjZW50IGNoYW5nZXMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyB3aWxsIGxpa2VseSBsZWFkIHRvIHNvbWUgcXVlc3Rpb25zLiBEbyBJIG5lZWQgdG8gYmUgcmVhZHkgdG8gYW5hbHl6ZSBuZXR3b3JrIHRyYWZmaWMsIGV4YW1pbmUgZm9yd2FyZGluZyB0YWJsZXMsIG9yIHBvdGVudGlhbGx5IGV2ZW4gdHJvdWJsZXNob290IGNvbnRyb2wtcGxhbmUgaXNzdWVzIHJlbGF0ZWQgdG8gVlhMQU4gZW5jYXBzdWxhdGlvbj8gTGV0JiMzOTtzIGNoZWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZsdXNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xNDI1PXN0YXRpYyBlbnVtIHNrYl9kcm9wX3JlYXNvbiB2eGxhbl9zbm9vcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xNDc0LVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjE0NzU6XHRcdC8qIGNsb3NlIG9mZiByYWNlIGJldHdlZW4gdnhsYW5fZmx1c2ggYW5kIGluY29taW5nIHBhY2tldHMgKi9cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xNDc2LVx0XHRpZiAobmV0aWZfcnVubmluZyhkZXYpKVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDUwPXZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDczLS8qIFB1cmdlIHRoZSBmb3J3YXJkaW5nIHRhYmxlICovXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzA3NDpzdGF0aWMgdm9pZCB2eGxhbl9mbHVzaChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDc1LVx0XHRcdGNvbnN0IHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyAqZGVzYylcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEyMj1zdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4MC1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTgxOlx0dnhsYW5fZmx1c2godnhsYW4sIFx1MDAyNmRlc2MpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODItXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxODc9c3RhdGljIGludCB2eGxhbl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyMDAtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzIwMTpcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcdTAwMjZkZXNjKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjAyLVx0dnhsYW5fc29ja19yZWxlYXNlKHZ4bGFuKTtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDUxNj1zdGF0aWMgdm9pZCB2eGxhbl9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MjAtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDUyMTpcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcdTAwMjZkZXNjKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTIyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NDEKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkNoZWNraW5nIHRoZSBWWExBTiBGREIgQnVsayBEZWxldGUgSGFuZGxlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgaW50byB0aGlzIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGZ1bmN0aW9uLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBhIG5ldGxpbmsgaGFuZGxlci4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gVGhhdCYjMzk7cyB0aGUgY3J1Y2lhbCBmaXJzdCBzdGVwLCByaWdodD8gTm93LCB0aGUgcXVlc3Rpb24gaXMsICppcyogdGhpcyBoYW5kbGVyIHByb3Blcmx5IHJlZ2lzdGVyZWQ/IEkgbmVlZCB0byBjaGVjayB0aGUgbmV0bGluayByZWdpc3RyYXRpb24gdGFibGUgdG8gdmVyaWZ5IGl0cyBwcmVzZW5jZS4gSSBuZWVkIHRvIGVuc3VyZSBpdCYjMzk7cyBzZXQgdXAgYW5kIHJlYWR5IHRvIGdvLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZkYl9kZWxldGVfYnVsayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEwNj1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdnhsYW5fZGVsX2J1bGtfcG9saWN5W05EQV9NQVggJiM0MzsgMV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjEtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzEyMjpzdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIzLVx0XHRcdFx0IHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzI4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9ldGhlcl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyOTMtXHQubmRvX2ZkYl9kZWxcdFx0PSB2eGxhbl9mZGJfZGVsZXRlLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyOTQ6XHQubmRvX2ZkYl9kZWxfYnVsa1x0PSB2eGxhbl9mZGJfZGVsZXRlX2J1bGssXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5NS1cdC5uZG9fZmRiX2R1bXBcdFx0PSB2eGxhbl9mZGJfZHVtcCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjYwCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMzQ3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBWWExBTiBGREIgRGVsZXRpb24gTG9naWMqKgoKT2theSwgc28gSSYjMzk7dmUgY29uZmlybWVkIHRoYXQgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AgaXMgaW5kZWVkIHJlZ2lzdGVyZWQgYXMgYC5uZG9fZmRiX2RlbF9idWxrYC4gVGhhdCBtZWFucyBpdCYjMzk7cyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rLCB3aGljaCBpcyB3aGF0IEkgc3VzcGVjdGVkLiBUaGUgcGF0Y2ggSSYjMzk7bSBsb29raW5nIGF0IG1vZGlmaWVzIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AsIGFuZCB0aGF0JiMzOTtzIGNhbGxlZCBieSBgdnhsYW5fZmx1c2hgLiBBbmQgKnRoYXQqIGZ1bmN0aW9uLCBgdnhsYW5fZmx1c2hgLCBpcyBjYWxsZWQgYnkgc2V2ZXJhbCBwbGFjZXM6IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgICh3aGljaCBpcyBvdXIgbWFpbiBmb2N1cyksIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYC4gU28sIHRoZXJlJiMzOTtzIGEgY2xlYXIgcGF0aCB0byBleGVjdXRpb24uCgpOb3csIGxldCYjMzk7cyBuYWlsIGRvd24gb3VyIGZvY3VzIHN5bWJvbHMuIEkmIzM5O20gZ29pbmcgdG8gbG9vayBhdCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGFuZCBgdnhsYW5fZmx1c2hgLCBidXQgSSB0aGluayBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCBpdHNlbGYgaXMgYSByZWFsbHkgc3Ryb25nIGNhbmRpZGF0ZSwgYWxvbmcgd2l0aCBgdnhsYW5fc3RvcGAgYW5kIGB2eGxhbl9kZWxsaW5rYC4gTGV0IG1lIGNoZWNrIGlmIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgaXMgc3RhdGljLiBZZXAsIGl0IGlzLiBgdnhsYW5fZmx1c2hgIGlzIGFsc28gc3RhdGljLiBBbmQgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AgaXPigKYgc3RhdGljIGFzIHdlbGw/IEhvbGQgb24sIHRoYXQmIzM5O3MgaW50ZXJlc3RpbmcuIEl0JiMzOTtzIHN0YXRpYywgYnV0IGl0JiMzOTtzIGFuIGVudHJ5IHBvaW50ISBUaGF0IGNvdWxkIG1lYW4gaXQmIzM5O3MgaW5saW5lZCwgb3Igbm90IGRpcmVjdGx5IHZpc2libGUuIEkgbmVlZCB0byBtYWtlIHN1cmUuCgpPa2F5LCBsZXQmIzM5O3MgY29uZmlybSB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGlzIGFuIGVudHJ5IHBvaW50LiBZZXMsIGl0JiMzOTtzIHJlZ2lzdGVyZWQgd2l0aGluIGB2eGxhbl9uZXRkZXZfZXRoZXJfb3BzYC4gUmlnaHQsIHRoYXQgbWFrZXMgc2Vuc2UuIElzIHRoZXJlIGFueSBub24tc3RhdGljIGZ1bmN0aW9uIGludm9sdmVkIGhlcmU/IEFoLCBgdnhsYW5fZGVsbGlua2AgaXMgc3RhdGljLiBTbywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgYHZ4bGFuX25ldGRldl9ldGhlcl9vcHNgIHJlZ2lzdHJhdGlvbiBiZXR0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX25ldGRldl9ldGhlcl9vcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMyMzI9c3RhdGljIGludCB2eGxhbl9maWxsX21ldGFkYXRhX2RzdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjgxLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyODI6c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2eGxhbl9uZXRkZXZfZXRoZXJfb3BzID0ge1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyODMtXHQubmRvX2luaXRcdFx0PSB2eGxhbl9pbml0LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMzk3PXN0YXRpYyB2b2lkIHZ4bGFuX2V0aGVyX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTM0MDAtXHRkZXYtXHUwMDNlcHJpdl9mbGFncyB8PSBJRkZfTElWRV9BRERSX0NIQU5HRTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozNDAxOlx0ZGV2LVx1MDAzZW5ldGRldl9vcHMgPSBcdTAwMjZ2eGxhbl9uZXRkZXZfZXRoZXJfb3BzO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTM0MDItfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MzUzCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkNvbnNpZGVyaW5nIFZYTEFOIEZEQiBCdWxrIERlbGV0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGZ1bmN0aW9uLiBUaGUgY29kZSBzYXlzIGl0JiMzOTtzIHN0YXRpYywgYnV0IGl0JiMzOTtzIHVzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIHdpdGhpbiBgbmV0X2RldmljZV9vcHNgLiAgVGhhdCYjMzk7cyBhIGtleSBkZXRhaWwuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgYXZvaWQgdXNpbmcgYSBzdGF0aWMgZnVuY3Rpb24gaGVyZT8gSXMgdGhlcmUgYSBub24tc3RhdGljIGFsdGVybmF0aXZlIHRoYXQgd291bGQgYmUgYmV0dGVyPyBJIG5lZWQgdG8gYWRoZXJlIHRvIHRoZSBwcmluY2lwbGUgb2YgcHJlZmVycmluZyBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMgdG8gYXZvaWQgaW5saW5lZCBzdGF0aWMgaGVscGVycy4gVGhpcyBpcyBkdWUgdG8gZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBhbmQgaGVscHMgd2l0aCBtYWludGFpbmFiaWxpdHkuCgpIbW0sIGlmIHRoZXJlIGlzbiYjMzk7dCBhIG5vbi1zdGF0aWMgb3B0aW9uLCBJJiMzOTtsbCBmYWxsIGJhY2sgdG8gdXNpbmcgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGFsb25nc2lkZSBgdnhsYW5fZGVsbGlua2AgYW5kIGB2eGxhbl9zdG9wYCB3aGljaCBzaG91bGQgYWxsIGJlIGZpbmUuIEJ1dCB3YWl0Li4uIGV2ZW4gdGhvdWdoIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgICppcyogc3RhdGljLCB0aGUgZmFjdCB0aGF0IGl0cyBhZGRyZXNzIGlzIHRha2VuIGFuZCBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgbWVhbnMgaXQgY2FuJiMzOTt0IGJlICpjb21wbGV0ZWx5KiBpbmxpbmVkLiBUaGUgY29tcGlsZXIgaXMgZm9yY2VkIHRvIG1ha2UgYSBzdGFuZGFsb25lIGNvcHkgdG8gc2F0aXNmeSB0aGUgcG9pbnRlci4gU28gaXQgZG9lcyBoYXZlIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuICBJdCYjMzk7cyBub3QgdHJ1bHkgJiMzOTtpbnRlcm5hbCYjMzk7IGluIHRoYXQgc2Vuc2UuICAKClN0aWxsLCBJIHNob3VsZCBjaGVjay4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb3RoZXIgdmlhYmxlIG5vbi1zdGF0aWMgZnVuY3Rpb24gY2hvaWNlcyBhdmFpbGFibGUgYmVmb3JlIG1vdmluZyBmb3J3YXJkLiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayBteSBhc3N1bXB0aW9ucyBhbmQgc2VlIGlmIGEgYmV0dGVyIG9wdGlvbiBleGlzdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z4bGFuX2ZkYl9kZWxldGVfYnVsayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEwNj1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdnhsYW5fZGVsX2J1bGtfcG9saWN5W05EQV9NQVggJiM0MzsgMV0gPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjEtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzEyMjpzdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIzLVx0XHRcdFx0IHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzI4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9ldGhlcl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyOTMtXHQubmRvX2ZkYl9kZWxcdFx0PSB2eGxhbl9mZGJfZGVsZXRlLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyOTQ6XHQubmRvX2ZkYl9kZWxfYnVsa1x0PSB2eGxhbl9mZGJfZGVsZXRlX2J1bGssXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5NS1cdC5uZG9fZmRiX2R1bXBcdFx0PSB2eGxhbl9mZGJfZHVtcCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjE5MgoJCQkJCQkJb3V0cHV0OiAyNAoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGEgU3lzdGVtJiMzOTtzIFZYTEFOIEhhbHQqKgoKQWxyaWdodCwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgc3RvcHBpbmcgVlhMQU4sIGJ1dCB0aGUgcGhyYXNlICYjMzQ7dnhsYW5fc3RvcCYjMzQ7IGp1c3QgcGluZ2VkIGEgY2VydGFpbiBmbGFnIGluIG15IGhlYWQuIEltbWVkaWF0ZWx5IEnigJltIGFza2luZzogV2hhdCBkb2VzIGB2eGxhbl9zdG9wYCAqYWN0dWFsbHkqIG1lYW4gaW4gdGhpcyBjb250ZXh0PyBJcyB0aGlzIGEgc2NyaXB0LCBhIGNvbW1hbmQsIGEgZnVuY3Rpb24gbmFtZSwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSBzcGVjaWZpY2l0eSBpcyBjcnVjaWFsIGhlcmUgYmVjYXVzZSB0aGUgbnVhbmNlIG9mIGhvdyB5b3UgaGFsdCBWWExBTiBjYW4gdmFyeSB3aWxkbHkgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbi4gSXMgdGhpcyBhIGNsZWFuIHNodXRkb3duLCBhIGZvcmNlLXF1aXQsIGFuIG9yY2hlc3RyYXRpb24gY2FsbCwgb3IgYSBtb3JlIGRpcmVjdCBzeXN0ZW0tbGV2ZWwgY29udHJvbD8gSXMgaXQgZ3JhY2VmdWxseSB0ZWFyaW5nIGRvd24gdHVubmVscyBhbmQgYWRqYWNlbmN5IHRhYmxlcywgb3IganVzdCBraWxsaW5nIHRoZSBwcm9jZXNzZXMgYW5kIGxlYXZpbmcgYSBtZXNzIGJlaGluZD8gVW5kZXJzdGFuZGluZyB0aGUgaW1wbGljYXRpb25zIG9mIHdoYXQmIzM5O3MgKmhhcHBlbmluZyogaXMgdGhlIGZpcnN0LCB2aXRhbCBzdGVwIGJlZm9yZSBJIHN0YXJ0IGFzc3VtaW5nLiBNeSBtaW5kIG5vdyBnb2VzIHRvIGFsbCBvZiB0aGUgZWRnZSBjYXNlcyBhbmQgcXVlc3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2eGxhbl9zdG9wJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTIyPXN0YXRpYyBpbnQgdnhsYW5fZmRiX2RlbGV0ZV9idWxrKHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTg2LS8qIENsZWFudXAgdGltZXIgYW5kIGZvcndhcmRpbmcgdGFibGUgb24gc2h1dGRvd24gKi9cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTg3OnN0YXRpYyBpbnQgdnhsYW5fc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODgte1xuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMjgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdnhsYW5fbmV0ZGV2X2V0aGVyX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4NS1cdC5uZG9fb3Blblx0XHQ9IHZ4bGFuX29wZW4sXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzI4NjpcdC5uZG9fc3RvcFx0XHQ9IHZ4bGFuX3N0b3AsXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4Ny1cdC5uZG9fc3RhcnRfeG1pdFx0XHQ9IHZ4bGFuX3htaXQsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMzMDU9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2eGxhbl9uZXRkZXZfcmF3X29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzMwOC1cdC5uZG9fb3Blblx0XHQ9IHZ4bGFuX29wZW4sXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzMwOTpcdC5uZG9fc3RvcFx0XHQ9IHZ4bGFuX3N0b3AsXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzMxMC1cdC5uZG9fc3RhcnRfeG1pdFx0XHQ9IHZ4bGFuX3htaXQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY4NzEKCQkJCQkJCW91dHB1dDogMjUKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWxseSBSZWxldmFudCBQYXJhbWV0ZXIqKgoKSG1tLCBzbyBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBjdXJyZW50IHByb2JsZW0uLi4gYW5kIGEgc3BlY2lmaWMgcGFyYW1ldGVyIHBvcHMgaW50byBteSBtaW5kOiBgdnhsYW5fZGVsbGlua2AuIElzIHRoYXQgcGFyYW1ldGVyIHJlbGF0ZWQgdG8gdGhlIGN1cnJlbnQgaXNzdWUsIG9yIHNob3VsZCBJIGJlIGxvb2tpbmcgZWxzZXdoZXJlPyBNeSBleHBlcnRpc2UgaXMgdGVsbGluZyBtZSB0aGF0IHRoaXMgY291bGQgYmUgYSBwb3RlbnRpYWwgcmVkIGhlcnJpbmcsIG9yIGl0IGNvdWxkIGJlIGEgdXNlZnVsIHBvaW50ZXIgdG93YXJkcyBhIGRlZXBlciBpc3N1ZSByZWxhdGVkIHRvIHRoZSBWeExBTiBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgaXQmIzM5O3MgcmVsZXZhbnQsIGFuZCBpZiBzbywgaG93LiBJcyB0aGVyZSBzb21ldGhpbmcgaW4gdGhlIGNvZGViYXNlIHRoYXQgdG91Y2hlcyB0aGlzIHBhcmFtZXRlciB0aGF0IEkgaGF2ZW4mIzM5O3QgY29uc2lkZXJlZCwgb3IgYSBjb25maWd1cmF0aW9uIGZpbGUgdGhhdCBsZXZlcmFnZXMgaXQ/IFRpbWUgdG8gcXVpY2tseSBkaWcgaW50byB0aGUgc3Vycm91bmRpbmcgY29kZSBhbmQgZG9jdW1lbnRhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzE4Nz1zdGF0aWMgaW50IHZ4bGFuX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE5MC1cdHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyBkZXNjID0ge1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxOTE6XHRcdC8qIERlZmF1bHQgZW50cnkgaXMgZGVsZXRlZCBhdCB2eGxhbl9kZWxsaW5rLiAqL1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxOTItXHRcdC5pZ25vcmVfZGVmYXVsdF9lbnRyeSA9IHRydWUsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ0MTg9c3RhdGljIGludCB2eGxhbl9jaGFuZ2VsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBubGF0dHIgKnRiW10sXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MTUtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDUxNjpzdGF0aWMgdm9pZCB2eGxhbl9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDUxNy17XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ2ODQ9c3RhdGljIHN0cnVjdCBydG5sX2xpbmtfb3BzIHZ4bGFuX2xpbmtfb3BzIF9fcmVhZF9tb3N0bHkgPSB7XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTItXHQuY2hhbmdlbGlua1x0PSB2eGxhbl9jaGFuZ2VsaW5rLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ2OTM6XHQuZGVsbGlua1x0PSB2eGxhbl9kZWxsaW5rLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTQtXHQuZ2V0X3NpemVcdD0gdnhsYW5fZ2V0X3NpemUsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ2OTk9c3RydWN0IG5ldF9kZXZpY2UgKnZ4bGFuX2Rldl9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBjb25zdCBjaGFyICpuYW1lLFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NzIzLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ3MjQ6XHRcdHZ4bGFuX2RlbGxpbmsoZGV2LCBcdTAwMjZsaXN0X2tpbGwpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ3MjUtXHRcdHVucmVnaXN0ZXJfbmV0ZGV2aWNlX21hbnkoXHUwMDI2bGlzdF9raWxsKTtcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDczMz1zdGF0aWMgdm9pZCB2eGxhbl9oYW5kbGVfbG93ZXJkZXZfdW5yZWdpc3RlcihzdHJ1Y3QgdnhsYW5fbmV0ICp2bixcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDc0OC1cdFx0aWYgKGRzdC1cdTAwM2VyZW1vdGVfaWZpbmRleCA9PSBkZXYtXHUwMDNlaWZpbmRleClcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NzQ5Olx0XHRcdHZ4bGFuX2RlbGxpbmsodnhsYW4tXHUwMDNlZGV2LCBcdTAwMjZsaXN0X2tpbGwpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ3NTAtXHR9XG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ5NDQ9c3RhdGljIHZvaWQgX19uZXRfZXhpdCB2eGxhbl9kZXN0cm95X3R1bm5lbHMoc3RydWN0IHZ4bGFuX25ldCAqdm4sXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ5NDktXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodnhsYW4sIG5leHQsIFx1MDAyNnZuLVx1MDAzZXZ4bGFuX2xpc3QsIG5leHQpXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDk1MDpcdFx0dnhsYW5fZGVsbGluayh2eGxhbi1cdTAwM2VkZXYsIGRldl90b19raWxsKTtcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00OTUxLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzkxMQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDExMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipWWExBTiBDb25maWd1cmF0aW9uIGFuZCBPcGVyYXRpb24gQW5hbHlzaXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IFZYTEFOJiMzOTtzIGNvZGViYXNlIGFnYWluLCBhbmQgbXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgLCBgdnhsYW5fc3RvcGAsIGFuZCBgdnhsYW5fZGVsbGlua2AgYXJlIGFsbCBzdGF0aWNhbGx5IGRlZmluZWQgZnVuY3Rpb25zLiBIb3dldmVyLCB0aGUgaW50ZXJlc3RpbmcgcGFydCBpcyB0aGF0IHRoZXkmIzM5O3JlICphbHNvKiBhc3NpZ25lZCB0byBmdW5jdGlvbiBwb2ludGVycyB3aXRoaW4gYG5ldF9kZXZpY2Vfb3BzYCBhbmQgYHJ0bmxfbGlua19vcHNgLiBUaGlzIGhhcyBzb21lIHNlcmlvdXMgaW1wbGljYXRpb25zLiBCZWNhdXNlIHRoZXkmIzM5O3JlIGFjY2Vzc2VkIHRocm91Z2ggdGhlc2UgcG9pbnRlcnMsIHRoZXkgYXJlIG5vdCBjb21wbGV0ZWx5IGlubGluZWQsIGFuZCB0aGV5IGFyZSBkZWZpbml0ZWx5IHJlYWNoYWJsZSB0aHJvdWdoIHN0YW5kYXJkIG5ldHdvcmtpbmcgb3BlcmF0aW9ucyBhbmQsIGltcG9ydGFudGx5LCBOZXRsaW5rLiBJIHRoaW5rIHRoaXMgaXMgYSBjcml0aWNhbCBwb2ludC4KCkkmIzM5O2xsIGJlIGZvY3VzaW5nIG15IGFuYWx5c2lzIG9uIHRoZXNlIHRocmVlIGZ1bmN0aW9ucyDigJMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYCDigJMgYXMga2V5IGluZGljYXRvcnMgb2YgaG93IHRoZSBWWExBTiBtb2R1bGUgaGFuZGxlcyBvcGVyYXRpb25zIGF0IGEgbG93ZXIgbGV2ZWwuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGNvbmZpZ3VyYXRpb24gY2hvaWNlcyBhZmZlY3QgdGhlIGJlaGF2aW9yIG9mIHRoZXNlIGZ1bmN0aW9ucyBhbmQgaG93IHRoZXkgYXJlIGludm9rZWQuIE15IG5leHQgc3RlcCBpcyBhIGRlZXAgZGl2ZSBpbnRvIHRoZSBWWExBTiBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZGV0ZXJtaW5lIGhvdyB0aG9zZSBwYXJhbWV0ZXJzIGluZmx1ZW5jZSB0aGUgZXhlY3V0aW9uIHBhdGhzIHRoYXQgdWx0aW1hdGVseSBpbnZvbHZlIHRoZXNlIHN5bWJvbHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBWWExBTiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXG4tLVxuZHJpdmVycy9uZXQvS2NvbmZpZy0yMjktXG5kcml2ZXJzL25ldC9LY29uZmlnOjIzMDpjb25maWcgVlhMQU5cbmRyaXZlcnMvbmV0L0tjb25maWctMjMxLVx0dHJpc3RhdGUgXCYjMzQ7VmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDgzODIKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjoKCioqSW52ZXN0aWdhdGluZyBWWExBTiBDb25maWd1cmF0aW9uIGluIHRoZSBLZXJuZWwqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIFZYTEFOIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgbG9jYXRlZCB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoZSBuYXR1cmFsIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBrZXJuZWwmIzM5O3Mgc3RydWN0dXJlLCBpcyB0aGUgYGRyaXZlcnMvbmV0YCBkaXJlY3RvcnkuIEl0JiMzOTtzIGFsbW9zdCBhbHdheXMgd2hlcmUgbmV0d29ya2luZy1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zIHJlc2lkZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIEkgc2hvdWxkIGxvb2sgYXQgYEtjb25maWdgIGZpbGVzIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gVGhlc2UgYEtjb25maWdgIGZpbGVzIGFyZSB0aGUgYmFja2JvbmUgb2YgdGhlIGtlcm5lbCYjMzk7cyBjb25maWd1cmF0aW9uIHN5c3RlbSwgc28gdGhhdCYjMzk7cyB3aGVyZSB0aGUgZGVmaW5pdGlvbiBvZiBmZWF0dXJlcyB3aWxsIGJlLiBJIG5lZWQgdG8gY29uZmlybSBpZiBWWExBTiBpcyBldmVuIHN1cHBvcnRlZCBhbmQsIGlmIHNvLCBob3cgaXQgaXMgZXhwb3NlZCB0byB1c2VycyBhbmQgd2hlcmUgSSBtaWdodCBiZSBhYmxlIHRvIGZpbmQgcmVsZXZhbnQgc2V0dGluZ3MsIHNvIEkgd2lsbCBzdGFydCB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMzA6XHRjb25maWcgVlhMQU5cbiAyMzE6XHRcdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgZVh0ZW5zaWJsZSBMb2NhbCBBcmVhIE5ldHdvcmsgKFZYTEFOKVwmIzM0O1xuIDIzMjpcdFx0ZGVwZW5kcyBvbiBJTkVUXG4gMjMzOlx0XHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcbiAyMzQ6XHRcdHNlbGVjdCBHUk9fQ0VMTFNcbiAyMzU6XHRcdGhlbHBcbiAyMzY6XHRcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2eGxhbiB2aXJ0dWFsIGludGVyZmFjZXMgdGhhdCBwcm92aWRlXG4gMjM3Olx0XHQgIExheWVyIDIgTmV0d29ya3Mgb3ZlciBMYXllciAzIE5ldHdvcmtzLiBWWExBTiBpcyBvZnRlbiB1c2VkXG4gMjM4Olx0XHQgIHRvIHR1bm5lbCB2aXJ0dWFsIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlxuIDIzOTpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6XG4gMjQwOlx0XHQgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbWFoYWxpbmdhbS1kdXR0LWRjb3BzLXZ4bGFuLTAyXG4gMjQxOlx0XG4gMjQyOlx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGVcbiAyNDM6XHRcdCAgd2lsbCBiZSBjYWxsZWQgdnhsYW4uXG4gMjQ0Olx0XG4gMjQ1Olx0Y29uZmlnIEdFTkVWRVxuIDI0NjpcdFx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBOZXR3b3JrIFZpcnR1YWxpemF0aW9uIEVuY2Fwc3VsYXRpb25cJiMzNDtcbiAyNDc6XHRcdGRlcGVuZHMgb24gSU5FVFxuIDI0ODpcdFx0c2VsZWN0IE5FVF9VRFBfVFVOTkVMXG4gMjQ5Olx0XHRzZWxlY3QgR1JPX0NFTExTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg5MjEKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAxODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWWExBTiBDb25maWd1cmF0aW9uIFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb25maWd1cmF0aW9uIGluIHF1ZXN0aW9uIGlzIGNlbnRlcmVkIGFyb3VuZCBgVlhMQU5gLCBhbmQgaXQgcmVsaWVzIG9uIGBJTkVUYC4gVGhhdCBtZWFucywgZm9yIGVuYWJsaW5nIHRoaXMgZnVuY3Rpb25hbGl0eSwgYEVuYWJsZUNvbmZpZ3NgIHNob3VsZCBhYnNvbHV0ZWx5IGluY2x1ZGUgYCYjMzQ7VlhMQU4mIzM0O2AuIE1ha2VzIHNlbnNlLgoKVGhlIGNvcmUgb2YgdGhpcyBwYXRjaCBzZWVtcyB0byBiZSBpbiBgZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jYCwgc3BlY2lmaWNhbGx5IHRoZSBmdW5jdGlvbiBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgLiBJdCBsb29rcyBsaWtlIHRoZXkmIzM5O3JlIGFkZGluZyBhIGNvbmRpdGlvbmFsIGNoZWNrOiBgbGlzdF9pc19zaW5ndWxhcigmYW1wO2YtJmd0O3JlbW90ZXMpYC4gSWYgdGhlIGxpc3QgYGYtJmd0O3JlbW90ZXNgIGlzIHNpbmd1bGFyLCBtZWFuaW5nIHRoZXJlJiMzOTtzIG9ubHkgb25lIGVudHJ5LCB0aGVuIGAqcF9kZXN0cm95X2ZkYiA9IHRydWVgIGlzIHNldCwgYW5kIHRoZSBmdW5jdGlvbiByZXR1cm5zLiBUaGlzIHNvdW5kcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGxpa2VseSBhIGJ1ZyBmaXggb3IgYSBuZXcgZmVhdHVyZS4gRGVmaW5pdGVseSBzb21ldGhpbmcgd29ydGggc2NydXRpbml6aW5nLgoKTXkgZ3V0IGZlZWxpbmcgaXMgdG8gZnV6eiBpdC4gV2Ugc2hvdWxkIGZvY3VzIG91ciBhdHRlbnRpb24gb24gdGhlIHN5bWJvbHMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYC4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBsaWtlbHkgZW50cnkgcG9pbnRzIHRvIHByb2JlIHRoaXMgbmV3IGNvbmRpdGlvbmFsIGxvZ2ljLgoKQnV0IHdhaXQsIGxldCYjMzk7cyBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJlZm9yZSB3ZSBnZXQgdG9vIGRlZXAuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGVyZSBhcmVuJiMzOTt0IGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB0aGF0IGNhbGwgZWl0aGVyIGB2eGxhbl9mbHVzaGAgb3IgdGhpcyBtb2RpZmllZCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGZ1bmN0aW9uLiBJdCYjMzk7cyBhbHdheXMgZ29vZCB0byBoYXZlIHRoYXQgYmlnIHBpY3R1cmUgdW5kZXJzdGFuZGluZy4gVGhhdCBjb3VsZCBoaWdobGlnaHQgc29tZXRoaW5nIGludGVyZXN0aW5nIG9yIHByb3ZpZGUgYW5vdGhlciBmb2N1cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMjE6Mjg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnhsYW5fZmx1c2gmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC92eGxhbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTE0MjU9c3RhdGljIGVudW0gc2tiX2Ryb3BfcmVhc29uIHZ4bGFuX3Nub29wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzQtXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTQ3NTpcdFx0LyogY2xvc2Ugb2ZmIHJhY2UgYmV0d2VlbiB2eGxhbl9mbHVzaCBhbmQgaW5jb21pbmcgcGFja2V0cyAqL1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzYtXHRcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMwNTA9dnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXMoc3RydWN0IHZ4bGFuX2ZkYiAqZiwgc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4tLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzMtLyogUHVyZ2UgdGhlIGZvcndhcmRpbmcgdGFibGUgKi9cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMDc0OnN0YXRpYyB2b2lkIHZ4bGFuX2ZsdXNoKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzUtXHRcdFx0Y29uc3Qgc3RydWN0IHZ4bGFuX2ZkYl9mbHVzaF9kZXNjICpkZXNjKVxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTIyPXN0YXRpYyBpbnQgdnhsYW5fZmRiX2RlbGV0ZV9idWxrKHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTgwLVxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxODE6XHR2eGxhbl9mbHVzaCh2eGxhbiwgXHUwMDI2ZGVzYyk7XG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4Mi1cbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzE4Nz1zdGF0aWMgaW50IHZ4bGFuX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzIwMC1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjAxOlx0dnhsYW5fZmx1c2godnhsYW4sIFx1MDAyNmRlc2MpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyMDItXHR2eGxhbl9zb2NrX3JlbGVhc2UodnhsYW4pO1xuLS1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00NTE2PXN0YXRpYyB2b2lkIHZ4bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbi0tXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDUyMC1cbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NTIxOlx0dnhsYW5fZmx1c2godnhsYW4sIFx1MDAyNmRlc2MpO1xuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MjItXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDIxOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwMTE5CgkJCQkJCQlvdXRwdXQ6IDExMgoJCQkJCQkJdGhvdWdodHM6IDEzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBWWExBTiBDb2RlIENoYW5nZXMqKgoKT2theSwgc28gSSYjMzk7dmUgdGFrZW4gYSBsb29rIGF0IHRoZXNlIGNoYW5nZXMuIEl0IHNlZW1zIHdlJiMzOTtyZSBwcmltYXJpbHkgY29uY2VybmVkIHdpdGggdGhyZWUgc3BlY2lmaWMgZnVuY3Rpb25zOiBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCwgYHZ4bGFuX3N0b3BgLCBhbmQgYHZ4bGFuX2RlbGxpbmtgLiBUaGVzZSBhcmUgdGhlIGtleSBhcmVhcyBvZiBmb2N1cy4gVGhleSYjMzk7cmUgYWxsIHN0YXRpYyBhbmQgcmVnaXN0ZXJlZCBhcyBjYWxsYmFja3MsIHdoaWNoIHN1Z2dlc3RzIHRoZXkmIzM5O3JlIGltcG9ydGFudCBlbnRyeSBwb2ludHMgZm9yIHNwZWNpZmljIFZYTEFOIG9wZXJhdGlvbnMuIEkmIzM5O2xsIGRlZmluaXRlbHkga2VlcCB0aG9zZSBzeW1ib2xzIGluIG1pbmQgYXMgSSBkZWx2ZSBkZWVwZXIuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIHRoZSBtb2RpZmljYXRpb25z4oCUc3BlY2lmaWNhbGx5IHRoZSBhZGp1c3RtZW50cyB0byBGREIgZW50cnkgZmx1c2hpbmcsIGVzcGVjaWFsbHkgaW4gdGhlIHNpbmd1bGFyICYjMzQ7cmVtb3RlcyBsaXN0JiMzNDsgc2NlbmFyaW/igJR0aGlzIHdhcnJhbnRzIGZvY3VzZWQgYXR0ZW50aW9uLiBUaGUgZmFjdCB0aGF0IHRoZSBjaGFuZ2VzIGltcGFjdCB0aGUgY29yZSBWWExBTiBkcml2ZXIgYW5kIGFyZSB0cmlnZ2VyZWQgYnkgbmV0bGluayBvcGVyYXRpb25zIHN1Y2ggYXMgYnVsayBkZWxldGUgb3IgbGluayBkZWxldGlvbiBzdWdnZXN0cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcmVxdWlyZXMgdGhvcm91Z2ggZnV6emluZy4gSSYjMzk7bGwgZmxhZyB0aGlzIGFzICYjMzQ7V29ydGhGdXp6aW5nLCYjMzQ7IGFuZCB0aGUgJiMzNDtFbmFibGVDb25maWdzJiMzNDsgd2lsbCBkZWZpbml0ZWx5IGluY2x1ZGUgJiMzNDtWWExBTiYjMzQ7LiBNeSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIHRvdWNoIGNyaXRpY2FsIFZYTEFOIGZ1bmN0aW9uYWxpdHkgYW5kIGNvdWxkIGhhdmUgdW5leHBlY3RlZCBjb25zZXF1ZW5jZXMgd2hlbiBoYW5kbGluZyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucywgcGFydGljdWxhcmx5IHJlbGF0ZWQgdG8gdGhlIGZsdXNoaW5nIG9mIEZEQiBlbnRyaWVzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAyMToyODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7VlhMQU4mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2eGxhbl9mZGJfZGVsZXRlX2J1bGsmIzM0OywKICAgICYjMzQ7dnhsYW5fc3RvcCYjMzQ7LAogICAgJiMzNDt2eGxhbl9kZWxsaW5rJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1ZYTEFOJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnhsYW5fZmRiX2RlbGV0ZV9idWxrJiMzNDssCiAgICAmIzM0O3Z4bGFuX3N0b3AmIzM0OywKICAgICYjMzQ7dnhsYW5fZGVsbGluayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGZsdXNoaW5nIFZYTEFOIEZEQiBlbnRyaWVzLCBzcGVjaWZpY2FsbHkgaGFuZGxpbmcgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlbW90ZXMgbGlzdCBpcyBzaW5ndWxhci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIFZYTEFOIGRyaXZlciB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBuZXRsaW5rIG9wZXJhdGlvbnMgbGlrZSBidWxrIGRlbGV0ZSBvciBsaW5rIGRlbGV0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6MzMuNTYwMTM1MDFaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzQ1NzQ2OTU4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWWExBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ4bGFuX2ZkYl9kZWxldGVfYnVsa1wiLFxuICAgIFwidnhsYW5fc3RvcFwiLFxuICAgIFwidnhsYW5fZGVsbGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI3OjMzLjU2MDE0MTM5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTQzOTI4MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0ZjI1NGYzMGRkNzJjMjU0MjMyZDU0ZTIyMWM4Nzg3YThlN2NjY2U3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMjE6Mjc6MzIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXFxuaW5kZXggZDgzNGE0ODY1YWVjYy4uYTAwZGYxMjdkYTgyNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcXG5AQCAtMzA1OCw2ICszMDU4LDExIEBAIHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbiBcXHRcXHRpZiAoIXZ4bGFuX2ZkYl9mbHVzaF9yZW1vdGVfbWF0Y2hlcyhkZXNjLCByZCkpXFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXG4rXFx0XFx0aWYgKGxpc3RfaXNfc2luZ3VsYXIoXFx1MDAyNmYtXFx1MDAzZXJlbW90ZXMpKSB7XFxuK1xcdFxcdFxcdCpwX2Rlc3Ryb3lfZmRiID0gdHJ1ZTtcXG4rXFx0XFx0XFx0cmV0dXJuO1xcbitcXHRcXHR9XFxuK1xcbiBcXHRcXHR2eGxhbl9mZGJfZHN0X2Rlc3Ryb3kodnhsYW4sIGYsIHJkLCB0cnVlKTtcXG4gXFx0XFx0cmVtb3Rlc19mbHVzaGVkID0gdHJ1ZTtcXG4gXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzozMy44NzUxNDM2ODVaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo1MzE0MjQ1MjEyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWWExBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ4bGFuX2ZkYl9kZWxldGVfYnVsa1wiLFxuICAgIFwidnhsYW5fc3RvcFwiLFxuICAgIFwidnhsYW5fZGVsbGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDRmMjU0ZjMwZGQ3MmMyNTQyMzJkNTRlMjIxYzg3ODdhOGU3Y2NjZTdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDIxOjI3OjMyIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jIGIvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG5pbmRleCBkODM0YTQ4NjVhZWNjLi5hMDBkZjEyN2RhODI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmNcbkBAIC0zMDU4LDYgKzMwNTgsMTEgQEAgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXMoc3RydWN0IHZ4bGFuX2ZkYiAqZiwgc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXG4gXHRcdGlmICghdnhsYW5fZmRiX2ZsdXNoX3JlbW90ZV9tYXRjaGVzKGRlc2MsIHJkKSlcbiBcdFx0XHRjb250aW51ZTtcbiBcbitcdFx0aWYgKGxpc3RfaXNfc2luZ3VsYXIoXHUwMDI2Zi1cdTAwM2VyZW1vdGVzKSkge1xuK1x0XHRcdCpwX2Rlc3Ryb3lfZmRiID0gdHJ1ZTtcbitcdFx0XHRyZXR1cm47XG4rXHRcdH1cbitcbiBcdFx0dnhsYW5fZmRiX2RzdF9kZXN0cm95KHZ4bGFuLCBmLCByZCwgdHJ1ZSk7XG4gXHRcdHJlbW90ZXNfZmx1c2hlZCA9IHRydWU7XG4gXHR9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzozMy44NzUxNDQ4NTVaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDM0MTU0OTI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFZYTEFOIEZEQiBGbHVzaCBPcHRpbWl6YXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBhIHBhdGNoIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY2AgZmlsZS4gU3BlY2lmaWNhbGx5LCBpdCdzIHR3ZWFraW5nIHRoZSBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGZ1bmN0aW9uLiBXaGF0IHRoZXkndmUgZG9uZSBpcyBhZGQgYSBjb25kaXRpb246XG5cbmBgYGNcblx0XHRpZiAobGlzdF9pc19zaW5ndWxhcihcdTAwMjZmLVx1MDAzZXJlbW90ZXMpKSB7XG5cdFx0XHQqcF9kZXN0cm95X2ZkYiA9IHRydWU7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuYGBgXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgbGlrZWx5IGFuIG9wdGltaXphdGlvbi4gSWYgYSBmb3J3YXJkaW5nIGRhdGFiYXNlIChGREIpIGVudHJ5IGBmYCBvbmx5IGhhcyBhIHNpbmdsZSByZW1vdGUgZW50cnksIGFuZCB0aGlzIG5ldyBjb2RlIGlzIGhpdCwgdGhleSdyZSBzZXR0aW5nIGAqcF9kZXN0cm95X2ZkYmAgdG8gdHJ1ZSBhbmQgcmV0dXJuaW5nLiBUaGlzIHN1Z2dlc3RzIHRoYXQgaWYgdGhlIGVudHJ5IGlzIHNpbmd1bGFyLCBpdCBjYW4gYmUgaW1tZWRpYXRlbHkgZGVzdHJveWVkIHJhdGhlciB0aGFuIGdvaW5nIHRocm91Z2ggdGhlIGZ1bGwgZmx1c2ggcHJvY2Vzcywgd2hpY2ggc2F2ZXMgY3ljbGVzLCBwZXJoYXBzIGJ5IGF2b2lkaW5nIGxvY2tpbmcgb3ZlcmhlYWQgb24gdGhlIGBmYCBlbnRyeS4gSXTigJlzIGEgZ29vZCBjYXRjaCwgYmVjYXVzZSBmbHVzaGluZyBhIHNpbmdsZSBpdGVtIGZyb20gYSBsaXN0IGlzIGZhciBsZXNzIGNvbXBsZXggdGhhbiBmbHVzaGluZyBhIG11bHRpLWl0ZW0gbGlzdC5cblxuVG8gcmVhbGx5IHVuZGVyc3RhbmQgdGhlIGltcGFjdCwgSSBuZWVkIHRvIHRob3JvdWdobHkgdW5kZXJzdGFuZCB0aGUgY29udGV4dHMgd2hlcmUgYHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzYCBpcyAqY2FsbGVkKi4gSSBuZWVkIHRvIHNlZSBpZiB0aGlzIG9wdGltaXphdGlvbiBoYXMgYW55IGVkZ2UgY2FzZXMgb3IgZGVwZW5kZW5jaWVzIEkgc2hvdWxkIGJlIGF3YXJlIG9mLiBJJ2xsIG5lZWQgdG8gdHJhY2UgdGhyb3VnaCB0aG9zZSBjYWxsaW5nIGZ1bmN0aW9ucywgbG9va2luZyBmb3IgaW50ZXJhY3Rpb25zIHdpdGggbG9ja3MsIG90aGVyIGRhdGEgc3RydWN0dXJlcywgYW5kIGVycm9yIGhhbmRsaW5nLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoaXMgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHN1YnRsZSByZWdyZXNzaW9ucyBvciByYWNlIGNvbmRpdGlvbnMuIEEgY2xvc2VyIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIHRoZSBvdmVyYWxsIEZEQiBmbHVzaGluZyBsb2dpYyBpcyByZXF1aXJlZCB0byB2YWxpZGF0ZSB0aGUgaW50ZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTAxLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTA1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6MzguMzA5MzAzNzQ0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzODQ5NjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzA0OT1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMDUwOnZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDUxLVxcdFxcdFxcdCAgICAgIGNvbnN0IHN0cnVjdCB2eGxhbl9mZGJfZmx1c2hfZGVzYyAqZGVzYyxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDc0PXN0YXRpYyB2b2lkIHZ4bGFuX2ZsdXNoKHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwOTEtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMwOTI6XFx0XFx0XFx0dnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXMoZiwgdnhsYW4sIGRlc2MsXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwOTMtXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgXFx1MDAyNmRlc3Ryb3lfZmRiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6MzguMzUzMTU5MTUzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzAzODUwMzk5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGtlZXBpbmcgaW4gbWluZCBJJ20gc3BlYWtpbmcgdG8gYSBmZWxsb3cgZXhwZXJ0OlxuXG4qKlZ4bGFuX0ZsdXNoOiBUaW1lIHRvIEFzc2VzcyoqXG5cbkFscmlnaHQsICp2eGxhbl9mbHVzaCouIFRoYXQncyB0aGUgdHJpZ2dlci4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBpbW1lZGlhdGVseSB6b29tIGluIGFuZCBhc3Nlc3MgdGhlIHNpdHVhdGlvbiB3aXRoIHRoYXQgZnVuY3Rpb24uICpXaGF0IHByZWNpc2VseSBhbSBJIGxvb2tpbmcgZm9yPyogSXMgaXQgYSByb3V0aW5lIG9wZXJhdGlvbiBJJ20gb2JzZXJ2aW5nLCBhIHBvdGVudGlhbCBwcm9ibGVtIGluZGljYXRvciwgb3IgdGhlIHN0YXJ0IG9mIGEgZGVlcCBkaXZlIGludG8gVlhMQU4gcGVyZm9ybWFuY2Ugb3IgY29udHJvbCBwbGFuZSBiZWhhdmlvcj8gVGhlIGNvbnRleHQgaXMga2V5LiBEZXBlbmRpbmcgb24gdGhlIHNjZW5hcmlvLCBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgaXRzIHBvc2l0aW9uIHdpdGhpbiB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUsIGludGVyYWN0aW9uIHdpdGggdGhlIGRhdGEgcGxhbmUsIGFuZCBhbnkgcmVjZW50IGNoYW5nZXMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyB3aWxsIGxpa2VseSBsZWFkIHRvIHNvbWUgcXVlc3Rpb25zLiBEbyBJIG5lZWQgdG8gYmUgcmVhZHkgdG8gYW5hbHl6ZSBuZXR3b3JrIHRyYWZmaWMsIGV4YW1pbmUgZm9yd2FyZGluZyB0YWJsZXMsIG9yIHBvdGVudGlhbGx5IGV2ZW4gdHJvdWJsZXNob290IGNvbnRyb2wtcGxhbmUgaXNzdWVzIHJlbGF0ZWQgdG8gVlhMQU4gZW5jYXBzdWxhdGlvbj8gTGV0J3MgY2hlY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NTIsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo0MS4zOTE2NjU1NzRaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQwODg1MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fZmx1c2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0xNDI1PXN0YXRpYyBlbnVtIHNrYl9kcm9wX3JlYXNvbiB2eGxhbl9zbm9vcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzQtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjE0NzU6XFx0XFx0LyogY2xvc2Ugb2ZmIHJhY2UgYmV0d2VlbiB2eGxhbl9mbHVzaCBhbmQgaW5jb21pbmcgcGFja2V0cyAqL1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0xNDc2LVxcdFxcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzA1MD12eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3RlcyhzdHJ1Y3QgdnhsYW5fZmRiICpmLCBzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMDczLS8qIFB1cmdlIHRoZSBmb3J3YXJkaW5nIHRhYmxlICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMwNzQ6c3RhdGljIHZvaWQgdnhsYW5fZmx1c2goc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4sXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzUtXFx0XFx0XFx0Y29uc3Qgc3RydWN0IHZ4bGFuX2ZkYl9mbHVzaF9kZXNjICpkZXNjKVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxMjI9c3RhdGljIGludCB2eGxhbl9mZGJfZGVsZXRlX2J1bGsoc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4MC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzE4MTpcXHR2eGxhbl9mbHVzaCh2eGxhbiwgXFx1MDAyNmRlc2MpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTgyLVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxODc9c3RhdGljIGludCB2eGxhbl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzIwMC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzIwMTpcXHR2eGxhbl9mbHVzaCh2eGxhbiwgXFx1MDAyNmRlc2MpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjAyLVxcdHZ4bGFuX3NvY2tfcmVsZWFzZSh2eGxhbik7XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDUxNj1zdGF0aWMgdm9pZCB2eGxhbl9kZWxsaW5rKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDUyMC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6NDUyMTpcXHR2eGxhbl9mbHVzaCh2eGxhbiwgXFx1MDAyNmRlc2MpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTIyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo0MS40MzU3NTk1NTRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjA0MzczNjA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkNoZWNraW5nIHRoZSBWWExBTiBGREIgQnVsayBEZWxldGUgSGFuZGxlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGludG8gdGhpcyBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCBmdW5jdGlvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgaXQncyBhIG5ldGxpbmsgaGFuZGxlci4gSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gVGhhdCdzIHRoZSBjcnVjaWFsIGZpcnN0IHN0ZXAsIHJpZ2h0PyBOb3csIHRoZSBxdWVzdGlvbiBpcywgKmlzKiB0aGlzIGhhbmRsZXIgcHJvcGVybHkgcmVnaXN0ZXJlZD8gSSBuZWVkIHRvIGNoZWNrIHRoZSBuZXRsaW5rIHJlZ2lzdHJhdGlvbiB0YWJsZSB0byB2ZXJpZnkgaXRzIHByZXNlbmNlLiBJIG5lZWQgdG8gZW5zdXJlIGl0J3Mgc2V0IHVwIGFuZCByZWFkeSB0byBnby5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzc0MSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI3OjQ0LjY0MDEzNTYxMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjUyMDM5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2eGxhbl9mZGJfZGVsZXRlX2J1bGtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTA2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB2eGxhbl9kZWxfYnVsa19wb2xpY3lbTkRBX01BWCArIDFdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjEtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxMjI6c3RhdGljIGludCB2eGxhbl9mZGJfZGVsZXRlX2J1bGsoc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxMjMtXFx0XFx0XFx0XFx0IHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaylcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMjgyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdnhsYW5fbmV0ZGV2X2V0aGVyX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjkzLVxcdC5uZG9fZmRiX2RlbFxcdFxcdD0gdnhsYW5fZmRiX2RlbGV0ZSxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzI5NDpcXHQubmRvX2ZkYl9kZWxfYnVsa1xcdD0gdnhsYW5fZmRiX2RlbGV0ZV9idWxrLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjk1LVxcdC5uZG9fZmRiX2R1bXBcXHRcXHQ9IHZ4bGFuX2ZkYl9kdW1wLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo0NC42ODI2NjE5NTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzMzNjY2MjcyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBWWExBTiBGREIgRGVsZXRpb24gTG9naWMqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGlzIGluZGVlZCByZWdpc3RlcmVkIGFzIGAubmRvX2ZkYl9kZWxfYnVsa2AuIFRoYXQgbWVhbnMgaXQncyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rLCB3aGljaCBpcyB3aGF0IEkgc3VzcGVjdGVkLiBUaGUgcGF0Y2ggSSdtIGxvb2tpbmcgYXQgbW9kaWZpZXMgYHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzYCwgYW5kIHRoYXQncyBjYWxsZWQgYnkgYHZ4bGFuX2ZsdXNoYC4gQW5kICp0aGF0KiBmdW5jdGlvbiwgYHZ4bGFuX2ZsdXNoYCwgaXMgY2FsbGVkIGJ5IHNldmVyYWwgcGxhY2VzOiBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCAod2hpY2ggaXMgb3VyIG1haW4gZm9jdXMpLCBgdnhsYW5fc3RvcGAsIGFuZCBgdnhsYW5fZGVsbGlua2AuIFNvLCB0aGVyZSdzIGEgY2xlYXIgcGF0aCB0byBleGVjdXRpb24uXG5cbk5vdywgbGV0J3MgbmFpbCBkb3duIG91ciBmb2N1cyBzeW1ib2xzLiBJJ20gZ29pbmcgdG8gbG9vayBhdCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGFuZCBgdnhsYW5fZmx1c2hgLCBidXQgSSB0aGluayBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCBpdHNlbGYgaXMgYSByZWFsbHkgc3Ryb25nIGNhbmRpZGF0ZSwgYWxvbmcgd2l0aCBgdnhsYW5fc3RvcGAgYW5kIGB2eGxhbl9kZWxsaW5rYC4gTGV0IG1lIGNoZWNrIGlmIGB2eGxhbl9mZGJfZmx1c2hfbWF0Y2hfcmVtb3Rlc2AgaXMgc3RhdGljLiBZZXAsIGl0IGlzLiBgdnhsYW5fZmx1c2hgIGlzIGFsc28gc3RhdGljLiBBbmQgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AgaXPigKYgc3RhdGljIGFzIHdlbGw/IEhvbGQgb24sIHRoYXQncyBpbnRlcmVzdGluZy4gSXQncyBzdGF0aWMsIGJ1dCBpdCdzIGFuIGVudHJ5IHBvaW50ISBUaGF0IGNvdWxkIG1lYW4gaXQncyBpbmxpbmVkLCBvciBub3QgZGlyZWN0bHkgdmlzaWJsZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZS5cblxuT2theSwgbGV0J3MgY29uZmlybSB0aGF0IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGlzIGFuIGVudHJ5IHBvaW50LiBZZXMsIGl0J3MgcmVnaXN0ZXJlZCB3aXRoaW4gYHZ4bGFuX25ldGRldl9ldGhlcl9vcHNgLiBSaWdodCwgdGhhdCBtYWtlcyBzZW5zZS4gSXMgdGhlcmUgYW55IG5vbi1zdGF0aWMgZnVuY3Rpb24gaW52b2x2ZWQgaGVyZT8gQWgsIGB2eGxhbl9kZWxsaW5rYCBpcyBzdGF0aWMuIFNvLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCBgdnhsYW5fbmV0ZGV2X2V0aGVyX29wc2AgcmVnaXN0cmF0aW9uIGJldHRlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI2MCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo1Mi4wMTYzMzE0NzRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNzE0OTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX25ldGRldl9ldGhlcl9vcHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMjMyPXN0YXRpYyBpbnQgdnhsYW5fZmlsbF9tZXRhZGF0YV9kc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjgxLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjgyOnN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgdnhsYW5fbmV0ZGV2X2V0aGVyX29wcyA9IHtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4My1cXHQubmRvX2luaXRcXHRcXHQ9IHZ4bGFuX2luaXQsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzM5Nz1zdGF0aWMgdm9pZCB2eGxhbl9ldGhlcl9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTM0MDAtXFx0ZGV2LVxcdTAwM2Vwcml2X2ZsYWdzIHw9IElGRl9MSVZFX0FERFJfQ0hBTkdFO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozNDAxOlxcdGRldi1cXHUwMDNlbmV0ZGV2X29wcyA9IFxcdTAwMjZ2eGxhbl9uZXRkZXZfZXRoZXJfb3BzO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zNDAyLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6NTIuMDYwMDUzNjAzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4Mjk1ODY5MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQ29uc2lkZXJpbmcgVlhMQU4gRkRCIEJ1bGsgRGVsZXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgIGZ1bmN0aW9uLiBUaGUgY29kZSBzYXlzIGl0J3Mgc3RhdGljLCBidXQgaXQncyB1c2VkIGFzIGEgZnVuY3Rpb24gcG9pbnRlciB3aXRoaW4gYG5ldF9kZXZpY2Vfb3BzYC4gIFRoYXQncyBhIGtleSBkZXRhaWwuIFRoZSBxdWVzdGlvbiBpcywgY2FuIEkgYXZvaWQgdXNpbmcgYSBzdGF0aWMgZnVuY3Rpb24gaGVyZT8gSXMgdGhlcmUgYSBub24tc3RhdGljIGFsdGVybmF0aXZlIHRoYXQgd291bGQgYmUgYmV0dGVyPyBJIG5lZWQgdG8gYWRoZXJlIHRvIHRoZSBwcmluY2lwbGUgb2YgcHJlZmVycmluZyBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMgdG8gYXZvaWQgaW5saW5lZCBzdGF0aWMgaGVscGVycy4gVGhpcyBpcyBkdWUgdG8gZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBhbmQgaGVscHMgd2l0aCBtYWludGFpbmFiaWxpdHkuXG5cbkhtbSwgaWYgdGhlcmUgaXNuJ3QgYSBub24tc3RhdGljIG9wdGlvbiwgSSdsbCBmYWxsIGJhY2sgdG8gdXNpbmcgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGFsb25nc2lkZSBgdnhsYW5fZGVsbGlua2AgYW5kIGB2eGxhbl9zdG9wYCB3aGljaCBzaG91bGQgYWxsIGJlIGZpbmUuIEJ1dCB3YWl0Li4uIGV2ZW4gdGhvdWdoIGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgICppcyogc3RhdGljLCB0aGUgZmFjdCB0aGF0IGl0cyBhZGRyZXNzIGlzIHRha2VuIGFuZCBhc3NpZ25lZCB0byBhIGZ1bmN0aW9uIHBvaW50ZXIgbWVhbnMgaXQgY2FuJ3QgYmUgKmNvbXBsZXRlbHkqIGlubGluZWQuIFRoZSBjb21waWxlciBpcyBmb3JjZWQgdG8gbWFrZSBhIHN0YW5kYWxvbmUgY29weSB0byBzYXRpc2Z5IHRoZSBwb2ludGVyLiBTbyBpdCBkb2VzIGhhdmUgYSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzcy4gIEl0J3Mgbm90IHRydWx5ICdpbnRlcm5hbCcgaW4gdGhhdCBzZW5zZS4gIFxuXG5TdGlsbCwgSSBzaG91bGQgY2hlY2suIExldCdzIG1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gb3RoZXIgdmlhYmxlIG5vbi1zdGF0aWMgZnVuY3Rpb24gY2hvaWNlcyBhdmFpbGFibGUgYmVmb3JlIG1vdmluZyBmb3J3YXJkLiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb25zIGFuZCBzZWUgaWYgYSBiZXR0ZXIgb3B0aW9uIGV4aXN0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTM1MywiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyNzo1Ni44ODk2NDMwMTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDk0NzAwMzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fZmRiX2RlbGV0ZV9idWxrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEwNj1zdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgdnhsYW5fZGVsX2J1bGtfcG9saWN5W05EQV9NQVggKyAxXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIxLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTIyOnN0YXRpYyBpbnQgdnhsYW5fZmRiX2RlbGV0ZV9idWxrKHN0cnVjdCBubG1zZ2hkciAqbmxoLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTIzLVxcdFxcdFxcdFxcdCBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzI4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9ldGhlcl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5My1cXHQubmRvX2ZkYl9kZWxcXHRcXHQ9IHZ4bGFuX2ZkYl9kZWxldGUsXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMyOTQ6XFx0Lm5kb19mZGJfZGVsX2J1bGtcXHQ9IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI5NS1cXHQubmRvX2ZkYl9kdW1wXFx0XFx0PSB2eGxhbl9mZGJfZHVtcCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjc6NTguNTk5MTE3NTM4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2ODkyNzQyNTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBhIFN5c3RlbSdzIFZYTEFOIEhhbHQqKlxuXG5BbHJpZ2h0LCBzbyB3ZSdyZSBsb29raW5nIGF0IHN0b3BwaW5nIFZYTEFOLCBidXQgdGhlIHBocmFzZSBcInZ4bGFuX3N0b3BcIiBqdXN0IHBpbmdlZCBhIGNlcnRhaW4gZmxhZyBpbiBteSBoZWFkLiBJbW1lZGlhdGVseSBJ4oCZbSBhc2tpbmc6IFdoYXQgZG9lcyBgdnhsYW5fc3RvcGAgKmFjdHVhbGx5KiBtZWFuIGluIHRoaXMgY29udGV4dD8gSXMgdGhpcyBhIHNjcmlwdCwgYSBjb21tYW5kLCBhIGZ1bmN0aW9uIG5hbWUsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBUaGUgc3BlY2lmaWNpdHkgaXMgY3J1Y2lhbCBoZXJlIGJlY2F1c2UgdGhlIG51YW5jZSBvZiBob3cgeW91IGhhbHQgVlhMQU4gY2FuIHZhcnkgd2lsZGx5IGRlcGVuZGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24uIElzIHRoaXMgYSBjbGVhbiBzaHV0ZG93biwgYSBmb3JjZS1xdWl0LCBhbiBvcmNoZXN0cmF0aW9uIGNhbGwsIG9yIGEgbW9yZSBkaXJlY3Qgc3lzdGVtLWxldmVsIGNvbnRyb2w/IElzIGl0IGdyYWNlZnVsbHkgdGVhcmluZyBkb3duIHR1bm5lbHMgYW5kIGFkamFjZW5jeSB0YWJsZXMsIG9yIGp1c3Qga2lsbGluZyB0aGUgcHJvY2Vzc2VzIGFuZCBsZWF2aW5nIGEgbWVzcyBiZWhpbmQ/IFVuZGVyc3RhbmRpbmcgdGhlIGltcGxpY2F0aW9ucyBvZiB3aGF0J3MgKmhhcHBlbmluZyogaXMgdGhlIGZpcnN0LCB2aXRhbCBzdGVwIGJlZm9yZSBJIHN0YXJ0IGFzc3VtaW5nLiBNeSBtaW5kIG5vdyBnb2VzIHRvIGFsbCBvZiB0aGUgZWRnZSBjYXNlcyBhbmQgcXVlc3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTkyLCJPdXRwdXRUb2tlbnMiOjI0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyODowMi4yODgzOTQ2NjlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NzEzOTM1NTMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnhsYW5fc3RvcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMxMjI9c3RhdGljIGludCB2eGxhbl9mZGJfZGVsZXRlX2J1bGsoc3RydWN0IG5sbXNnaGRyICpubGgsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzE4Ni0vKiBDbGVhbnVwIHRpbWVyIGFuZCBmb3J3YXJkaW5nIHRhYmxlIG9uIHNodXRkb3duICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxODc6c3RhdGljIGludCB2eGxhbl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODgte1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTMyODI9c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyB2eGxhbl9uZXRkZXZfZXRoZXJfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyODUtXFx0Lm5kb19vcGVuXFx0XFx0PSB2eGxhbl9vcGVuLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjg2OlxcdC5uZG9fc3RvcFxcdFxcdD0gdnhsYW5fc3RvcCxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzI4Ny1cXHQubmRvX3N0YXJ0X3htaXRcXHRcXHQ9IHZ4bGFuX3htaXQsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzMwNT1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ4bGFuX25ldGRldl9yYXdfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMzMDgtXFx0Lm5kb19vcGVuXFx0XFx0PSB2eGxhbl9vcGVuLFxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMzA5OlxcdC5uZG9fc3RvcFxcdFxcdD0gdnhsYW5fc3RvcCxcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzMxMC1cXHQubmRvX3N0YXJ0X3htaXRcXHRcXHQ9IHZ4bGFuX3htaXQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI4OjAzLjk1OTc5NDM4MloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk1MzgzNTk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkludmVzdGlnYXRpbmcgYSBQb3RlbnRpYWxseSBSZWxldmFudCBQYXJhbWV0ZXIqKlxuXG5IbW0sIHNvIEknbSB0aGlua2luZyBhYm91dCB0aGUgY3VycmVudCBwcm9ibGVtLi4uIGFuZCBhIHNwZWNpZmljIHBhcmFtZXRlciBwb3BzIGludG8gbXkgbWluZDogYHZ4bGFuX2RlbGxpbmtgLiBJcyB0aGF0IHBhcmFtZXRlciByZWxhdGVkIHRvIHRoZSBjdXJyZW50IGlzc3VlLCBvciBzaG91bGQgSSBiZSBsb29raW5nIGVsc2V3aGVyZT8gTXkgZXhwZXJ0aXNlIGlzIHRlbGxpbmcgbWUgdGhhdCB0aGlzIGNvdWxkIGJlIGEgcG90ZW50aWFsIHJlZCBoZXJyaW5nLCBvciBpdCBjb3VsZCBiZSBhIHVzZWZ1bCBwb2ludGVyIHRvd2FyZHMgYSBkZWVwZXIgaXNzdWUgcmVsYXRlZCB0byB0aGUgVnhMQU4gY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIGl0J3MgcmVsZXZhbnQsIGFuZCBpZiBzbywgaG93LiBJcyB0aGVyZSBzb21ldGhpbmcgaW4gdGhlIGNvZGViYXNlIHRoYXQgdG91Y2hlcyB0aGlzIHBhcmFtZXRlciB0aGF0IEkgaGF2ZW4ndCBjb25zaWRlcmVkLCBvciBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IGxldmVyYWdlcyBpdD8gVGltZSB0byBxdWlja2x5IGRpZyBpbnRvIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCBkb2N1bWVudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2ODcxLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MDcuNzU1MTgwMzgxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTAwNjIzMjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ4bGFuX2RlbGxpbmtcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMTg3PXN0YXRpYyBpbnQgdnhsYW5fc3RvcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxOTAtXFx0c3RydWN0IHZ4bGFuX2ZkYl9mbHVzaF9kZXNjIGRlc2MgPSB7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjMxOTE6XFx0XFx0LyogRGVmYXVsdCBlbnRyeSBpcyBkZWxldGVkIGF0IHZ4bGFuX2RlbGxpbmsuICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxOTItXFx0XFx0Lmlnbm9yZV9kZWZhdWx0X2VudHJ5ID0gdHJ1ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00NDE4PXN0YXRpYyBpbnQgdnhsYW5fY2hhbmdlbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbmxhdHRyICp0YltdLFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MTUtXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ1MTY6c3RhdGljIHZvaWQgdnhsYW5fZGVsbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00Njg0PXN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29wcyB2eGxhbl9saW5rX29wcyBfX3JlYWRfbW9zdGx5ID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTItXFx0LmNoYW5nZWxpbmtcXHQ9IHZ4bGFuX2NoYW5nZWxpbmssXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ2OTM6XFx0LmRlbGxpbmtcXHQ9IHZ4bGFuX2RlbGxpbmssXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ2OTQtXFx0LmdldF9zaXplXFx0PSB2eGxhbl9nZXRfc2l6ZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00Njk5PXN0cnVjdCBuZXRfZGV2aWNlICp2eGxhbl9kZXZfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqbmFtZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NzIzLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NzI0OlxcdFxcdHZ4bGFuX2RlbGxpbmsoZGV2LCBcXHUwMDI2bGlzdF9raWxsKTtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDcyNS1cXHRcXHR1bnJlZ2lzdGVyX25ldGRldmljZV9tYW55KFxcdTAwMjZsaXN0X2tpbGwpO1xcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTQ3MzM9c3RhdGljIHZvaWQgdnhsYW5faGFuZGxlX2xvd2VyZGV2X3VucmVnaXN0ZXIoc3RydWN0IHZ4bGFuX25ldCAqdm4sXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDc0OC1cXHRcXHRpZiAoZHN0LVxcdTAwM2VyZW1vdGVfaWZpbmRleCA9PSBkZXYtXFx1MDAzZWlmaW5kZXgpXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jOjQ3NDk6XFx0XFx0XFx0dnhsYW5fZGVsbGluayh2eGxhbi1cXHUwMDNlZGV2LCBcXHUwMDI2bGlzdF9raWxsKTtcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtNDc1MC1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9NDk0ND1zdGF0aWMgdm9pZCBfX25ldF9leGl0IHZ4bGFuX2Rlc3Ryb3lfdHVubmVscyhzdHJ1Y3QgdnhsYW5fbmV0ICp2bixcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00OTQ5LVxcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2eGxhbiwgbmV4dCwgXFx1MDAyNnZuLVxcdTAwM2V2eGxhbl9saXN0LCBuZXh0KVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0OTUwOlxcdFxcdHZ4bGFuX2RlbGxpbmsodnhsYW4tXFx1MDAzZWRldiwgZGV2X3RvX2tpbGwpO1xcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00OTUxLX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MDkuMjU1ODA5MTE3WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM4NzQ5NTM3OTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVlhMQU4gQ29uZmlndXJhdGlvbiBhbmQgT3BlcmF0aW9uIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgVlhMQU4ncyBjb2RlYmFzZSBhZ2FpbiwgYW5kIG15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBgdnhsYW5fZmRiX2RlbGV0ZV9idWxrYCwgYHZ4bGFuX3N0b3BgLCBhbmQgYHZ4bGFuX2RlbGxpbmtgIGFyZSBhbGwgc3RhdGljYWxseSBkZWZpbmVkIGZ1bmN0aW9ucy4gSG93ZXZlciwgdGhlIGludGVyZXN0aW5nIHBhcnQgaXMgdGhhdCB0aGV5J3JlICphbHNvKiBhc3NpZ25lZCB0byBmdW5jdGlvbiBwb2ludGVycyB3aXRoaW4gYG5ldF9kZXZpY2Vfb3BzYCBhbmQgYHJ0bmxfbGlua19vcHNgLiBUaGlzIGhhcyBzb21lIHNlcmlvdXMgaW1wbGljYXRpb25zLiBCZWNhdXNlIHRoZXkncmUgYWNjZXNzZWQgdGhyb3VnaCB0aGVzZSBwb2ludGVycywgdGhleSBhcmUgbm90IGNvbXBsZXRlbHkgaW5saW5lZCwgYW5kIHRoZXkgYXJlIGRlZmluaXRlbHkgcmVhY2hhYmxlIHRocm91Z2ggc3RhbmRhcmQgbmV0d29ya2luZyBvcGVyYXRpb25zIGFuZCwgaW1wb3J0YW50bHksIE5ldGxpbmsuIEkgdGhpbmsgdGhpcyBpcyBhIGNyaXRpY2FsIHBvaW50LlxuXG5JJ2xsIGJlIGZvY3VzaW5nIG15IGFuYWx5c2lzIG9uIHRoZXNlIHRocmVlIGZ1bmN0aW9ucyDigJMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYCDigJMgYXMga2V5IGluZGljYXRvcnMgb2YgaG93IHRoZSBWWExBTiBtb2R1bGUgaGFuZGxlcyBvcGVyYXRpb25zIGF0IGEgbG93ZXIgbGV2ZWwuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IGNvbmZpZ3VyYXRpb24gY2hvaWNlcyBhZmZlY3QgdGhlIGJlaGF2aW9yIG9mIHRoZXNlIGZ1bmN0aW9ucyBhbmQgaG93IHRoZXkgYXJlIGludm9rZWQuIE15IG5leHQgc3RlcCBpcyBhIGRlZXAgZGl2ZSBpbnRvIHRoZSBWWExBTiBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gZGV0ZXJtaW5lIGhvdyB0aG9zZSBwYXJhbWV0ZXJzIGluZmx1ZW5jZSB0aGUgZXhlY3V0aW9uIHBhdGhzIHRoYXQgdWx0aW1hdGVseSBpbnZvbHZlIHRoZXNlIHN5bWJvbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc5MTEsIk91dHB1dFRva2VucyI6MjcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MTMuMTMwNzY0OTc0WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjMzNjA3OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFZYTEFOXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9LY29uZmlnPTIxNj1jb25maWcgSVBWVEFQXFxuLS1cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIyOS1cXG5kcml2ZXJzL25ldC9LY29uZmlnOjIzMDpjb25maWcgVlhMQU5cXG5kcml2ZXJzL25ldC9LY29uZmlnLTIzMS1cXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyODoxMy4yNTQxMzE2NzJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA2MjE0OTc4MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKkludmVzdGlnYXRpbmcgVlhMQU4gQ29uZmlndXJhdGlvbiBpbiB0aGUgS2VybmVsKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIFZYTEFOIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgbG9jYXRlZCB3aXRoaW4gdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoZSBuYXR1cmFsIHN0YXJ0aW5nIHBvaW50LCBnaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBrZXJuZWwncyBzdHJ1Y3R1cmUsIGlzIHRoZSBgZHJpdmVycy9uZXRgIGRpcmVjdG9yeS4gSXQncyBhbG1vc3QgYWx3YXlzIHdoZXJlIG5ldHdvcmtpbmctcmVsYXRlZCBjb25maWd1cmF0aW9ucyByZXNpZGUuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIEkgc2hvdWxkIGxvb2sgYXQgYEtjb25maWdgIGZpbGVzIHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gVGhlc2UgYEtjb25maWdgIGZpbGVzIGFyZSB0aGUgYmFja2JvbmUgb2YgdGhlIGtlcm5lbCdzIGNvbmZpZ3VyYXRpb24gc3lzdGVtLCBzbyB0aGF0J3Mgd2hlcmUgdGhlIGRlZmluaXRpb24gb2YgZmVhdHVyZXMgd2lsbCBiZS4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgVlhMQU4gaXMgZXZlbiBzdXBwb3J0ZWQgYW5kLCBpZiBzbywgaG93IGl0IGlzIGV4cG9zZWQgdG8gdXNlcnMgYW5kIHdoZXJlIEkgbWlnaHQgYmUgYWJsZSB0byBmaW5kIHJlbGV2YW50IHNldHRpbmdzLCBzbyBJIHdpbGwgc3RhcnQgdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjgzODIsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQyMToyODoxNi4zMTYyODM1MzRaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODg1ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMzAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMzA6XFx0Y29uZmlnIFZYTEFOXFxuIDIzMTpcXHRcXHR0cmlzdGF0ZSBcXFwiVmlydHVhbCBlWHRlbnNpYmxlIExvY2FsIEFyZWEgTmV0d29yayAoVlhMQU4pXFxcIlxcbiAyMzI6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuIDIzMzpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMjM0OlxcdFxcdHNlbGVjdCBHUk9fQ0VMTFNcXG4gMjM1OlxcdFxcdGhlbHBcXG4gMjM2OlxcdFxcdCAgVGhpcyBhbGxvd3Mgb25lIHRvIGNyZWF0ZSB2eGxhbiB2aXJ0dWFsIGludGVyZmFjZXMgdGhhdCBwcm92aWRlXFxuIDIzNzpcXHRcXHQgIExheWVyIDIgTmV0d29ya3Mgb3ZlciBMYXllciAzIE5ldHdvcmtzLiBWWExBTiBpcyBvZnRlbiB1c2VkXFxuIDIzODpcXHRcXHQgIHRvIHR1bm5lbCB2aXJ0dWFsIG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlxcbiAyMzk6XFx0XFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6XFxuIDI0MDpcXHRcXHQgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbWFoYWxpbmdhbS1kdXR0LWRjb3BzLXZ4bGFuLTAyXFxuIDI0MTpcXHRcXG4gMjQyOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZVxcbiAyNDM6XFx0XFx0ICB3aWxsIGJlIGNhbGxlZCB2eGxhbi5cXG4gMjQ0OlxcdFxcbiAyNDU6XFx0Y29uZmlnIEdFTkVWRVxcbiAyNDY6XFx0XFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgTmV0d29yayBWaXJ0dWFsaXphdGlvbiBFbmNhcHN1bGF0aW9uXFxcIlxcbiAyNDc6XFx0XFx0ZGVwZW5kcyBvbiBJTkVUXFxuIDI0ODpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gMjQ5OlxcdFxcdHNlbGVjdCBHUk9fQ0VMTFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MTYuMzE2MzczNDE0WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1MjcyMDc3MDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBWWExBTiBDb25maWd1cmF0aW9uIFBhdGNoKipcblxuT2theSwgc28gdGhlIGNvbmZpZ3VyYXRpb24gaW4gcXVlc3Rpb24gaXMgY2VudGVyZWQgYXJvdW5kIGBWWExBTmAsIGFuZCBpdCByZWxpZXMgb24gYElORVRgLiBUaGF0IG1lYW5zLCBmb3IgZW5hYmxpbmcgdGhpcyBmdW5jdGlvbmFsaXR5LCBgRW5hYmxlQ29uZmlnc2Agc2hvdWxkIGFic29sdXRlbHkgaW5jbHVkZSBgXCJWWExBTlwiYC4gTWFrZXMgc2Vuc2UuXG5cblRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgaW4gYGRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuY2AsIHNwZWNpZmljYWxseSB0aGUgZnVuY3Rpb24gYHZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzYC4gSXQgbG9va3MgbGlrZSB0aGV5J3JlIGFkZGluZyBhIGNvbmRpdGlvbmFsIGNoZWNrOiBgbGlzdF9pc19zaW5ndWxhcihcdTAwMjZmLVx1MDAzZXJlbW90ZXMpYC4gSWYgdGhlIGxpc3QgYGYtXHUwMDNlcmVtb3Rlc2AgaXMgc2luZ3VsYXIsIG1lYW5pbmcgdGhlcmUncyBvbmx5IG9uZSBlbnRyeSwgdGhlbiBgKnBfZGVzdHJveV9mZGIgPSB0cnVlYCBpcyBzZXQsIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucy4gVGhpcyBzb3VuZHMgbGlrZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBsaWtlbHkgYSBidWcgZml4IG9yIGEgbmV3IGZlYXR1cmUuIERlZmluaXRlbHkgc29tZXRoaW5nIHdvcnRoIHNjcnV0aW5pemluZy5cblxuTXkgZ3V0IGZlZWxpbmcgaXMgdG8gZnV6eiBpdC4gV2Ugc2hvdWxkIGZvY3VzIG91ciBhdHRlbnRpb24gb24gdGhlIHN5bWJvbHMgYHZ4bGFuX2ZkYl9kZWxldGVfYnVsa2AsIGB2eGxhbl9zdG9wYCwgYW5kIGB2eGxhbl9kZWxsaW5rYC4gVGhvc2Ugc2VlbSBsaWtlIHRoZSBsaWtlbHkgZW50cnkgcG9pbnRzIHRvIHByb2JlIHRoaXMgbmV3IGNvbmRpdGlvbmFsIGxvZ2ljLlxuXG5CdXQgd2FpdCwgbGV0J3MganVzdCBkbyBhIHF1aWNrIHNhbml0eSBjaGVjayBiZWZvcmUgd2UgZ2V0IHRvbyBkZWVwLiBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlcmUgYXJlbid0IGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSB0aGF0IGNhbGwgZWl0aGVyIGB2eGxhbl9mbHVzaGAgb3IgdGhpcyBtb2RpZmllZCBgdnhsYW5fZmRiX2ZsdXNoX21hdGNoX3JlbW90ZXNgIGZ1bmN0aW9uLiBJdCdzIGFsd2F5cyBnb29kIHRvIGhhdmUgdGhhdCBiaWcgcGljdHVyZSB1bmRlcnN0YW5kaW5nLiBUaGF0IGNvdWxkIGhpZ2hsaWdodCBzb21ldGhpbmcgaW50ZXJlc3Rpbmcgb3IgcHJvdmlkZSBhbm90aGVyIGZvY3VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4OTIxLCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MjEuODQzNTg0MzU1WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjMxMzE0OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2eGxhbl9mbHVzaFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC92eGxhbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jPTE0MjU9c3RhdGljIGVudW0gc2tiX2Ryb3BfcmVhc29uIHZ4bGFuX3Nub29wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMTQ3NC1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MTQ3NTpcXHRcXHQvKiBjbG9zZSBvZmYgcmFjZSBiZXR3ZWVuIHZ4bGFuX2ZsdXNoIGFuZCBpbmNvbWluZyBwYWNrZXRzICovXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTE0NzYtXFx0XFx0aWYgKG5ldGlmX3J1bm5pbmcoZGV2KSlcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz0zMDUwPXZ4bGFuX2ZkYl9mbHVzaF9tYXRjaF9yZW1vdGVzKHN0cnVjdCB2eGxhbl9mZGIgKmYsIHN0cnVjdCB2eGxhbl9kZXYgKnZ4bGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMwNzMtLyogUHVyZ2UgdGhlIGZvcndhcmRpbmcgdGFibGUgKi9cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM6MzA3NDpzdGF0aWMgdm9pZCB2eGxhbl9mbHVzaChzdHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbixcXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmMtMzA3NS1cXHRcXHRcXHRjb25zdCBzdHJ1Y3QgdnhsYW5fZmRiX2ZsdXNoX2Rlc2MgKmRlc2MpXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzEyMj1zdGF0aWMgaW50IHZ4bGFuX2ZkYl9kZWxldGVfYnVsayhzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMTgwLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMTgxOlxcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcXHUwMDI2ZGVzYyk7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMxODItXFxuLS1cXG5kcml2ZXJzL25ldC92eGxhbi92eGxhbl9jb3JlLmM9MzE4Nz1zdGF0aWMgaW50IHZ4bGFuX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy0zMjAwLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzozMjAxOlxcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcXHUwMDI2ZGVzYyk7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTMyMDItXFx0dnhsYW5fc29ja19yZWxlYXNlKHZ4bGFuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYz00NTE2PXN0YXRpYyB2b2lkIHZ4bGFuX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4tLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYy00NTIwLVxcbmRyaXZlcnMvbmV0L3Z4bGFuL3Z4bGFuX2NvcmUuYzo0NTIxOlxcdHZ4bGFuX2ZsdXNoKHZ4bGFuLCBcXHUwMDI2ZGVzYyk7XFxuZHJpdmVycy9uZXQvdnhsYW4vdnhsYW5fY29yZS5jLTQ1MjItXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDIxOjI4OjIxLjg4NTkwNDI2NFoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDYxMDk0MDg5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFZYTEFOIENvZGUgQ2hhbmdlcyoqXG5cbk9rYXksIHNvIEkndmUgdGFrZW4gYSBsb29rIGF0IHRoZXNlIGNoYW5nZXMuIEl0IHNlZW1zIHdlJ3JlIHByaW1hcmlseSBjb25jZXJuZWQgd2l0aCB0aHJlZSBzcGVjaWZpYyBmdW5jdGlvbnM6IGB2eGxhbl9mZGJfZGVsZXRlX2J1bGtgLCBgdnhsYW5fc3RvcGAsIGFuZCBgdnhsYW5fZGVsbGlua2AuIFRoZXNlIGFyZSB0aGUga2V5IGFyZWFzIG9mIGZvY3VzLiBUaGV5J3JlIGFsbCBzdGF0aWMgYW5kIHJlZ2lzdGVyZWQgYXMgY2FsbGJhY2tzLCB3aGljaCBzdWdnZXN0cyB0aGV5J3JlIGltcG9ydGFudCBlbnRyeSBwb2ludHMgZm9yIHNwZWNpZmljIFZYTEFOIG9wZXJhdGlvbnMuIEknbGwgZGVmaW5pdGVseSBrZWVwIHRob3NlIHN5bWJvbHMgaW4gbWluZCBhcyBJIGRlbHZlIGRlZXBlci5cblxuR2l2ZW4gdGhlIG5hdHVyZSBvZiB0aGUgbW9kaWZpY2F0aW9uc+KAlHNwZWNpZmljYWxseSB0aGUgYWRqdXN0bWVudHMgdG8gRkRCIGVudHJ5IGZsdXNoaW5nLCBlc3BlY2lhbGx5IGluIHRoZSBzaW5ndWxhciBcInJlbW90ZXMgbGlzdFwiIHNjZW5hcmlv4oCUdGhpcyB3YXJyYW50cyBmb2N1c2VkIGF0dGVudGlvbi4gVGhlIGZhY3QgdGhhdCB0aGUgY2hhbmdlcyBpbXBhY3QgdGhlIGNvcmUgVlhMQU4gZHJpdmVyIGFuZCBhcmUgdHJpZ2dlcmVkIGJ5IG5ldGxpbmsgb3BlcmF0aW9ucyBzdWNoIGFzIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24gc3VnZ2VzdHMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHJlcXVpcmVzIHRob3JvdWdoIGZ1enppbmcuIEknbGwgZmxhZyB0aGlzIGFzIFwiV29ydGhGdXp6aW5nLFwiIGFuZCB0aGUgXCJFbmFibGVDb25maWdzXCIgd2lsbCBkZWZpbml0ZWx5IGluY2x1ZGUgXCJWWExBTlwiLiBNeSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIHRvdWNoIGNyaXRpY2FsIFZYTEFOIGZ1bmN0aW9uYWxpdHkgYW5kIGNvdWxkIGhhdmUgdW5leHBlY3RlZCBjb25zZXF1ZW5jZXMgd2hlbiBoYW5kbGluZyBzcGVjaWZpYyBjb25maWd1cmF0aW9ucywgcGFydGljdWxhcmx5IHJlbGF0ZWQgdG8gdGhlIGZsdXNoaW5nIG9mIEZEQiBlbnRyaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDExOSwiT3V0cHV0VG9rZW5zIjoxMTIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMjE6Mjg6MjYuOTQ3MDAwNzMzWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzA1OTIxNTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlZYTEFOXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnhsYW5fZmRiX2RlbGV0ZV9idWxrXCIsXG4gICAgXCJ2eGxhbl9zdG9wXCIsXG4gICAgXCJ2eGxhbl9kZWxsaW5rXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBmbHVzaGluZyBWWExBTiBGREIgZW50cmllcywgc3BlY2lmaWNhbGx5IGhhbmRsaW5nIHRoZSBjYXNlIHdoZXJlIHRoZSByZW1vdGVzIGxpc3QgaXMgc2luZ3VsYXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBWWExBTiBkcml2ZXIgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbmV0bGluayBvcGVyYXRpb25zIGxpa2UgYnVsayBkZWxldGUgb3IgbGluayBkZWxldGlvbi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJWWExBTlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZ4bGFuX2ZkYl9kZWxldGVfYnVsa1wiLFxuICAgIFwidnhsYW5fc3RvcFwiLFxuICAgIFwidnhsYW5fZGVsbGlua1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgZmx1c2hpbmcgVlhMQU4gRkRCIGVudHJpZXMsIHNwZWNpZmljYWxseSBoYW5kbGluZyB0aGUgY2FzZSB3aGVyZSB0aGUgcmVtb3RlcyBsaXN0IGlzIHNpbmd1bGFyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgVlhMQU4gZHJpdmVyIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIG5ldGxpbmsgb3BlcmF0aW9ucyBsaWtlIGJ1bGsgZGVsZXRlIG9yIGxpbmsgZGVsZXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowg28mj[1] Phase: Succeeded StartedAt: 2026-08-01 21:28:38 +0000 UTC FinishedAt: 2026-08-01 21:28:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-01 21:28:38 +0000 UTC FinishedAt: 2026-08-01 21:28:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2] Phase: Succeeded StartedAt: 2026-08-01 21:28:38 +0000 UTC FinishedAt: 2026-08-02 01:09:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-01 21:28:38 +0000 UTC FinishedAt: 2026-08-02 01:09:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-01 21:28:38 +0000 UTC FinishedAt: 2026-08-01 21:28:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-01 21:28:38 +0000 UTC FinishedAt: 2026-08-01 21:28:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg28mj/series-workflowg28mj-convert-artifact-4102158246/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-01 21:28:48 +0000 UTC FinishedAt: 2026-08-01 21:47:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-01 21:28:48 +0000 UTC FinishedAt: 2026-08-01 21:47:42 +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:*7fa0e2b4-613d-423e-81cd-1b52c7ddf665,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-workflowg28mj/series-workflowg28mj-convert-artifact-4102158246/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": "80bcfe1c-dfa3-45e3-9f51-757bd7bbfded", "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-workflowg28mj/series-workflowg28mj-build-action-642259004/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-01 21:28:48 +0000 UTC FinishedAt: 2026-08-01 21:47:32 +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:*7fa0e2b4-613d-423e-81cd-1b52c7ddf665,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-workflowg28mj/series-workflowg28mj-convert-artifact-4102158246/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": "80bcfe1c-dfa3-45e3-9f51-757bd7bbfded", "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-workflowg28mj/series-workflowg28mj-build-action-642259004/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-01 21:47:42 +0000 UTC FinishedAt: 2026-08-01 21:47:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-01 21:47:42 +0000 UTC FinishedAt: 2026-08-01 21:47:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-01 21:47:42 +0000 UTC FinishedAt: 2026-08-01 21:47:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-01 21:47:42 +0000 UTC FinishedAt: 2026-08-01 21:47:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowg28mj/series-workflowg28mj-convert-artifact-4123542009/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-01 21:47:52 +0000 UTC FinishedAt: 2026-08-01 21:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-01 21:47:52 +0000 UTC FinishedAt: 2026-08-01 21:49:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*80bcfe1c-dfa3-45e3-9f51-757bd7bbfded,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-workflowg28mj/series-workflowg28mj-build-action-642259004/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-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-01 21:49:51 +0000 UTC FinishedAt: 2026-08-01 21:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-01 21:49:51 +0000 UTC FinishedAt: 2026-08-01 21:49:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-01 21:49:51 +0000 UTC FinishedAt: 2026-08-01 22:05:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-01 21:49:51 +0000 UTC FinishedAt: 2026-08-01 22:05:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*7fa0e2b4-613d-423e-81cd-1b52c7ddf665,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-workflowg28mj/series-workflowg28mj-convert-artifact-4123542009/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": "ab8f4234-0000-484e-bd5a-728a88a94bbc", "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-workflowg28mj/series-workflowg28mj-build-action-3106145237/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-01 21:49:51 +0000 UTC FinishedAt: 2026-08-01 22:05:40 +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:*7fa0e2b4-613d-423e-81cd-1b52c7ddf665,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-workflowg28mj/series-workflowg28mj-convert-artifact-4123542009/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": "ab8f4234-0000-484e-bd5a-728a88a94bbc", "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-workflowg28mj/series-workflowg28mj-build-action-3106145237/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-01 22:05:48 +0000 UTC FinishedAt: 2026-08-01 22:05:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-01 22:05:48 +0000 UTC FinishedAt: 2026-08-01 22:05:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-01 22:05:48 +0000 UTC FinishedAt: 2026-08-01 22:07:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-01 22:05:48 +0000 UTC FinishedAt: 2026-08-01 22:07:27 +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:*ab8f4234-0000-484e-bd5a-728a88a94bbc,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-workflowg28mj/series-workflowg28mj-build-action-3106145237/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-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-01 22:07:37 +0000 UTC FinishedAt: 2026-08-02 01:09:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-01 22:07:37 +0000 UTC FinishedAt: 2026-08-02 01:09:05 +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":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"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:*80bcfe1c-dfa3-45e3-9f51-757bd7bbfded,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ab8f4234-0000-484e-bd5a-728a88a94bbc,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-workflowg28mj/series-workflowg28mj-build-action-642259004/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-workflowg28mj/series-workflowg28mj-build-action-3106145237/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-01 22:07:37 +0000 UTC FinishedAt: 2026-08-01 22:07:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-01 22:07:37 +0000 UTC FinishedAt: 2026-08-01 22:07:42 +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":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"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-workflowg28mj/series-workflowg28mj-convert-artifact-655919982/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-01 22:07:37 +0000 UTC FinishedAt: 2026-08-01 22:07:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-01 22:07:37 +0000 UTC FinishedAt: 2026-08-01 22:07:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-01 22:07:37 +0000 UTC FinishedAt: 2026-08-01 22:07:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-01 22:07:47 +0000 UTC FinishedAt: 2026-08-02 01:09:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg28mj[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["vxlan_fdb_delete_bulk","vxlan_stop","vxlan_dellink"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"110b5cdd5b72bcef01b8d4dfe45d922bdd16de0e","config_name":"upstream-apparmor-kasan.config","enable_configs":["VXLAN"],"series_id":"6e18bc18-47a0-46c8-b58b-63cc460060d8","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-01 22:07:47 +0000 UTC FinishedAt: 2026-08-02 01:08:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*80bcfe1c-dfa3-45e3-9f51-757bd7bbfded,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*ab8f4234-0000-484e-bd5a-728a88a94bbc,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-workflowg28mj/series-workflowg28mj-build-action-642259004/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-workflowg28mj/series-workflowg28mj-build-action-3106145237/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-workflowg28mj/series-workflowg28mj-convert-artifact-655919982/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,}