Name: series-workflowbtgl7 Phase: Succeeded StartedAt: 2026-07-29 09:39:14 +0000 UTC FinishedAt: 2026-07-29 13:54:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[0] Phase: Succeeded StartedAt: 2026-07-29 09:39:14 +0000 UTC FinishedAt: 2026-07-29 09:47:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[0].run-triage Phase: Succeeded StartedAt: 2026-07-29 09:39:14 +0000 UTC FinishedAt: 2026-07-29 09:47:42 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_GADGET", "USB_CONFIGFS", "SND", "USB_CONFIGFS_F_MIDI2" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_GADGET", "USB_CONFIGFS", "SND", "USB_CONFIGFS_F_MIDI2" ], "series_id": "49d7f060-4c70-4142-a1cd-7d30da545737" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "f_midi2_set_alt", "f_midi2_bind", "f_midi2_unbind" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9HQURHRVQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTJiMzNDssCiAgICAmIzM0O1NORCYjMzQ7LAogICAgJiMzNDtVU0JfQ09ORklHRlNfRl9NSURJMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2ZfbWlkaTJfc2V0X2FsdCYjMzQ7LAogICAgJiMzNDtmX21pZGkyX2JpbmQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl91bmJpbmQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb2YgVVNCIGVuZHBvaW50IHJlcXVlc3RzIGluIHRoZSBNSURJIDIuMCBnYWRnZXQgZnVuY3Rpb24gZHJpdmVyLiBJdCBjaGFuZ2VzIHRoZSBsb29wIGJvdW5kIGZyb20gYG1pZGkyLVx1MDAzZWluZm8ubnVtX3JlcXNgIHRvIGB1c2JfZXAtXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMzRlYjk2MmQyNWM4YTU5YzQxZTM0ZTA1YzMyZmQ5YjUwYjRlMDM3ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDA5OjQ0OjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXG5pbmRleCAxOWZkYWMwMjQzNDM5Li41ZTU0Y2Y5OTQ3MDdhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuQEAgLTExNDUsNyAmIzQzOzExNDUsNyBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcbiBcdGlmICghdXNiX2VwLVx1MDAzZXJlcXMpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbWlkaTItXHUwMDNlaW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyB1c2JfZXAtXHUwMDNlbnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGlmICh1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpXG4gXHRcdFx0Y29udGludWU7XG4gXHRcdHVzYl9lcC1cdTAwM2VyZXFzW2ldLnJlcSA9IGFsbG9jX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLFxuQEAgLTExNjAsMTAgJiM0MzsxMTYwLDkgQEAgc3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG4gLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi9cbiBzdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcbiB7XG4tXHRzdHJ1Y3QgZl9taWRpMiAqbWlkaTIgPSB1c2JfZXAtXHUwMDNlY2FyZDtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbWlkaTItXHUwMDNlaW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyB1c2JfZXAtXHUwMDNlbnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGlmICghdXNiX2VwLVx1MDAzZXJlcXNbaV0ucmVxKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFx0XHRmcmVlX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLCB1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfR0FER0VUJiMzNDssCiAgICAmIzM0O1VTQl9DT05GSUdGUyYjMzQ7LAogICAgJiMzNDtTTkQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTX0ZfTUlESTImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmX21pZGkyX3NldF9hbHQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl9iaW5kJiMzNDssCiAgICAmIzM0O2ZfbWlkaTJfdW5iaW5kJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciBtZW1vcnkgbGVha3MuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIFVTQiBnYWRnZXQgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJuYXRlIHNldHRpbmcgY2hhbmdlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDM0ZWI5NjJkMjVjOGE1OWM0MWUzNGUwNWMzMmZkOWI1MGI0ZTAzN2UKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyOSAwOTo0NDozOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jCmluZGV4IDE5ZmRhYzAyNDM0MzkuLjVlNTRjZjk5NDcwN2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYwpAQCAtMTE0NSw3ICYjNDM7MTE0NSw3IEBAIHN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKQogCWlmICghdXNiX2VwLSZndDtyZXFzKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IHVzYl9lcC0mZ3Q7bnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7CiAJCWlmICh1c2JfZXAtJmd0O3JlcXNbaV0ucmVxKQogCQkJY29udGludWU7CiAJCXVzYl9lcC0mZ3Q7cmVxc1tpXS5yZXEgPSBhbGxvY19lcF9yZXEodXNiX2VwLSZndDt1c2JfZXAsCkBAIC0xMTYwLDEwICYjNDM7MTE2MCw5IEBAIHN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKQogLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi8KIHN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKQogewotCXN0cnVjdCBmX21pZGkyICptaWRpMiA9IHVzYl9lcC0mZ3Q7Y2FyZDsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IHVzYl9lcC0mZ3Q7bnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7CiAJCWlmICghdXNiX2VwLSZndDtyZXFzW2ldLnJlcSkKIAkJCWNvbnRpbnVlOwogCQlmcmVlX2VwX3JlcSh1c2JfZXAtJmd0O3VzYl9lcCwgdXNiX2VwLSZndDtyZXFzW2ldLnJlcSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjQKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNSURJMiBVU0IgR2FkZ2V0IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgcG9raW5nIGFyb3VuZCBpbiBgZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY2AuIFNlZW1zIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgZml4LCBidXQgbGV0JiMzOTtzIGRpdmUgaW4uIEl0JiMzOTtzIGNoYW5naW5nIGBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxc2AgdG8gYHVzYl9lcC0mZ3Q7bnVtX3JlcXNgIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIGVuZHBvaW50IHJlcXVlc3QgcmVzb3VyY2VzLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBhbmQgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYCBmdW5jdGlvbnMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdGhhdCB0aGlzIGlzIGEgZ29vZCBjYXRjaCAtIGxvb2tzIGxpa2Ugd2UmIzM5O3JlIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb3IgYW4gaXNzdWUgd2l0aCBpbmNvcnJlY3QgbG9vcCBib3VuZHMsIHdoaWNoLCBpbiB0aGUgVVNCIHdvcmxkLCBjYW4gYmUgbmFzdHkuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIFVTQiBkZXZpY2UgZHJpdmVycyBhbmQgdGhlIHNlbnNpdGl2aXR5IG9mIGVuZHBvaW50IG1hbmFnZW1lbnQsIEkgd2FudCB0byBjb25maXJtIHRoZSBjb250ZXh0IG9mIHRoZXNlIGNoYW5nZXMuIEkmIzM5O2xsIG5lZWQgdG8gb3BlbiB1cCBgZl9taWRpMi5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbnMgaW52b2x2ZWQuIEkgbmVlZCB0byBrbm93IHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9uIGRpZmZlcmVudCBNSURJMiBVU0IgZ2FkZ2V0IGltcGxlbWVudGF0aW9ucy4gQXJlIHRoZXJlIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvciBvdGhlciBzZXR0aW5ncyB0aGF0IGFmZmVjdCB0aGUgbnVtYmVyIG9yIGJlaGF2aW9yIG9mIHRoZXNlIHJlcXVlc3RzPyBJJiMzOTtsbCBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hhbmdlIGlzIGluZGVlZCBmdW5jdGlvbmFsbHkgY29ycmVjdCBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucyBhY3Jvc3MgdmFyaW91cyBNSURJMiBjb25maWd1cmF0aW9ucyBhbmQgaGFyZHdhcmUgc2V0dXBzLiBUaW1lIHRvIGdldCB0byB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfYWxsb2NfZXBfcmVxcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTIyPXN0YXRpYyB2b2lkIGZfbWlkaTJfZHJvcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTEzNy0vKiBBbGxvY2F0ZSByZXF1ZXN0cyBmb3IgdGhlIGdpdmVuIEVQICovXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExMzg6c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTExMzkte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI0OT1zdGF0aWMgaW50IGZfbWlkaTJfc3RhcnRfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjYxLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjYyOlx0ZXJyID0gZl9taWRpMl9hbGxvY19lcF9yZXFzKGVwX2luKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI2My1cdGlmIChlcnIpXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNjQtXHRcdHJldHVybiBlcnI7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNjU6XHRlcnIgPSBmX21pZGkyX2FsbG9jX2VwX3JlcXMoZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI2Ni1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE5MAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQgd2UgaGF2ZSBoZXJlLgoKKipBbmFseXppbmcgTUlESSBFbmRwb2ludCBSZXF1ZXN0IEFsbG9jYXRpb24qKgoKUmlnaHQsIHNvIHRoZXNlIGZ1bmN0aW9ucywgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AsIGFyZSBzdGF0aWMuIFRoYXQmIzM5O3MgYSBrZXkgZGV0YWlsIHRvIHN0YXJ0IHdpdGguIE5vdyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGVpciBzY29wZSBhbmQgdXNhZ2UuIEkgc2hvdWxkIGNoZWNrIHdoZXJlIHRoZXkmIzM5O3JlIGFjdHVhbGx5IGJlaW5nIGludm9rZWQuIEZpcnN0LCBsZXQmIzM5O3MgbG9vayBhdCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYC4gQWgsIGl0JiMzOTtzIGNhbGxlZCB3aXRoaW4gYGZfbWlkaTJfc3RhcnRfZXBzYC4gVGhhdCBtYWtlcyBzZW5zZTsgaXQmIzM5O3MgbGlrZWx5IGludm9sdmVkIGluIGluaXRpYWxpemluZyBvciBzZXR0aW5nIHVwIHRoZSBlbmRwb2ludCByZXF1ZXN0cy4gT2theSwgbm93IHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGZsb3csIEkgbmVlZCB0byBrbm93IHRoZSBjYWxsaW5nIGNvbnRleHQgZm9yIGBmX21pZGkyX3N0YXJ0X2Vwc2AuIFdoZXJlIGlzICppdCogY2FsbGVkPyBUaGF0IHdpbGwgZ2l2ZSBtZSB0aGUgYnJvYWRlciBwaWN0dXJlIG9mIGhvdyB0aGUgZW5kcG9pbnQgcmVxdWVzdHMgYXJlIG1hbmFnZWQuIEtub3dpbmcgdGhpcyBjb250ZXh0IHdpbGwgYWxsb3cgbWUgdG8gdW5kZXJzdGFuZCB0aGUgcHVycG9zZSBvZiB0aG9zZSBlbmRwb2ludCByZXF1ZXN0cyBhbmQgcG90ZW50aWFsIGlzc3Vlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmX21pZGkyX3N0YXJ0X2VwcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDgtLyogc3RhcnQvcXVldWUgYm90aCBJTiBhbmQgT1VUIEVQcyAqL1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ5OnN0YXRpYyBpbnQgZl9taWRpMl9zdGFydF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI1MC1cdFx0XHQgICAgIHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfb3V0LFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI3ND1zdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzA0LVx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkxKVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzA1Olx0XHRyZXR1cm4gZl9taWRpMl9zdGFydF9lcHMoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfaW4sXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMDYtXHRcdFx0XHRcdCBcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMV9lcF9vdXQsIGZuKTtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMTEtXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMTI6XHRcdFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXHUwMDI2ZXAtXHUwMDNlZXBfaW4sIFx1MDAyNmVwLVx1MDAzZWVwX291dCwgZm4pO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzEzLVx0XHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk3NgoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkRpZ2dpbmcgaW50byBmX21pZGkyX3NldF9hbHQqKgoKSG1tLCBzbyBgZl9taWRpMl9zZXRfYWx0YC4uLmlzIHRoYXQgZnVuY3Rpb24gZGVjbGFyZWQgYXMgYSBub24tc3RhdGljIGZ1bmN0aW9uPyBPciBpcyBpdCBiZWluZyB1c2VkIGFzIGEgY2FsbGJhY2ssIHdoaWNoIHdvdWxkIG1ha2UgbWUgdGhpbmsgZGlmZmVyZW50bHkgYWJvdXQgaG93IGl0cyBpbnRlcm5hbCBzdGF0ZSBpcyBoYW5kbGVkPyBJdCYjMzk7cyBhIGtleSBmdW5jdGlvbiBpbiB0aGlzIG1pZGkgaW1wbGVtZW50YXRpb24sIHdoaWNoIG1lYW5zIEkgc2hvdWxkIG5vdCBtYWtlIGFueSBhc3N1bXB0aW9ucy4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBjb2RlIGRlZmluaXRpb24gb2YgYGZfbWlkaTJfc2V0X2FsdGAgdG8gY2xhcmlmeSBpdHMgc2NvcGUgYW5kIHB1cnBvc2UsIGFuZCByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgY29kaW5nIHN0eWxlLiBLbm93aW5nIHRoYXQgd2lsbCBpbXBhY3QgdGhlIGFzc3VtcHRpb25zIEkgY2FuIG1ha2UgYWJvdXQgaXRzIHJvbGUgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfc2V0X2FsdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjQ5PXN0YXRpYyBpbnQgZl9taWRpMl9zdGFydF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNzMtLyogZ2FkZ2V0IGZ1bmN0aW9uIHNldF9hbHQgY2FsbGJhY2sgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI3NDpzdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNzUtXHRcdFx0ICAgdW5zaWduZWQgaW50IGFsdClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTI4MDY9c3RhdGljIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZfbWlkaTJfYWxsb2Moc3RydWN0IHVzYl9mdW5jdGlvbl9pbnN0YW5jZSAqZmkpXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM0LVx0bWlkaTItXHUwMDNlZnVuYy5nZXRfYWx0ID0gZl9taWRpMl9nZXRfYWx0O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODM1Olx0bWlkaTItXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM2LVx0bWlkaTItXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU1MQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGVjb2RpbmcgdGhlIENhbGxiYWNrKioKCkFscmlnaHQsIGEgY2FsbGJhY2ssICp0aGF0KiBmYW1pbGlhciBwaHJhc2UuIE15IGJyYWluIGltbWVkaWF0ZWx5IGp1bXBzIGludG8gdHJpYWdlIG1vZGUuIFRoZSBmaXJzdCBxdWVzdGlvbiBpcyBhbHdheXM6IHdoZXJlIGRvZXMgdGhpcyBjYWxsYmFjayAqbGl2ZSo/IEFuZCB0aGUgaW1tZWRpYXRlIG5lZWQgbm93IGlzIHRvIGxvY2F0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhc3NvY2lhdGVkIHdpdGggYGZfbWlkaTIuY2AuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIHRoZSBwYXJhbWV0ZXJzIGl0JiMzOTtzIGV4cGVjdGluZywgYW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGggdGhlIGxhcmdlciBzeXN0ZW0uIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgZmluZGluZyB0aGUgZmlsZTsgaXQmIzM5O3MgYWJvdXQgdW5kZXJzdGFuZGluZyB0aGUgY29udHJvbCBmbG93IGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoaXMgY2FsbGJhY2sgd2l0aGluIHRoZSBgZl9taWRpMi5jYCBmcmFtZXdvcmsuIFRpbWUgdG8gZGlnIGluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmX21pZGkyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZT01MD1vYmotJChDT05GSUdfVVNCX0ZfTUlESSlcdCYjNDM7PSB1c2JfZl9taWRpLm9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZTo1MTp1c2JfZl9taWRpMi15XHRcdFx0Oj0gZl9taWRpMi5vXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX1VTQl9GX01JREkyKVx0JiM0Mzs9IHVzYl9mX21pZGkyLm9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZS01My11c2JfZl9oaWQteVx0XHRcdDo9IGZfaGlkLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkwNAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgaXM6CgoqKkV4YW1pbmluZyBNSURJMiBVU0IgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB0aGUgc3lzdGVtIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGBDT05GSUdfVVNCX0ZfTUlESTJgLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBzIHRvIEtjb25maWcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25maWcgb3B0aW9uICphY3R1YWxseSogbWVhbnMgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciBzeXN0ZW0uIEkmIzM5O20gZ29pbmcgdG8gaGVhZCBzdHJhaWdodCBvdmVyIHRvIEtjb25maWcgdG8gc2VlIHdoYXQmIzM5O3MgZGVmaW5lZCBmb3IgYENPTkZJR19VU0JfRl9NSURJMmAuIFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgZm9yIHRoZSByZXN0IG9mIHRoZSBVU0Igc3RhY2sgYW5kLCBieSBleHRlbnNpb24sIGF1ZGlvIHByb2Nlc3Npbmc/IEkgbmVlZCB0aGUgZnVsbCBwaWN0dXJlIHRvIHVuZGVyc3RhbmQgdGhpcyBzaW5nbGUgc2V0dGluZy4gVGhpcyBpcyBnb2luZyB0byBiZSBpbnRlcmVzdGluZy4gTGV0JiMzOTtzIHNlZSB3aGF0IEtjb25maWcgaGFzIHRvIHNheS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9GX01JREkyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZz0yMDk9Y29uZmlnIFVTQl9GX01JRElcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMTEtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyMTI6Y29uZmlnIFVTQl9GX01JREkyXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMTMtXHR0cmlzdGF0ZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjExCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIGEgVHJpc3RhdGUmIzM5O3MgQ29udHJvbCoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgYSB0cmlzdGF0ZSBkZXZpY2UsIGxpa2VseSBpbiBhIGxhcmdlciBjaXJjdWl0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtUaGlzIGlzbiYjMzk7dCBqdXN0IGZsb2F0aW5nIGhlcmUgZm9yIGZ1bi4mIzM0OyBJdCYjMzk7cyBiZWluZyAqY29udHJvbGxlZCouIFRoZSBrZXkgcXVlc3Rpb24gbm93IGJlY29tZXMsIHdoYXQmIzM5O3MgZHJpdmluZyB0aGF0IGNvbnRyb2w/IFRoZSB0cmlzdGF0ZSBmdW5jdGlvbmFsaXR5IHN0cm9uZ2x5IHN1Z2dlc3RzIGl0JiMzOTtzIGJlaW5nIHVzZWQgdG8gbXVsdGlwbGV4IHNvbWV0aGluZyDigJMgbWF5YmUgZGF0YSwgbWF5YmUgYW4gYWRkcmVzcyBidXMsIHBvdGVudGlhbGx5IGVuYWJsaW5nIG9yIGRpc2FibGluZyBhIGZ1bmN0aW9uYWwgYmxvY2sgd2l0aGluIGEgbGFyZ2VyIHN5c3RlbS4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgdGhlIHNpZ25hbCB0aGF0JiMzOTtzIGVuYWJsaW5nIG9yIGRpc2FibGluZyB0aGlzLiBJIHdhbnQgdG8gc2VlIHdoYXQgdGhhdCBzaWduYWwgaXMgY29ubmVjdGVkIHRvIGFuZCB3aGF0IGxvZ2ljIGdhdGVzIG9yIG90aGVyIGNvbXBvbmVudHMgYXJlIGludm9sdmVkIGluIGl0cyBnZW5lcmF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoZSBzZWxlY3Rpb24gbG9naWMgaXMgZ29pbmcgdG8gYmUgY3J1Y2lhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGNpcmN1aXQgYmVoYXZpb3IuIFRpbWUgdG8gZGVsdmUgaW50byB0aGUgc2NoZW1hdGljIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgVVNCX0ZfTUlESTImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnPTQ0NT1jb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDktXHRzZWxlY3QgVVNCX0xJQkNPTVBPU0lURVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDUwOlx0c2VsZWN0IFVTQl9GX01JREkyXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NTEtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGVidWdnaW5nIHRoZSBNSURJIDIuMCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHNvIEkgbmVlZCB0byBlbmFibGUgTUlESSAyLjAgc3VwcG9ydCB2aWEgY29uZmlnZnMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IEkgbmVlZCB0byBlbnN1cmUgdGhlIGNvcnJlY3QgS2NvbmZpZyBvcHRpb24gaXMgc2VsZWN0ZWQsIGFuZCBJJiMzOTttIHByZXR0eSBzdXJlIGl0JiMzOTtzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuIE5vdyBJIHdhbnQgdG8gcXVpY2tseSB2ZXJpZnkgdGhpcyBpbiB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgcmVsZXZhbnQgVVNCIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBpZiBJJiMzOTt2ZSBnb3QgdGhlIHdyb25nIG9wdGlvbi4gTGV0IG1lIGp1bXAgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBhbmQgZG91YmxlIGNoZWNrIHRoYXQgYFVTQl9DT05GSUdGU19GX01JREkyYCBpcyBwcm9wZXJseSBkZWZpbmVkIGFuZCBoYXMgdGhlIGRlcGVuZGVuY2llcyBJIGV4cGVjdCwgYW5kIGFsc28gbWFrZSBzdXJlIGl0JiMzOTtzIGV4cG9zZWQgcHJvcGVybHkuIEl0JiMzOTtzIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJ1dCBhIHZpdGFsIHN0ZXAgdG8gYXZvaWQgYW55IHJhYmJpdCBob2xlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZz00MzE9Y29uZmlnIFVTQl9DT05GSUdGU19GX01JRElcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDQtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0NDU6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDYtXHRib29sIFwmIzM0O01JREkgMi4wIGZ1bmN0aW9uXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5MDMKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgTUlESSAyLjAgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYFVTQl9DT05GSUdGU19GX01JREkyYCB0aGluZy4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBmaWd1cmUgb3V0IHdoYXQgcHJlLXJlcXVpc2l0ZXMgb3IgZGVwZW5kZW5jaWVzIGl0IGhhcy4gV2hhdCBvdGhlciBtb2R1bGVzIG9yIGZsYWdzIGFyZSBuZWNlc3NhcnkgdG8gZW5hYmxlIHRoaXMgTUlESSAyLjAgc3VwcG9ydCB3aXRoaW4gdGhlIENvbmZpZ0ZTIGZyYW1ld29yaz8gSXMgaXQgZGVwZW5kZW50IG9uIGNvcmUgVVNCIGRldmljZSBmdW5jdGlvbmFsaXR5LCBjZXJ0YWluIGhhcmR3YXJlIGRyaXZlcnMsIHNwZWNpZmljIENvbmZpZ0ZTIHN1YnN5c3RlbXMsIG9yIHBhcnRpY3VsYXIga2VybmVsIHZlcnNpb25zPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVpbGRpbmcgYmxvY2tzIGJlZm9yZSBJIGNhbiBldmVuIGJlZ2luIHRvIGZ1bGx5IGdyYXNwIGhvdyB0aGlzIHRoaW5nIGZ1bmN0aW9ucyBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBNeSBpbW1lZGlhdGUgdGFzayBpcyB0byBpZGVudGlmeSBhbmQgZGVsaW5lYXRlIHRob3NlIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQ0MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNDQwOlx0XHQgIGlucHV0IGFuZCBvbmUgTUlESSBvdXRwdXQuIFRoZXNlIE1JREkgamFja3MgYXBwZWFyIGFzXG4gNDQxOlx0XHQgIGEgc291bmQgXCYjMzQ7Y2FyZFwmIzM0OyBpbiB0aGUgQUxTQSBzb3VuZCBzeXN0ZW0uIE90aGVyIE1JRElcbiA0NDI6XHRcdCAgY29ubmVjdGlvbnMgY2FuIHRoZW4gYmUgbWFkZSBvbiB0aGUgZ2FkZ2V0IHN5c3RlbSwgdXNpbmdcbiA0NDM6XHRcdCAgQUxTQSYjMzk7cyBhY29ubmVjdCB1dGlsaXR5IGV0Yy5cbiA0NDQ6XHRcbiA0NDU6XHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcbiA0NDY6XHRcdGJvb2wgXCYjMzQ7TUlESSAyLjAgZnVuY3Rpb25cJiMzNDtcbiA0NDc6XHRcdGRlcGVuZHMgb24gVVNCX0NPTkZJR0ZTXG4gNDQ4Olx0XHRkZXBlbmRzIG9uIFNORFxuIDQ0OTpcdFx0c2VsZWN0IFVTQl9MSUJDT01QT1NJVEVcbiA0NTA6XHRcdHNlbGVjdCBVU0JfRl9NSURJMlxuIDQ1MTpcdFx0aGVscFxuIDQ1MjpcdFx0ICBUaGUgTUlESSAyLjAgZnVuY3Rpb24gZHJpdmVyIHByb3ZpZGVzIHRoZSBnZW5lcmljIGVtdWxhdGVkXG4gNDUzOlx0XHQgIFVTQiBNSURJIDIuMCBpbnRlcmZhY2UsIGxvb3BlZCBiYWNrIHRvIEFMU0EgVU1QIHJhd21pZGlcbiA0NTQ6XHRcdCAgZGV2aWNlIG9uIHRoZSBnYWRnZXQgaG9zdC4gSXQgc3VwcG9ydHMgVU1QIDEuMSBzcGVjIGFuZFxuIDQ1NTpcdFx0ICByZXNwb25kcyBVTVAgU3RyZWFtIG1lc3NhZ2VzIGZvciBVTVAgRW5kcG9pbnQgYW5kIEZ1bmN0aW9uXG4gNDU2Olx0XHQgIEJsb2NrIGluZm9ybWF0aW9uIC8gY29uZmlndXJhdGlvbi5cbiA0NTc6XHRcbiA0NTg6XHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfSElEXG4gNDU5Olx0XHRib29sIFwmIzM0O0hJRCBmdW5jdGlvblwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDMyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBVU0IgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCk9rYXksIHNvIHRoZSBzZXR1cCBoZXJlIGhpbmdlcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQsIGJ5IGV4dGVuc2lvbiwgYFNORGAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXQgcGxheS4gTGV0IG1lIHNlZS4uLiBgVVNCX0dBREdFVGAgc2VlbXMgbGlrZSBhbm90aGVyIGtleSBwbGF5ZXIgaW4gdGhpcy4gQWgsIHJpZ2h0LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYCwgc28gdGhhdCYjMzk7cyBhIGRpcmVjdCByZWxhdGlvbnNoaXAgdG8gY29uc2lkZXIuIE5vdywgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSwgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBgVVNCX0NPTkZJR0ZTYCBjb25maWd1cmF0aW9uIGl0c2VsZiB3aXRoaW4gS2NvbmZpZy4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgcGllY2VzIGZpdCB0b2dldGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9DT05GSUdGUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc9MjIzPWNvbmZpZyBVU0JfRl9UQ01cbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMjctXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyMjg6Y29uZmlnIFVTQl9DT05GSUdGU1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjI5LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEdhZGdldCBmdW5jdGlvbnMgY29uZmlndXJhYmxlIHRocm91Z2ggY29uZmlnZnNcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMzktXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNDA6Y29uZmlnIFVTQl9DT05GSUdGU19TRVJJQUxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTI0MS1cdGJvb2wgXCYjMzQ7R2VuZXJpYyBzZXJpYWwgYnVsayBpbi9vdXRcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNDgtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNDk6Y29uZmlnIFVTQl9DT05GSUdGU19BQ01cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTI1MC1cdGJvb2wgXCYjMzQ7QWJzdHJhY3QgQ29udHJvbCBNb2RlbCAoQ0RDIEFDTSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNTgtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNTk6Y29uZmlnIFVTQl9DT05GSUdGU19PQkVYXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNjAtXHRib29sIFwmIzM0O09iamVjdCBFeGNoYW5nZSBNb2RlbCAoQ0RDIE9CRVgpXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjY4LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjY5OmNvbmZpZyBVU0JfQ09ORklHRlNfTkNNXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNzAtXHRib29sIFwmIzM0O05ldHdvcmsgQ29udHJvbCBNb2RlbCAoQ0RDIE5DTSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yODAtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyODE6Y29uZmlnIFVTQl9DT05GSUdGU19FQ01cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7RXRoZXJuZXQgQ29udHJvbCBNb2RlbCAoQ0RDIEVDTSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yOTItXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyOTM6Y29uZmlnIFVTQl9DT05GSUdGU19FQ01fU1VCU0VUXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V0aGVybmV0IENvbnRyb2wgTW9kZWwgKENEQyBFQ00pIHN1YnNldFwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTMwMi1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMwMzpjb25maWcgVVNCX0NPTkZJR0ZTX1JORElTXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zMDQtXHRib29sIFwmIzM0O1JORElTXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzE4LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzE5OmNvbmZpZyBVU0JfQ09ORklHRlNfRUVNXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zMjAtXHRib29sIFwmIzM0O0V0aGVybmV0IEVtdWxhdGlvbiBNb2RlbCAoRUVNKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTMzNC1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMzNTpjb25maWcgVVNCX0NPTkZJR0ZTX1BIT05FVFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzM2LVx0Ym9vbCBcJiMzNDtQaG9uZXQgcHJvdG9jb2xcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zNDQtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozNDU6Y29uZmlnIFVTQl9DT05GSUdGU19NQVNTX1NUT1JBR0VcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM0Ni1cdGJvb2wgXCYjMzQ7TWFzcyBzdG9yYWdlXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzU1LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzU2OmNvbmZpZyBVU0JfQ09ORklHRlNfRl9MQl9TU1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzU3LVx0Ym9vbCBcJiMzNDtMb29wYmFjayBhbmQgc291cmNlc2luayBmdW5jdGlvbiAoZm9yIHRlc3RpbmcpXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzY4LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzY5OmNvbmZpZyBVU0JfQ09ORklHRlNfRl9GU1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzcwLVx0Ym9vbCBcJiMzNDtGdW5jdGlvbiBmaWxlc3lzdGVtIChGdW5jdGlvbkZTKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM4MC1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjM4MTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVUFDMVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzgyLVx0Ym9vbCBcJiMzNDtBdWRpbyBDbGFzcyAxLjBcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zOTgtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozOTk6Y29uZmlnIFVTQl9DT05GSUdGU19GX1VBQzFfTEVHQUNZXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MDAtXHRib29sIFwmIzM0O0F1ZGlvIENsYXNzIDEuMCAobGVnYWN5IGltcGxlbWVudGF0aW9uKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQxMS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQxMjpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVUFDMlxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDEzLVx0Ym9vbCBcJiMzNDtBdWRpbyBDbGFzcyAyLjBcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MzAtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0MzE6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JRElcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQzMi1cdGJvb2wgXCYjMzQ7TUlESSBmdW5jdGlvblwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ0NC1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ0NTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ0Ni1cdGJvb2wgXCYjMzQ7TUlESSAyLjAgZnVuY3Rpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NTctXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0NTg6Y29uZmlnIFVTQl9DT05GSUdGU19GX0hJRFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDU5LVx0Ym9vbCBcJiMzNDtISUQgZnVuY3Rpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NjctXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0Njg6Y29uZmlnIFVTQl9DT05GSUdGU19GX1VWQ1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDY5LVx0Ym9vbCBcJiMzNDtVU0IgV2ViY2FtIGZ1bmN0aW9uXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDgwLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDgxOmNvbmZpZyBVU0JfQ09ORklHRlNfRl9QUklOVEVSXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00ODItXHRib29sIFwmIzM0O1ByaW50ZXIgZnVuY3Rpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00OTQtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0OTU6Y29uZmlnIFVTQl9DT05GSUdGU19GX1RDTVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDk2LVx0Ym9vbCBcJiMzNDtVU0IgR2FkZ2V0IFRhcmdldCBGYWJyaWNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEzOQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXM6CgoqKkNoZWNraW5nIGBVU0JfQ09ORklHRlNgIERlcGVuZGVuY2llcyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBgVVNCX0NPTkZJR0ZTYC4gSSBrbm93IGl0JiMzOTtzIGEga2V5IHBpZWNlIG9mIHRoZSBwdXp6bGUgZm9yIGEgbG90IG9mIFVTQi1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLCBlc3BlY2lhbGx5IGZvciBtb3JlIGFkdmFuY2VkIG9yIGN1c3RvbSBzZXR1cHMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBzY29wZS4gSSBuZWVkIHRvIGVzdGFibGlzaCBhIGJhc2UgbGF5ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgZGVwZW5kZW5jaWVzIG9mIGBVU0JfQ09ORklHRlNgLiBXaGF0IG90aGVyIGtlcm5lbCBtb2R1bGVzIG9yIGNvbXBvbmVudHMgZG9lcyBpdCBsZWFuIG9uPyBBcmUgdGhlcmUgc3BlY2lmaWMgZHJpdmVycyBpdCByZXF1aXJlcz8gRG9lcyBpdCByZWx5IG9uIHBhcnRpY3VsYXIgaGFyZHdhcmUgZmVhdHVyZXM/CgpJIG5lZWQgdG8gcXVpY2tseSBhc3Nlc3MgdGhpcywgYmVjYXVzZSB1bmRlcnN0YW5kaW5nIHRoZSB1bmRlcmx5aW5nIGRlcGVuZGVuY2llcyBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGJlZm9yZSBJIGNhbiBldmVuIGNvbnNpZGVyIG1vZGlmeWluZyBpdCwgY29uZmlndXJpbmcgaXQsIG9yIHRyb3VibGVzaG9vdGluZyBhbnkgcG90ZW50aWFsIGlzc3VlcyB3aXRoIGl0LiBLbm93aW5nIHRoZSBkZXBlbmRlbmNpZXMgaGVscHMgbWUgdG8gdW5kZXJzdGFuZCBwb3RlbnRpYWwgZmFpbHVyZSBwb2ludHMgYW5kIHRvIHBsYW4gYSBzeXN0ZW0gY29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LiBUaGlzIHdpbGwgaGVscCB0byBzdHJlYW1saW5lIGFueSBmdXJ0aGVyIHN0ZXBzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjI4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDE1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMjg6XHRjb25maWcgVVNCX0NPTkZJR0ZTXG4gMjI5Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgR2FkZ2V0IGZ1bmN0aW9ucyBjb25maWd1cmFibGUgdGhyb3VnaCBjb25maWdmc1wmIzM0O1xuIDIzMDpcdFx0c2VsZWN0IFVTQl9MSUJDT01QT1NJVEVcbiAyMzE6XHRcdGhlbHBcbiAyMzI6XHRcdCAgQSBMaW51eCBVU0IgXCYjMzQ7Z2FkZ2V0XCYjMzQ7IGNhbiBiZSBzZXQgdXAgdGhyb3VnaCBjb25maWdmcy5cbiAyMzM6XHRcdCAgSWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhlIFVTQiBmdW5jdGlvbnMgKHdoaWNoIGZyb20gdGhlIGhvc3QmIzM5O3NcbiAyMzQ6XHRcdCAgcGVyc3BlY3RpdmUgYXJlIHNlZW4gYXMgaW50ZXJmYWNlcykgYW5kIGNvbmZpZ3VyYXRpb25zIGFyZVxuIDIzNTpcdFx0ICBzcGVjaWZpZWQgc2ltcGx5IGJ5IGNyZWF0aW5nIGFwcHJvcHJpYXRlIGRpcmVjdG9yaWVzIGluIGNvbmZpZ2ZzLlxuIDIzNjpcdFx0ICBBc3NvY2lhdGluZyBmdW5jdGlvbnMgd2l0aCBjb25maWd1cmF0aW9ucyBpcyBkb25lIGJ5IGNyZWF0aW5nXG4gMjM3Olx0XHQgIGFwcHJvcHJpYXRlIHN5bWJvbGljIGxpbmtzLlxuIDIzODpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgRG9jdW1lbnRhdGlvbi91c2IvZ2FkZ2V0X2NvbmZpZ2ZzLnJzdC5cbiAyMzk6XHRcbiAyNDA6XHRjb25maWcgVVNCX0NPTkZJR0ZTX1NFUklBTFxuIDI0MTpcdFx0Ym9vbCBcJiMzNDtHZW5lcmljIHNlcmlhbCBidWxrIGluL291dFwmIzM0O1xuIDI0MjpcdFx0ZGVwZW5kcyBvbiBVU0JfQ09ORklHRlNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODYzMQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTmF2aWdhdGluZyB0aGUgVVNCIEdhZGdldCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpIbW0sIHRoaXMgbG9va3MgZmFtaWxpYXIsIGJ1dCBpdCYjMzk7cyBhIGJpdCBvZGQuIEkgZG9uJiMzOTt0IHNlZSBhbnkgZGlyZWN0IGRlcGVuZGVuY3kgb24gYFVTQl9HQURHRVRgIGluIHRoaXMgcGFydGljdWxhciBjb2RlIHNuaXBwZXQuIEhvd2V2ZXIsIHRoZSBjb250ZXh0IGZlZWxzICp2ZXJ5KiByZWxhdGVkIHRvIGl0LCBkb2VzbiYjMzk7dCBpdD8gSXQmIzM5O3MgYWxtb3N0IGNlcnRhaW5seSBuZXN0ZWQgd2l0aGluIHRoZSBgbWVudWNvbmZpZyBVU0JfR0FER0VUYCBzdHJ1Y3R1cmUsIG9yIHBlcmhhcHMgc29tZXRoaW5nIGVxdWFsbHkgc3BlY2lmaWMgd2l0aGluIHRoZSBidWlsZCBzeXN0ZW0uIEnigJltIHRoaW5raW5nIHRoZXJlIG1pZ2h0IGJlIHNvbWUgaW1wbGljaXQgbGlua2luZyBvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBnb2luZyBvbi4KClRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgYW5kIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIHN1cnJvdW5kaW5nIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLCBsZXQmIzM5O3MganVzdCBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgYmVzdCBhcHByb2FjaCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnYCBmaWxlIGF0IHRoZSB2ZXJ5IHRvcC4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBhdXRob3JpdGF0aXZlIGRlY2xhcmF0aW9uIG9mIHRoZSBtb2R1bGUmIzM5O3MgcmVsYXRpb25zaGlwIHRvIHRoZSB3aWRlciBVU0IgZ2FkZ2V0IHN1YnN5c3RlbSBhbmQgYWxsIG9mIGl0cyBkZXBlbmRlbmNpZXMuIFRoYXQgZmlsZSBpcyBnb2luZyB0byBtYWtlIGl0IGNyeXN0YWwgY2xlYXIgZXhhY3RseSB3aGF0JiMzOTtzIGdvaW5nIG9uIHdpdGggYWxsIHRoZXNlIG9wdGlvbnMgYW5kIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgVVNCIEdhZGdldCBzdXBwb3J0IG9uIGEgc3lzdGVtIGludm9sdmVzXG4gICA0Olx0IyAgICAoYSkgYSBwZXJpcGhlcmFsIGNvbnRyb2xsZXIsIGFuZFxuICAgNTpcdCMgICAgKGIpIHRoZSBnYWRnZXQgZHJpdmVyIHVzaW5nIGl0LlxuICAgNjpcdCNcbiAgIDc6XHQjIE5PVEU6ICBHYWRnZXQgc3VwcG9ydCAqKiBET0VTIE5PVCAqKiBkZXBlbmQgb24gaG9zdC1zaWRlIENPTkZJR19VU0IgISFcbiAgIDg6XHQjXG4gICA5Olx0IyAgLSBIb3N0IHN5c3RlbXMgKGxpa2UgUENzKSBuZWVkIENPTkZJR19VU0IgKHdpdGggXCYjMzQ7QVwmIzM0OyBqYWNrcykuXG4gIDEwOlx0IyAgLSBQZXJpcGhlcmFscyAobGlrZSBQREFzKSBuZWVkIENPTkZJR19VU0JfR0FER0VUICh3aXRoIFwmIzM0O0JcJiMzNDsgamFja3MpLlxuICAxMTpcdCMgIC0gU29tZSBzeXN0ZW1zIGhhdmUgYm90aCBraW5kcyBvZiBjb250cm9sbGVycy5cbiAgMTI6XHQjXG4gIDEzOlx0IyBXaXRoIGhlbHAgZnJvbSBhIHNwZWNpYWwgdHJhbnNjZWl2ZXIgYW5kIGEgXCYjMzQ7TWluaS1BQlwmIzM0OyBqYWNrLCBzeXN0ZW1zIHdpdGhcbiAgMTQ6XHQjIGJvdGgga2luZHMgb2YgY29udHJvbGxlciBjYW4gYWxzbyBzdXBwb3J0IFwmIzM0O1VTQiBPbi10aGUtR29cJiMzNDsgKENPTkZJR19VU0JfT1RHKS5cbiAgMTU6XHQjXG4gIDE2Olx0XG4gIDE3Olx0bWVudWNvbmZpZyBVU0JfR0FER0VUXG4gIDE4Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgR2FkZ2V0IFN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdHNlbGVjdCBVU0JfQ09NTU9OXG4gIDIwOlx0XHRzZWxlY3QgTkxTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDkyNTUKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIFF1ZXN0KioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUsIHRvIGdldCB0aGlzIHNldHVwIHdvcmtpbmcsIEkmIzM5O20gdGhpbmtpbmcgSSYjMzk7bGwgbmVlZCBgVVNCX0dBREdFVGAsIGRlZmluaXRlbHksIGFsb25nIHdpdGggYFVTQl9DT05GSUdGU2AgZm9yIHRoZSBmbGV4aWJpbGl0eS4gQW5kIHNpbmNlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYXVkaW8sIGBTTkRgIHNlZW1zIGNydWNpYWwuIEFoLCBhbmQgaGVyZSB3ZSBhcmUsIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgdGhlIG1hZ2ljIGJ1dHRvbiBmb3IgdGhlIE1JREkgMi4wIGNvbmZpZ3VyYXRpb24uIE5vdywgYSBsaXR0bGUgbWVudGFsIGNoZWNrOiBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIHNlZW1zIHRvIGJyaW5nIGluIGBVU0JfRl9NSURJMmAuIEdvb2QuIEJ1dCBiZWZvcmUgSSBnZXQgdG9vIGZhciBkb3duIHRoaXMgcm9hZCwgSSBzaG91bGQganVzdCBxdWlja2x5IGRvdWJsZSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHN1cHBvcnRpbmcgbW9kdWxlcyBvciBkZXBlbmRlbmNpZXMgdGhhdCBgVVNCX0ZfTUlESTJgIHB1bGxzIGluLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gY29uZmlndXJpbmcgYSBzeXN0ZW0hIEkgbmVlZCBhIGNsZWFuIGFuZCBzdGFibGUgYnVpbGQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDIwMDpcdFx0dHJpc3RhdGVcbiAyMDE6XHRcbiAyMDI6XHRjb25maWcgVVNCX0ZfVUFDMlxuIDIwMzpcdFx0dHJpc3RhdGVcbiAyMDQ6XHRcbiAyMDU6XHRjb25maWcgVVNCX0ZfVVZDXG4gMjA2Olx0XHR0cmlzdGF0ZVxuIDIwNzpcdFx0c2VsZWN0IFVWQ19DT01NT05cbiAyMDg6XHRcbiAyMDk6XHRjb25maWcgVVNCX0ZfTUlESVxuIDIxMDpcdFx0dHJpc3RhdGVcbiAyMTE6XHRcbiAyMTI6XHRjb25maWcgVVNCX0ZfTUlESTJcbiAyMTM6XHRcdHRyaXN0YXRlXG4gMjE0Olx0XHRzZWxlY3QgU05EX1VNUFxuIDIxNTpcdFx0c2VsZWN0IFNORF9VTVBfTEVHQUNZX1JBV01JRElcbiAyMTY6XHRcbiAyMTc6XHRjb25maWcgVVNCX0ZfSElEXG4gMjE4Olx0XHR0cmlzdGF0ZVxuIDIxOTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzcwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgS2NvbmZpZyBBdWRpdCBUcmFpbCoqCgpPa2F5LCBzbyBJJiMzOTttIHNlZWluZyBgVVNCX0ZfTUlESTJgIHRyaWdnZXJpbmcgYm90aCBgU05EX1VNUGAgYW5kIGBTTkRfVU1QX0xFR0FDWV9SQVdNSURJYC4gUmlnaHQsIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIHRoZSBtb2Rlcm4gTUlESSAyLjAgc3R1ZmYsIGFuZCB0aGUgbGVnYWN5IHJhdyBNSURJIHN1cHBvcnQuIEJ1dCBoYW5nIG9uLi4uIGl0IGFsc28gc2VlbXMgbGlrZSBgU05EYCBpcyBhIGRlcGVuZGVuY3kgaGVyZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEkgbmVlZCB0byBjb25maXJtIHRoYXQuIExldCBtZSBxdWlja2x5IGp1bXAgb3ZlciB0byBgc291bmQvS2NvbmZpZ2AgYW5kIHRha2UgYSBsb29rIGF0IHRoZSBhdWRpbyBjb3JlIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgU05EYCBpcyBpbmRlZWQgYmVpbmcgYnJvdWdodCBpbiBieSB0aGlzIHNlbGVjdGlvbiwgYW5kIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBmdWxseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNORCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3NvdW5kLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTI4NCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuc291bmQvS2NvbmZpZz00MD1zb3VyY2UgXCYjMzQ7c291bmQvb3NzL2RtYXNvdW5kL0tjb25maWdcJiMzNDtcbnNvdW5kL0tjb25maWctNDEtXG5zb3VuZC9LY29uZmlnOjQyOm1lbnVjb25maWcgU05EXG5zb3VuZC9LY29uZmlnLTQzLVx0dHJpc3RhdGUgXCYjMzQ7QWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlXCYjMzQ7XG4tLVxuc291bmQvYW9hL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbnNvdW5kL2FvYS9LY29uZmlnOjI6bWVudWNvbmZpZyBTTkRfQU9BXG5zb3VuZC9hb2EvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXBwbGUgT25ib2FyZCBBdWRpbyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZzoyOmNvbmZpZyBTTkRfQU9BX09OWVhcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7c3VwcG9ydCBPbnl4IGNoaXBcJiMzNDtcbi0tXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWctMTAtXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWc6MTE6Y29uZmlnIFNORF9BT0FfVEFTXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWctMTItXHR0cmlzdGF0ZSBcJiMzNDtzdXBwb3J0IFRBUyBjaGlwc1wmIzM0O1xuLS1cbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0xOS1cbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZzoyMDpjb25maWcgU05EX0FPQV9UT09OSUVcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O3N1cHBvcnQgVG9vbmllIGNoaXBcJiMzNDtcbi0tXG5zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnOjI6Y29uZmlnIFNORF9BT0FfRkFCUklDX0xBWU9VVFxuc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7bGF5b3V0LWlkIGZhYnJpY1wmIzM0O1xuLS1cbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZzoyOmNvbmZpZyBTTkRfQU9BX1NPVU5EQlVTXG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXBwbGUgU291bmRidXMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEwLVxuc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWc6MTE6Y29uZmlnIFNORF9BT0FfU09VTkRCVVNfSTJTXG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZy0xMi1cdHRyaXN0YXRlIFwmIzM0O0kyUyBidXMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2FybS9LY29uZmlnLTMtXG5zb3VuZC9hcm0vS2NvbmZpZzo0Om1lbnVjb25maWcgU05EX0FSTVxuc291bmQvYXJtL0tjb25maWctNS1cdGJvb2wgXCYjMzQ7QVJNIHNvdW5kIGRldmljZXNcJiMzNDtcbi0tXG5zb3VuZC9hcm0vS2NvbmZpZz0xMz1pZiBTTkRfQVJNXG5zb3VuZC9hcm0vS2NvbmZpZy0xNC1cbnNvdW5kL2FybS9LY29uZmlnOjE1OmNvbmZpZyBTTkRfQVJNQUFDSVxuc291bmQvYXJtL0tjb25maWctMTYtXHR0cmlzdGF0ZSBcJiMzNDtBUk0gUHJpbWVDZWxsIFBMMDQxIEFDIExpbmsgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2F0bWVsL0tjb25maWc9Mj1tZW51IFwmIzM0O0F0bWVsIGRldmljZXMgKEFUOTEpXCYjMzQ7XG4tLVxuc291bmQvYXRtZWwvS2NvbmZpZy00LVxuc291bmQvYXRtZWwvS2NvbmZpZzo1OmNvbmZpZyBTTkRfQVRNRUxfQUM5N0NcbnNvdW5kL2F0bWVsL0tjb25maWctNi1cdHRyaXN0YXRlIFwmIzM0O0F0bWVsIEFDOTcgQ29udHJvbGxlciAoQUM5N0MpIGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0yLSMgQUxTQSBzb3VuZGNhcmQtY29uZmlndXJhdGlvblxuc291bmQvY29yZS9LY29uZmlnOjM6Y29uZmlnIFNORF9USU1FUlxuc291bmQvY29yZS9LY29uZmlnLTQtXHR0cmlzdGF0ZVxuc291bmQvY29yZS9LY29uZmlnLTUtXG5zb3VuZC9jb3JlL0tjb25maWc6Njpjb25maWcgU05EX1BDTVxuc291bmQvY29yZS9LY29uZmlnLTctXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy05LVxuc291bmQvY29yZS9LY29uZmlnOjEwOmNvbmZpZyBTTkRfUENNX0VMRFxuc291bmQvY29yZS9LY29uZmlnLTExLVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTEyLVxuc291bmQvY29yZS9LY29uZmlnOjEzOmNvbmZpZyBTTkRfUENNX0lFQzk1OFxuc291bmQvY29yZS9LY29uZmlnLTE0LVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTE1LVxuc291bmQvY29yZS9LY29uZmlnOjE2OmNvbmZpZyBTTkRfRE1BRU5HSU5FX1BDTVxuc291bmQvY29yZS9LY29uZmlnLTE3LVx0dHJpc3RhdGVcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTpjb25maWcgU05EX0hXREVQXG5zb3VuZC9jb3JlL0tjb25maWctMjAtXHR0cmlzdGF0ZVxuc291bmQvY29yZS9LY29uZmlnLTIxLVxuc291bmQvY29yZS9LY29uZmlnOjIyOmNvbmZpZyBTTkRfU0VRX0RFVklDRVxuc291bmQvY29yZS9LY29uZmlnLTIzLVx0dHJpc3RhdGVcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNTpjb25maWcgU05EX1JBV01JRElcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNi1cdHRyaXN0YXRlXG4tLVxuc291bmQvY29yZS9LY29uZmlnLTI4LVxuc291bmQvY29yZS9LY29uZmlnOjI5OmNvbmZpZyBTTkRfVU1QXG5zb3VuZC9jb3JlL0tjb25maWctMzAtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0zMi1cbnNvdW5kL2NvcmUvS2NvbmZpZzozMzpjb25maWcgU05EX1VNUF9MRUdBQ1lfUkFXTUlESVxuc291bmQvY29yZS9LY29uZmlnLTM0LVx0Ym9vbCBcJiMzNDtMZWdhY3kgcmF3IE1JREkgc3VwcG9ydCBmb3IgVU1QIHN0cmVhbXNcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctNDEtXG5zb3VuZC9jb3JlL0tjb25maWc6NDI6Y29uZmlnIFNORF9DT1JFX1RFU1RcbnNvdW5kL2NvcmUvS2NvbmZpZy00My1cdHRyaXN0YXRlIFwmIzM0O1NvdW5kIGNvcmUgS1VuaXQgdGVzdFwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy01OC1cbnNvdW5kL2NvcmUvS2NvbmZpZzo1OTpjb25maWcgU05EX0NPTVBSRVNTX09GRkxPQURcbnNvdW5kL2NvcmUvS2NvbmZpZy02MC1cdHRyaXN0YXRlXG5zb3VuZC9jb3JlL0tjb25maWctNjEtXG5zb3VuZC9jb3JlL0tjb25maWc6NjI6Y29uZmlnIFNORF9DT01QUkVTU19BQ0NFTFxuc291bmQvY29yZS9LY29uZmlnLTYzLVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTY0LVxuc291bmQvY29yZS9LY29uZmlnOjY1OmNvbmZpZyBTTkRfSkFDS1xuc291bmQvY29yZS9LY29uZmlnLTY2LVx0Ym9vbFxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy02OC0jIGVuYWJsZSBpbnB1dCBkZXZpY2Ugc3VwcG9ydCBpbiBqYWNrIGxheWVyXG5zb3VuZC9jb3JlL0tjb25maWc6Njk6Y29uZmlnIFNORF9KQUNLX0lOUFVUX0RFVlxuc291bmQvY29yZS9LY29uZmlnLTcwLVx0Ym9vbFxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy03My1cbnNvdW5kL2NvcmUvS2NvbmZpZzo3NDpjb25maWcgU05EX09TU0VNVUxcbnNvdW5kL2NvcmUvS2NvbmZpZy03NS1cdGJvb2wgXCYjMzQ7RW5hYmxlIE9TUyBFbXVsYXRpb25cJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctNzktXG5zb3VuZC9jb3JlL0tjb25maWc6ODA6Y29uZmlnIFNORF9NSVhFUl9PU1NcbnNvdW5kL2NvcmUvS2NvbmZpZy04MS1cdHRyaXN0YXRlIFwmIzM0O09TUyBNaXhlciBBUElcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctOTEtXG5zb3VuZC9jb3JlL0tjb25maWc6OTI6Y29uZmlnIFNORF9QQ01fT1NTXG5zb3VuZC9jb3JlL0tjb25maWctOTMtXHR0cmlzdGF0ZSBcJiMzNDtPU1MgUENNIChkaWdpdGFsIGF1ZGlvKSBBUElcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMTA0LVxuc291bmQvY29yZS9LY29uZmlnOjEwNTpjb25maWcgU05EX1BDTV9PU1NfUExVR0lOU1xuc291bmQvY29yZS9LY29uZmlnLTEwNi1cdGJvb2wgXCYjMzQ7T1NTIFBDTSAoZGlnaXRhbCBhdWRpbykgQVBJIC0gSW5jbHVkZSBwbHVnaW4gc3lzdGVtXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTExMy1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxMTQ6Y29uZmlnIFNORF9QQ01fVElNRVJcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMTUtXHRib29sIFwmIzM0O1BDTSB0aW1lciBpbnRlcmZhY2VcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvY29yZS9LY29uZmlnLTEyNC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIFNORF9IUlRJTUVSXG5zb3VuZC9jb3JlL0tjb25maWctMTI2LVx0dHJpc3RhdGUgXCYjMzQ7SFItdGltZXIgYmFja2VuZCBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTEzNi1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIFNORF9EWU5BTUlDX01JTk9SU1xuc291bmQvY29yZS9LY29uZmlnLTEzOC1cdGJvb2wgXCYjMzQ7RHluYW1pYyBkZXZpY2UgZmlsZSBtaW5vciBudW1iZXJzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTE0Ni1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxNDc6Y29uZmlnIFNORF9NQVhfQ0FSRFNcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNDgtXHRpbnQgXCYjMzQ7TWF4IG51bWJlciBvZiBzb3VuZCBjYXJkc1wmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0xNTUtXG5zb3VuZC9jb3JlL0tjb25maWc6MTU2OmNvbmZpZyBTTkRfU1VQUE9SVF9PTERfQVBJXG5zb3VuZC9jb3JlL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IG9sZCBBTFNBIEFQSVwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0xNjItXG5zb3VuZC9jb3JlL0tjb25maWc6MTYzOmNvbmZpZyBTTkRfUFJPQ19GU1xuc291bmQvY29yZS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7U291bmQgUHJvYyBGUyBTdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0xNzEtXG5zb3VuZC9jb3JlL0tjb25maWc6MTcyOmNvbmZpZyBTTkRfVkVSQk9TRV9QUk9DRlNcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNzMtXHRib29sIFwmIzM0O1ZlcmJvc2UgcHJvY2ZzIGNvbnRlbnRzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTE4MC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxODE6Y29uZmlnIFNORF9DVExfRkFTVF9MT09LVVBcbnNvdW5kL2NvcmUvS2NvbmZpZy0xODItXHRib29sIFwmIzM0O0Zhc3QgbG9va3VwIG9mIGNvbnRyb2wgZWxlbWVudHNcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvY29yZS9LY29uZmlnLTE5MC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTE6Y29uZmlnIFNORF9ERUJVR1xuc291bmQvY29yZS9LY29uZmlnLTE5Mi1cdGJvb2wgXCYjMzQ7RGVidWdcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMTk1LVxuc291bmQvY29yZS9LY29uZmlnOjE5Njpjb25maWcgU05EX0RFQlVHX1ZFUkJPU0VcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOTctXHRib29sIFwmIzM0O01vcmUgdmVyYm9zZSBkZWJ1Z1wmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0yMDQtXG5zb3VuZC9jb3JlL0tjb25maWc6MjA1OmNvbmZpZyBTTkRfUENNX1hSVU5fREVCVUdcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMDYtXHRib29sIFwmIzM0O0VuYWJsZSBQQ00gcmluZyBidWZmZXIgb3ZlcnJ1bi91bmRlcnJ1biBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMjE0LVxuc291bmQvY29yZS9LY29uZmlnOjIxNTpjb25maWcgU05EX0NUTF9JTlBVVF9WQUxJREFUSU9OXG5zb3VuZC9jb3JlL0tjb25maWctMjE2LVx0Ym9vbCBcJiMzNDtWYWxpZGF0ZSBpbnB1dCBkYXRhIHRvIGNvbnRyb2wgQVBJXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTIyNC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyMjU6Y29uZmlnIFNORF9DVExfREVCVUdcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMjYtXHRib29sIFwmIzM0O0VuYWJsZSBkZWJ1Z2dpbmcgZmVhdHVyZSBmb3IgY29udHJvbCBBUElcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMjM4LVxuc291bmQvY29yZS9LY29uZmlnOjIzOTpjb25maWcgU05EX0pBQ0tfSU5KRUNUSU9OX0RFQlVHXG5zb3VuZC9jb3JlL0tjb25maWctMjQwLVx0Ym9vbCBcJiMzNDtTb3VuZCBqYWNrIGluamVjdGlvbiBpbnRlcmZhY2UgdmlhIGRlYnVnZnNcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMjQ3LVxuc291bmQvY29yZS9LY29uZmlnOjI0ODpjb25maWcgU05EX1VUSU1FUlxuc291bmQvY29yZS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIHVzZXJzcGFjZS1jb250cm9sbGVkIHZpcnR1YWwgdGltZXJzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTI1Ny1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNTg6Y29uZmlnIFNORF9WTUFTVEVSXG5zb3VuZC9jb3JlL0tjb25maWctMjU5LVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTI2MC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNjE6Y29uZmlnIFNORF9ETUFfU0dCVUZcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjItXHRkZWZfYm9vbCB5XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTI2NC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNjU6Y29uZmlnIFNORF9DVExfTEVEXG5zb3VuZC9jb3JlL0tjb25maWctMjY2LVx0dHJpc3RhdGVcbi0tXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjI6Y29uZmlnIFNORF9TRVFVRU5DRVJcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1NlcXVlbmNlciBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZz0xND1pZiBTTkRfU0VRVUVOQ0VSXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTE1LVxuc291bmQvY29yZS9zZXEvS2NvbmZpZzoxNjpjb25maWcgU05EX1NFUV9EVU1NWVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy0xNy1cdHRyaXN0YXRlIFwmIzM0O1NlcXVlbmNlciBkdW1teSBjbGllbnRcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTI4LVxuc291bmQvY29yZS9zZXEvS2NvbmZpZzoyOTpjb25maWcgU05EX1NFUVVFTkNFUl9PU1NcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMzAtXHR0cmlzdGF0ZSBcJiMzNDtPU1MgU2VxdWVuY2VyIEFQSVwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNDEtXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjQyOmNvbmZpZyBTTkRfU0VRX0hSVElNRVJfREVGQVVMVFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy00My1cdGJvb2wgXCYjMzQ7VXNlIEhSLXRpbWVyIGFzIGRlZmF1bHQgc2VxdWVuY2VyIHRpbWVyXCYjMzQ7XG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy00OS1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NTA6Y29uZmlnIFNORF9TRVFfTUlESV9FVkVOVFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01MS1cdHRyaXN0YXRlXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTUyLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1Mzpjb25maWcgU05EX1NFUV9NSURJXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTU0LVx0ZGVmX3RyaXN0YXRlIFNORF9SQVdNSURJXG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01Ni1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NTc6Y29uZmlnIFNORF9TRVFfTUlESV9FTVVMXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTU4LVx0dHJpc3RhdGVcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNTktXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjYwOmNvbmZpZyBTTkRfU0VRX1ZJUk1JRElcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNjEtXHR0cmlzdGF0ZVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy02Mi1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NjM6Y29uZmlnIFNORF9TRVFfVU1QXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTY0LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBVTVAgZXZlbnRzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy03Mi1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NzM6Y29uZmlnIFNORF9TRVFfVU1QX0NMSUVOVFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy03NC1cdGRlZl90cmlzdGF0ZSBTTkRfVU1QIFx1MDAyNlx1MDAyNiBTTkRfU0VRX1VNUFxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuc291bmQvZHJpdmVycy9LY29uZmlnOjI6Y29uZmlnIFNORF9NUFU0MDFfVUFSVFxuc291bmQvZHJpdmVycy9LY29uZmlnLTMtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy01LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjY6Y29uZmlnIFNORF9PUEwzX0xJQlxuc291bmQvZHJpdmVycy9LY29uZmlnLTctXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxMjpjb25maWcgU05EX09QTDRfTElCXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTMtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xOC0jIHNlbGVjdCBTRVEgc3R1ZmYgdG8gbWluKFNORF9TRVFVRU5DRVIsU05EX1hYWClcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxOTpjb25maWcgU05EX09QTDNfTElCX1NFUVxuc291bmQvZHJpdmVycy9LY29uZmlnLTIwLVx0ZGVmX3RyaXN0YXRlIFNORF9TRVFVRU5DRVIgXHUwMDI2XHUwMDI2IFNORF9PUEwzX0xJQlxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMy1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyNDpjb25maWcgU05EX09QTDRfTElCX1NFUVxuc291bmQvZHJpdmVycy9LY29uZmlnLTI1LVx0ZGVmX3RyaXN0YXRlIFNORF9TRVFVRU5DRVIgXHUwMDI2XHUwMDI2IFNORF9PUEw0X0xJQlxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yOC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyOTpjb25maWcgU05EX1ZYX0xJQlxuc291bmQvZHJpdmVycy9LY29uZmlnLTMwLVx0dHJpc3RhdGVcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMzQtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MzU6Y29uZmlnIFNORF9BQzk3X0NPREVDXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMzYtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy00MC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo0MTptZW51Y29uZmlnIFNORF9EUklWRVJTXG5zb3VuZC9kcml2ZXJzL0tjb25maWctNDItXHRib29sIFwmIzM0O0dlbmVyaWMgc291bmQgZGV2aWNlc1wmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZz00Nz1pZiBTTkRfRFJJVkVSU1xuc291bmQvZHJpdmVycy9LY29uZmlnLTQ4LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjQ5OmNvbmZpZyBTTkRfUENTUFxuc291bmQvZHJpdmVycy9LY29uZmlnLTUwLVx0dHJpc3RhdGUgXCYjMzQ7UEMtU3BlYWtlciBzdXBwb3J0IChSRUFEIEhFTFAhKVwmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy03OC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo3OTpjb25maWcgU05EX0RVTU1ZXG5zb3VuZC9kcml2ZXJzL0tjb25maWctODAtXHR0cmlzdGF0ZSBcJiMzNDtEdW1teSAoL2Rldi9udWxsKSBzb3VuZGNhcmRcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctOTEtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6OTI6Y29uZmlnIFNORF9BTE9PUFxuc291bmQvZHJpdmVycy9LY29uZmlnLTkzLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBsb29wYmFjayBkcml2ZXIgKFBDTSlcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTExLVxuc291bmQvZHJpdmVycy9LY29uZmlnOjExMjpjb25maWcgU05EX1BDTVRFU1RcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIFBDTSB0ZXN0IGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMjgtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTI5OmNvbmZpZyBTTkRfVklSTUlESVxuc291bmQvZHJpdmVycy9LY29uZmlnLTEzMC1cdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgTUlESSBzb3VuZGNhcmRcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTQ1LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjE0Njpjb25maWcgU05EX01UUEFWXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7TU9UVSBNaWRpVGltZVBpZWNlIEFWIG11bHRpcG9ydCBNSURJXCYjMzQ7XG4tLVxuc291bmQvZHJpdmVycy9LY29uZmlnLTE1Ny1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxNTg6Y29uZmlnIFNORF9NVFM2NFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE1OS1cdHRyaXN0YXRlIFwmIzM0O0VTSSBNaWRpdGVybWluYWwgNDE0MCBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTcwLVxuc291bmQvZHJpdmVycy9LY29uZmlnOjE3MTpjb25maWcgU05EX1NFUklBTF9VMTY1NTBcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNzItXHR0cmlzdGF0ZSBcJiMzNDtVQVJUMTY1NTAgc2VyaWFsIE1JREkgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvZHJpdmVycy9LY29uZmlnLTE4Ni1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxODc6Y29uZmlnIFNORF9TRVJJQUxfR0VORVJJQ1xuc291bmQvZHJpdmVycy9LY29uZmlnLTE4OC1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgc2VyaWFsIE1JREkgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvZHJpdmVycy9LY29uZmlnLTIwNC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyMDU6Y29uZmlnIFNORF9NUFU0MDFcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMDYtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIE1QVS00MDEgVUFSVCBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjE1LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjIxNjpjb25maWcgU05EX1BPUlRNQU4yWDRcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMTctXHR0cmlzdGF0ZSBcJiMzNDtQb3J0bWFuIDJ4NCBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjI2LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjIyNzpjb25maWcgU05EX0FDOTdfUE9XRVJfU0FWRVxuc291bmQvZHJpdmVycy9LY29uZmlnLTIyOC1cdGJvb2wgXCYjMzQ7QUM5NyBQb3dlci1TYXZpbmcgTW9kZVwmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yNTUtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MjU2OmNvbmZpZyBTTkRfQUM5N19QT1dFUl9TQVZFX0RFRkFVTFRcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yNTctXHRpbnQgXCYjMzQ7RGVmYXVsdCB0aW1lLW91dCBmb3IgQUM5NyBwb3dlci1zYXZlIG1vZGVcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjI6bWVudWNvbmZpZyBTTkRfRklSRVdJUkVcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMy1cdGJvb2wgXCYjMzQ7RmlyZVdpcmUgc291bmQgZGV2aWNlc1wmIzM0O1xuLS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc9OT1pZiBTTkRfRklSRVdJUkUgXHUwMDI2XHUwMDI2IEZJUkVXSVJFXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEwLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzoxMTpjb25maWcgU05EX0ZJUkVXSVJFX0xJQlxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xMi1cdHRyaXN0YXRlXG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTY6Y29uZmlnIFNORF9ESUNFXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE3LVx0dHJpc3RhdGUgXCYjMzQ7RElDRS1iYXNlZCBEQUNzIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTQzLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzo0NDpjb25maWcgU05EX09YRldcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPeGZvcmQgU2VtaWNvbmR1Y3RvciBGVzk3MC85NzEgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy02Ni1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6Njc6Y29uZmlnIFNORF9JU0lHSFRcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNjgtXHR0cmlzdGF0ZSBcJiMzNDtBcHBsZSBpU2lnaHQgbWljcm9waG9uZVwmIzM0O1xuLS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNzYtXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjc3OmNvbmZpZyBTTkRfRklSRVdPUktTXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTc4LVx0dHJpc3RhdGUgXCYjMzQ7RWNobyBGaXJld29ya3MgYm9hcmQgbW9kdWxlIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTkyLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzo5Mzpjb25maWcgU05EX0JFQk9CXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTk0LVx0dHJpc3RhdGUgXCYjMzQ7QnJpZGdlQ28gRE0xMDAwL0RNMTEwMC9ETTE1MDAgd2l0aCBCZUJvQiBmaXJtd2FyZVwmIzM0O1xuLS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMTM0LVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzoxMzU6Y29uZmlnIFNORF9GSVJFV0lSRV9ESUdJMDBYXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEzNi1cdHRyaXN0YXRlIFwmIzM0O0RpZ2lkZXNpZ24gRGlnaSAwMDIvMDAzIGZhbWlseSBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNDktXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE1MDpjb25maWcgU05EX0ZJUkVXSVJFX1RBU0NBTVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNTEtXHR0cmlzdGF0ZSBcJiMzNDtUQVNDQU0gRmlyZVdpcmUgc2VyaWVzIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE2Mi1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTYzOmNvbmZpZyBTTkRfRklSRVdJUkVfTU9UVVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNjQtXHR0cmlzdGF0ZSBcJiMzNDtNYXJrIG9mIHRoZSB1bmljb3JuIEZpcmVXaXJlIHNlcmllcyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xODktXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE5MDpjb25maWcgU05EX0ZJUkVGQUNFXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE5MS1cdHRyaXN0YXRlIFwmIzM0O1JNRSBGaXJlZmFjZSBzZXJpZXMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0yPWlmIFNORF9IREFcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjQ6Y29uZmlnIFNORF9IREFfR0VORVJJQ19MRURTXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNS0gICAgICAgYm9vbFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYtXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6Nzpjb25maWcgU05EX0hEQV9DT0RFQ19BTkFMT0dcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy04LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQW5hbG9nIERldmljZXMgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0xND1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTE2LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjE3OmNvbmZpZyBTTkRfSERBX0NPREVDX1NJR01BVEVMXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTgtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBJRFQvU2lnbWF0ZWwgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0yNT1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTI3LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjI4OmNvbmZpZyBTTkRfSERBX0NPREVDX1ZJQVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTI5LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgVklBIEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MzU9Y29tbWVudCBcJiMzNDtTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zNy1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzozODpjb25maWcgU05EX0hEQV9DT0RFQ19DT05FWEFOVFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTM5LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQ29uZXhhbnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz00Nj1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTQ4LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjQ5OmNvbmZpZyBTTkRfSERBX0NPREVDX1NFTkFSWVRFQ0hcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy01MC1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIFNlbmFyeXRlY2ggSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz01Nz1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTU5LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjYwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDExMFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQ3JlYXRpdmUgQ0EwMTEwLUlCRyBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnPTY3PWNvbW1lbnQgXCYjMzQ7U2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNjktXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6NzA6Y29uZmlnIFNORF9IREFfQ09ERUNfQ0EwMTMyXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNzEtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBDcmVhdGl2ZSBDQTAxMzIgY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz03Nz1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTc5LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjgwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDEzMl9EU1BcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy04MS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBuZXcgRFNQIGNvZGUgZm9yIENBMDEzMiBjb2RlY1wmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy05Mi1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzo5Mzpjb25maWcgU05EX0hEQV9DT0RFQ19DTUVESUFcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy05NC1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIEMtTWVkaWEgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0xMDA9Y29tbWVudCBcJiMzNDtTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMDItXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTAzOmNvbmZpZyBTTkRfSERBX0NPREVDX0NNOTgyNVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEwNC1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIEMtTWVkaWEgQ005ODI1IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTEwPWNvbW1lbnQgXCYjMzQ7U2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTEyLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjExMzpjb25maWcgU05EX0hEQV9DT0RFQ19TSTMwNTRcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMTQtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBTaWxpY29uIExhYnMgMzA1NCBIRC1tb2RlbSBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnPTExOT1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEyMS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzoxMjI6Y29uZmlnIFNORF9IREFfR0VORVJJQ1xuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEyMy1cdHRyaXN0YXRlIFwmIzM0O0VuYWJsZSBnZW5lcmljIEhELWF1ZGlvIGNvZGVjIHBhcnNlclwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMi1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWc6MzptZW51Y29uZmlnIFNORF9IREFfQ09ERUNfQ0lSUlVTXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTQtXHR0cmlzdGF0ZSBcJiMzNDtDaXJydXMgTG9naWMgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19DSVJSVVNcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMTMtXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX0NTNDIwWFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIENpcnJ1cyBMb2dpYyBDUzQyMHggY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnPTIxPWNvbW1lbnQgXCYjMzQ7U2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTIzLVxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzoyNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzQyMVhcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMjUtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBDaXJydXMgTG9naWMgQ1M0MjF4IGNvZGVjIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0zMT1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZy0zMy1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWc6MzQ6Y29uZmlnIFNORF9IREFfQ09ERUNfQ1M4NDA5XG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTM1LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQ2lycnVzIExvZ2ljIEhEQSBicmlkZ2Ugc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTItXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7SEQtYXVkaW8gSERNSSBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19IRE1JXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0xMy1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX0hETUlfR0VORVJJQ1xuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMTUtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIEhETUkvRGlzcGxheVBvcnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0yNS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjI2OmNvbmZpZyBTTkRfSERBX0NPREVDX0hETUlfU0lNUExFXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0yNy1cdHRyaXN0YXRlIFwmIzM0O1NpbXBsZSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMzItXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzozMzpjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JX0lOVEVMXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0zNC1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIEhETUkvRGlzcGxheVBvcnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy00MC1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjQxOmNvbmZpZyBTTkRfSERBX0lOVEVMX0hETUlfU0lMRU5UX1NUUkVBTVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNDItXHRib29sIFwmIzM0O0VuYWJsZSBTaWxlbnQgU3RyZWFtIGFsd2F5cyBmb3IgSERNSVwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTU1LVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NTY6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9BVElcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTU3LVx0dHJpc3RhdGUgXCYjMzQ7QU1EL0FUSSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNjMtXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzo2NDpjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JX05WSURJQVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNjUtXHR0cmlzdGF0ZSBcJiMzNDtOdmlkaWEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTcxLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NzI6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9OVklESUFfTUNQXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy03My1cdHRyaXN0YXRlIFwmIzM0O0xlZ2FjeSBOdmlkaWEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTc5LVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6ODA6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9URUdSQVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctODEtXHR0cmlzdGF0ZSBcJiMzNDtOdmlkaWEgVGVncmEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTItXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19SRUFMVEVLXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19SRUFMVEVLXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy0xMy1cbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX1JFQUxURUtfTElCXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy0xNS1cdHRyaXN0YXRlXG4tLVxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWctMTktXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZzoyMDpjb25maWcgU05EX0hEQV9DT0RFQ19BTEMyNjBcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgUmVhbHRlayBBTEMyNjAgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy0yNy1cbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjI4OmNvbmZpZyBTTkRfSERBX0NPREVDX0FMQzI2MlxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDE2CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNDk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQUxTQSBhbmQgVVNCIE1JREkyIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgcHJpbWFyeSBmb2N1cyBpcyB0aGUgQUxTQSBjb25maWd1cmF0aW9uLCBzcGVjaWZpY2FsbHkgYFNORGAuIEkgbmVlZCB0byBlbnN1cmUgaXQmIzM5O3MgZW5hYmxlZCBzaW5jZSBpdCBzZWVtcyB0byBiZSB0aGUgY29yZSBkZXBlbmRlbmN5IGhlcmUuIE9rYXksIGBTTkRgIGlzIHRyaXN0YXRlLCBnb29kLiBOb3csIGxvb2tpbmcgYXQgdGhlIGJpZ2dlciBwaWN0dXJlLCBpdCYjMzk7cyBjbGVhciB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgY2hhaW4gb2YgZGVwZW5kZW5jaWVzOiBgU05EYCwgYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuCgpgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIHNlZW1zIGtleSwgYXMgaXQgc2VsZWN0cyBgVVNCX0ZfTUlESTJgLiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoYXQgc2VsZWN0aW9uIOKAkyBZZXAsIGNvbmZpcm1lZC4gTm93LCBsZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgZGlyZWN0IGRlcGVuZGVuY2llcy4gQWgsIGBVU0JfRl9NSURJMmAgc2VsZWN0cyBgU05EX1VNUGAgYW5kIGBTTkRfVU1QX0xFR0FDWV9SQVdNSURJYC4gQnV0IHNpbmNlIGl0ICpzZWxlY3RzKiB0aGVtLCBpdCBtZWFucyB0aGV5IGRvbiYjMzk7dCBoYXZlIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBpZiBgVVNCX0ZfTUlESTJgIGlzLgoKT2theSwgbGV0IG1lIHJldmlldyB3aGF0IHdlIGhhdmUsIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQgYFNORGAuIFdoaWNoIG1lYW5zIHRvIGhhdmUgaXQsIHdlIG5lZWQ6CgoqICAgYFVTQl9HQURHRVRgCiogICBgVVNCX0NPTkZJR0ZTYAoqICAgYFNORGAKKiAgIGBVU0JfQ09ORklHRlNfRl9NSURJMmAKClRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gbm93IGlzLCBkb2VzIGVuYWJsaW5nIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgY29tcGlsZSB0aGUgYGZfbWlkaTIuY2AgZmlsZT8gTG9va2luZyBhdCB0aGUgYE1ha2VmaWxlYCBpbiB0aGUgZ2FkZ2V0IGZ1bmN0aW9uIGRpcmVjdG9yeTogYG9iai0kKENPTkZJR19VU0JfRl9NSURJMikgJiM0Mzs9IHVzYl9mX21pZGkyLm9gIGFuZCBgdXNiX2ZfbWlkaTIteSA6PSBmX21pZGkyLm9gLiBUaGUgdmFyaWFibGUgaXMsIG9mIGNvdXJzZSwgZGVyaXZlZCBmcm9tIGBVU0JfRl9NSURJMmAgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYFVTQl9DT05GSUdGU19GX01JREkyYC4gU28geWVzLCBzZXR0aW5nIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZG9lcyBlbnN1cmUgdGhlIGNvbXBpbGF0aW9uIG9mIGBmX21pZGkyLmNgLgoKTGV0JiMzOTtzIHNoaWZ0IGZvY3VzIHRvIHRoZSBhY3R1YWwgY29kZSBub3cgYW5kIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGlzIGFsbCBhYm91dC4gVGhpcyBwYXRjaCBtb2RpZmllcyBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBhbmQgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYC4gVGhlc2UgYXJlIHN0YXRpYyBmdW5jdGlvbnMsIHNvIHByb2JhYmx5IGludGVybmFsIHRvIHRoZSBtb2R1bGUsIGFuZCB0aGV5IGFyZSBjYWxsZWQgZnJvbSBgZl9taWRpMl9zdGFydF9lcHNgIGFuZCBgZl9taWRpMl9zdG9wX2Vwc2AuIExldCYjMzk7cyBjb25maXJtIHRoYXQgYnkgY2hlY2tpbmcgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYC4gT2theSwgdGhhdCYjMzk7cyB0aGUgbGlrZWx5IGNhbGwgY2hhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfZnJlZV9lcF9yZXFzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExMzg9c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYwLS8qIEZyZWUgYWxsb2NhdGVkIHJlcXVlc3RzICovXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExNjE6c3RhdGljIHZvaWQgZl9taWRpMl9mcmVlX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTExNjIte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIwMz1zdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjA2LVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjA3Olx0Zl9taWRpMl9mcmVlX2VwX3JlcXModXNiX2VwKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIwOC1cbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyMzk9c3RhdGljIHZvaWQgZl9taWRpMl9zdG9wX2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0My1cdGZfbWlkaTJfZHJvcF9yZXFzKGVwX291dCk7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDQ6XHRmX21pZGkyX2ZyZWVfZXBfcmVxcyhlcF9pbik7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDU6XHRmX21pZGkyX2ZyZWVfZXBfcmVxcyhlcF9vdXQpO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ2LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk2MTUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2YgdGhpcy4KCioqVHJhY2luZyBNSURJIEVuZHBvaW50IE1hbmFnZW1lbnQqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBNSURJIGRyaXZlciYjMzk7cyBlbmRwb2ludCAoRVApIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBTcGVjaWZpY2FsbHksIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2Agc2VlbXMgdG8gYmUgdGhlIGNydWNpYWwgY2xlYW51cCBmdW5jdGlvbiBjYWxsZWQgZnJvbSBib3RoIGBmX21pZGkyX2ZyZWVfZXBgIGFuZCBgZl9taWRpMl9zdG9wX2Vwc2AuICBJIGtub3cgdGhvc2UgYXJlIHRoZSB0d28gcHJpbWFyeSBwYXRod2F5cyB0byBkZWFsbG9jYXRlIHJlc291cmNlcy4gT24gdGhlIGZsaXAgc2lkZSwgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgaXMgaXRzIGNvdW50ZXJwYXJ0IOKAkyB0aGUgYWxsb2NhdGlvbiBmdW5jdGlvbiDigJMgYW5kIGl0JiMzOTtzIGNhbGxlZCBleGNsdXNpdmVseSBmcm9tIGBmX21pZGkyX3N0YXJ0X2Vwc2AsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuIEdpdmVuIHRoYXQsIHRyYWNpbmcgYGZfbWlkaTJfc3RhcnRfZXBzYCBhbmQgYGZfbWlkaTJfc3RvcF9lcHNgIHNlZW1zIGxpa2UgdGhlIGJlc3QgYXBwcm9hY2ggdG8gdW5kZXJzdGFuZCB0aGUgcmVzb3VyY2UgbGlmZWN5Y2xlIGZvciB0aGUgZW5kcG9pbnRzLiBVbmRlcnN0YW5kaW5nIHRoZXNlIGZ1bmN0aW9ucyBpbiBkZXRhaWwgd2lsbCByZXZlYWwgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBNSURJIGVuZHBvaW50IGFsbG9jYXRpb24sIGRlYWxsb2NhdGlvbiwgYW5kIHN0YXRlIHRyYW5zaXRpb25zLCB3aGljaCBpcyBrZXkuIEkmIzM5O2xsIGZvY3VzIG9uIHdoYXQgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgaW4gdGhlIHN0YXJ0IGZ1bmN0aW9uLCBhbmQgaG93IHRob3NlIHNhbWUgcmVzb3VyY2VzIGFyZSBmcmVlZCBpbiB0aGUgc3RvcCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Zl9taWRpMl9zdGFydF9lcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIzOT1zdGF0aWMgdm9pZCBmX21pZGkyX3N0b3BfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ4LS8qIHN0YXJ0L3F1ZXVlIGJvdGggSU4gYW5kIE9VVCBFUHMgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI0OTpzdGF0aWMgaW50IGZfbWlkaTJfc3RhcnRfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNTAtXHRcdFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dCxcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyNzQ9c3RhdGljIGludCBmX21pZGkyX3NldF9hbHQoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4sIHVuc2lnbmVkIGludCBpbnRmLFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwNC1cdGlmIChvcF9tb2RlID09IE1JRElfT1BfTU9ERV9NSURJMSlcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTMwNTpcdFx0cmV0dXJuIGZfbWlkaTJfc3RhcnRfZXBzKFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX2luLFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzA2LVx0XHRcdFx0XHQgXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfb3V0LCBmbik7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzExLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzEyOlx0XHRcdGVyciA9IGZfbWlkaTJfc3RhcnRfZXBzKFx1MDAyNmVwLVx1MDAzZWVwX2luLCBcdTAwMjZlcC1cdTAwM2VlcF9vdXQsIGZuKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMxMy1cdFx0XHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQzMQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqRW5kcG9pbnQgSW5pdGlhbGl6YXRpb24gYW5kIFRlcm1pbmF0aW9uKioKCkFscmlnaHQsIHNvIGBmX21pZGkyX3NldF9hbHRgIGlzIHRoZSBkZXNpZ25hdGVkIHN0YXJ0aW5nIHBvaW50IGZvciBicmluZ2luZyB0aGUgTUlESSBlbmRwb2ludHMgb25saW5lLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBJJiMzOTtkIGV4cGVjdCB0byBzZWUuIE5vdywgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBsaWZlY3ljbGUsIGl0JiMzOTtzIG5hdHVyYWwgdG8gdHVybiBteSBhdHRlbnRpb24gdG8gdGhlIHRlcm1pbmF0aW9uIHNpZGUgb2YgdGhpbmdzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgc2h1dGRvd24gcHJvY2VzcyBjb21wbGV0ZWx5LiBMZXQmIzM5O3MgZGVsdmUgaW50byBgZl9taWRpMl9zdG9wX2Vwc2AgYW5kIHRyYWNlIGl0cyBiZWhhdmlvci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBlbmRwb2ludHMgYXJlIGNvcnJlY3RseSBzaHV0IGRvd24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfc3RvcF9lcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIxNj1zdGF0aWMgdm9pZCBmX21pZGkyX3F1ZXVlX291dF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIzOC0vKiBzdG9wIGJvdGggSU4gYW5kIE9VVCBFUHMgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIzOTpzdGF0aWMgdm9pZCBmX21pZGkyX3N0b3BfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDAtXHRcdFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyNzQ9c3RhdGljIGludCBmX21pZGkyX3NldF9hbHQoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4sIHVuc2lnbmVkIGludCBpbnRmLFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI5NC1cdGlmIChvcF9tb2RlICE9IE1JRElfT1BfTU9ERV9NSURJMSlcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI5NTpcdFx0Zl9taWRpMl9zdG9wX2VwcyhcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMV9lcF9pbiwgXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI5Ni1cbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTktXHRcdFx0ZXAgPSBcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMl9lcHNbaV07XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMDA6XHRcdFx0Zl9taWRpMl9zdG9wX2VwcyhcdTAwMjZlcC1cdTAwM2VlcF9pbiwgXHUwMDI2ZXAtXHUwMDNlZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwMS1cdFx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTA5MQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipBbmFseXppbmcgRW50cnkgUG9pbnRzIGluIE1JREkyIENvZGUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW4uIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgc2VlbXMgdG8gYmUgcm9vdGVkIGluIGBmX21pZGkyX3NldF9hbHRgIOKAkyB0aGF0JiMzOTtzIHRoZSBtYWluIGVudHJ5IHBvaW50LCB0aGUgb25lIHRoYXQga2lja3MgZXZlcnl0aGluZyBvZmYuIE5vdywgYmVmb3JlIEkgcHJvY2VlZCB3aXRoIGFueSBkZWVwIGFuYWx5c2lzLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCBhIGNvbXByZWhlbnNpdmUgcGljdHVyZSBvZiB0aGUgZnVuY3Rpb24gY2FsbHMuIEkgc2hvdWxkIHRob3JvdWdobHkgaW52ZXN0aWdhdGUgaWYgdGhlcmUgYXJlIG90aGVyIGFjY2VzcyBwb2ludHMuIEkgc2hvdWxkIHNlZSBpZiBvdGhlciBmdW5jdGlvbnMgY291bGQgcG90ZW50aWFsbHkgaW50ZXJhY3Qgd2l0aCBgZl9taWRpMl9mcmVlX2VwYCwgYXMgdGhlIGNvbXBsZW1lbnRhcnkgZnVuY3Rpb25hbGl0eSB0byBgZl9taWRpMl9zZXRfYWx0YC4gS2VlcGluZyBhbiBleGhhdXN0aXZlIG1hcHBpbmcgb2YgZW50cnlwb2ludHMgdG8gdGhpcyBmdW5jdGlvbiBhbGxvd3MgbWUgdG8gaGF2ZSBiZXR0ZXIgY29udHJvbCBvbiB0aGlzIHBhcnQgb2YgdGhlIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfZnJlZV9lcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTM4PXN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTE2MC0vKiBGcmVlIGFsbG9jYXRlZCByZXF1ZXN0cyAqL1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMTYxOnN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYyLXtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExNzQ9c3RhdGljIGludCBmX21pZGkyX2luaXRfZXAoc3RydWN0IGZfbWlkaTIgKm1pZGkyLCBzdHJ1Y3QgZl9taWRpMl9lcCAqZXAsXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjAyLS8qIEZyZWUgRVAgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIwMzpzdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDQte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIwNi1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIwNzpcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKHVzYl9lcCk7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDgtXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDMtXHRmX21pZGkyX2Ryb3BfcmVxcyhlcF9vdXQpO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ0Olx0Zl9taWRpMl9mcmVlX2VwX3JlcXMoZXBfaW4pO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ1Olx0Zl9taWRpMl9mcmVlX2VwX3JlcXMoZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0Ni19XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0yMDU3PXN0YXRpYyB2b2lkIGZfbWlkaTJfdW5iaW5kKHN0cnVjdCB1c2JfY29uZmlndXJhdGlvbiAqYywgc3RydWN0IHVzYl9mdW5jdGlvbiAqZilcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTIwNjMtXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjIwNjQ6XHRmX21pZGkyX2ZyZWVfZXAoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfaW4pO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyMDY1Olx0Zl9taWRpMl9mcmVlX2VwKFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX291dCk7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTIwNjYtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBtaWRpMi1cdTAwM2VudW1fZXBzOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyMDY3Olx0XHRmX21pZGkyX2ZyZWVfZXAoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTJfZXBzW2ldLmVwX2luKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2ODpcdFx0Zl9taWRpMl9mcmVlX2VwKFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkyX2Vwc1tpXS5lcF9vdXQpO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yMDY5LVx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjI0MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE5NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1JREkgR2FkZ2V0IERyaXZlciBFbnRyeSBQb2ludHMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgTUlESSBnYWRnZXQgZHJpdmVyIGNvZGUuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgZnVuY3Rpb25zIEkgbmVlZCB0byB1bmRlcnN0YW5kIGFyZSBgZl9taWRpMl91bmJpbmRgIGFuZCBgZl9taWRpMl9zZXRfYWx0YC4gU3BlY2lmaWNhbGx5LCBgZl9taWRpMl91bmJpbmRgIGRpcmVjdGx5IGNhbGxzIGBmX21pZGkyX2ZyZWVfZXBgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlbiwgYGZfbWlkaTJfc2V0X2FsdGAgaXMgYSBiaXQgbW9yZSBpbnZvbHZlZDsgaXQmIzM5O3MgY2FsbGluZyBib3RoIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gU3RhbmRhcmQgVVNCIGdhZGdldCBmdW5jdGlvbiBjYWxsYmFja3MsIGFzIGV4cGVjdGVkLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgaWYgYW55IG90aGVyIGVudHJ5IHBvaW50cyBtaWdodCB0cmlnZ2VyIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIG9yIHJlbGF0ZWQgZnVuY3Rpb25zIHRoYXQgbWlnaHQgYmUgb2YgaW50ZXJlc3QuIEl0IGxvb2tzIGxpa2UgdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBkb2VzIHRoYXQgaXMgYGZfbWlkaTJfc3RhcnRfZXBzYCwgYW5kIHRoYXQgb25lIGlzIG9ubHkgY2FsbGVkIGJ5IGBmX21pZGkyX3NldF9hbHRgLiBTbywgYGZfbWlkaTJfc2V0X2FsdGAgcmVhbGx5IHNlZW1zIGxpa2UgdGhlIGtleSBmdW5jdGlvbiBoZXJlIHRvIGFuYWx5emUgaW4gbW9yZSBkZXB0aC4KCkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgZl9taWRpMl9iaW5kYCBhcyB3ZWxsLiBQZXJoYXBzIGl0IGluaXRpYWxpemVzIHRoZSBlbmRwb2ludHMgb3IgY2FsbHMgYGZfbWlkaTJfaW5pdF9lcGAgaW4gc29tZSB3YXkuIEdvdHRhIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBtaXNzIGFueXRoaW5nIG9idmlvdXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfYmluZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xOTExPXN0YXRpYyBpbnQgZl9taWRpMl9pbml0X21pZGkyX2VwX291dChzdHJ1Y3QgZl9taWRpMiAqbWlkaTIsIGludCBpbmRleClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE5MjctLyogZ2FkZ2V0IGZ1bmN0aW9uIGJpbmQgY2FsbGJhY2sgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTkyODpzdGF0aWMgaW50IGZfbWlkaTJfYmluZChzdHJ1Y3QgdXNiX2NvbmZpZ3VyYXRpb24gKmMsIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmYpXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE5Mjkte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTI4MzEtXHRtaWRpMi1cdTAwM2VmdW5jLm5hbWUgPSBcJiMzNDttaWRpMl9mdW5jXCYjMzQ7O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODMyOlx0bWlkaTItXHUwMDNlZnVuYy5iaW5kID0gZl9taWRpMl9iaW5kO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODMzLVx0bWlkaTItXHUwMDNlZnVuYy51bmJpbmQgPSBmX21pZGkyX3VuYmluZDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwODQKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA0NjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIE1JREkgMi4wIEdhZGdldCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIE1JREkgMi4wIGdhZGdldCBkcml2ZXIuIE15IGluaXRpYWwgZm9jdXMgaXMgb24gdGhlIG1haW4gZW50cnkgcG9pbnRzOiBgZl9taWRpMl9iaW5kYCwgYGZfbWlkaTJfdW5iaW5kYCwgYW5kIGBmX21pZGkyX3NldF9hbHRgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgYSBidWcgZml4IHdpdGhpbiB0aGUgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AgZnVuY3Rpb25zLiBJdCBzZWVtcyBsaWtlIHRoZXJlIHdhcyBhbiBpbmNvcnJlY3QgdmFyaWFibGUgdXNlZCBmb3IgcmVxdWVzdCBjb3VudHMsIHVzaW5nIGBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxc2AgaW5zdGVhZCBvZiBgdXNiX2VwLSZndDtudW1fcmVxc2AsIHdoaWNoIG1ha2VzIHNlbnNlIGJlY2F1c2UgZW5kcG9pbnQgcmVxdWVzdCBjb3VudHMgd291bGQgYmUgc3BlY2lmaWMgdG8gZWFjaCBlbmRwb2ludC4KClRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJJiMzOTttIHRoaW5raW5nIHRoaXMgaXMgcHJpbWUgZm9yIGZ1enppbmcuIFRvIGdldCB0aGF0IGdvaW5nLCBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHNldC4gSSBuZWVkOiBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBgU05EYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuCgpXYWl0IGEgbWludXRlLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHNvbWV0aGluZy4gYFVTQl9DT05GSUdGU2AgaXMgYSB0cmlzdGF0ZSwgd2hpbGUgYFVTQl9DT05GSUdGU19GX01JREkyYCBpcyBhIGJvb2wuIEp1c3QgdG8gYmUgc3VyZSwgSSYjMzk7bGwgY29uZmlybSB0aGF0IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgaW5kZWVkIGEgYm9vbC4uLiB5ZXAsICYjMzQ7TUlESSAyLjAgZnVuY3Rpb24mIzM0Oy4KCk9rYXksIHNvIGl0JiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIGVuYWJsZW1lbnQgc2l0dWF0aW9uLCBJIGp1c3QgbmVlZCB0byBlbmFibGUgYFVTQl9DT05GSUdGU19GX01JREkyYC4gQWgsIGJ1dCBhIGRlcGVuZGVuY3kgY2hlY2s6IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQgYFNORGAuIEFuZCBzaW5jZSBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYCwgSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgdGhhdCBvbmUgdG9vLiBTbyB0aGUgd2hvbGUgc2V0IHNob3VsZCBpbmNsdWRlIGBVU0JfR0FER0VUYCwgYFVTQl9DT05GSUdGU2AsIGBTTkRgLCBhbmQgYFVTQl9DT05GSUdGU19GX01JREkyYC4KCkkgc2hvdWxkIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncywgYW5kIGl0IGxvb2tzIGxpa2UgYFVTQl9GX01JREkyYCBpcyBzZWxlY3RlZCBieSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBUaGF0IGNvbmZpcm1zIG15IGluaXRpYWwgc3RyYXRlZ3ksIGFzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgc3VmZmljaWVudC4KCkp1c3QgdG8gYmUgZXhwbGljaXQsIGhlcmUmIzM5O3MgdGhlIGZpbmFsIGNvbmZpZyBsaXN0OgoKKiAgIGBVU0JfR0FER0VUYAoqICAgYFVTQl9DT05GSUdGU2AKKiAgIGBTTkRgCiogICBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgCgpBbmQgZm9yIHRhcmdldCBmdW5jdGlvbnMsIGJlc2lkZXMgdGhlIGVudHJ5IHBvaW50czoKCiogICBgZl9taWRpMl9zZXRfYWx0YAoqICAgYGZfbWlkaTJfYmluZGAKKiAgIGBmX21pZGkyX3VuYmluZGAKCmBmX21pZGkyX3NldF9hbHRgIGxvb2tzIGxpa2UgYSBnb29kIG9uZSB0byB0YXJnZXQsIGFuZCBzaW5jZSBJJiMzOTttIGhlcmUgSSBtaWdodCBhcyB3ZWxsIGNoZWNrIGBmX21pZGkyX3NldHVwYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Zl9taWRpMl9zZXR1cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMzQ2PXN0YXRpYyB2b2lkIGFzc2lnbl9ibG9ja19kZXNjcmlwdG9ycyhzdHJ1Y3QgZl9taWRpMiAqbWlkaTIsXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xNDA0LS8qIGdhZGdldCBmdW5jdGlvbiBzZXR1cCBjYWxsYmFjazogaGFuZGxlIEdUQiByZXF1ZXN0cyAqL1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxNDA1OnN0YXRpYyBpbnQgZl9taWRpMl9zZXR1cChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbixcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQwNi1cdFx0XHQgY29uc3Qgc3RydWN0IHVzYl9jdHJscmVxdWVzdCAqY3RybClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTI4MDY9c3RhdGljIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZfbWlkaTJfYWxsb2Moc3RydWN0IHVzYl9mdW5jdGlvbl9pbnN0YW5jZSAqZmkpXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM1LVx0bWlkaTItXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODM2Olx0bWlkaTItXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTI4MzctXHRtaWRpMi1cdTAwM2VmdW5jLmRpc2FibGUgPSBmX21pZGkyX2Rpc2FibGU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTM0CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIE1JREkgTGFuZHNjYXBlKioKClJpZ2h0LCBzbyBJJiMzOTttIHNlZWluZyB0aGF0IGBmX21pZGkyX2Rpc2FibGVgIGZ1bmN0aW9uIGFnYWluLiBJdCYjMzk7cyBhIGtleSBwaWVjZSwgaXNuJiMzOTt0IGl0PyBJdHMgcHJlc2VuY2UgaW1tZWRpYXRlbHkgdHJpZ2dlcnMgbXkgbWluZCB0byBjb25zaWRlciB0aGUgc3BlY2lmaWMgTUlESSBpbXBsZW1lbnRhdGlvbiB0aGlzIGNvZGUgaXMgZGVhbGluZyB3aXRoLiBUaGUgbmFtaW5nIGNvbnZlbnRpb24gc3VnZ2VzdHMgaXQgbWlnaHQgYmUgYSBmdW5jdGlvbiB0aGF0IHNlbGVjdGl2ZWx5IGRpc2FibGVzIGEgcGFydGljdWxhciBNSURJIGNvbXBvbmVudCBvciBmZWF0dXJlIHNldCwgcGVyaGFwcyBNSURJIDIuMCBmdW5jdGlvbmFsaXR5LCBvciBwZXJoYXBzIGEgc2Vjb25kIE1JREkgZGV2aWNlIGJlaW5nIGVtcGxveWVkIG9uIHRoZSBzeXN0ZW0uIFRoaW5raW5nIG1vcmUgYnJvYWRseSwgaXQgZmxhZ3MgdGhlIG5lZWQgdG8gZXZhbHVhdGUgaG93IE1JREkgY29tbXVuaWNhdGlvbiBpcyBiZWluZyBoYW5kbGVkIOKAkyBpcyB0aGVyZSBhbiBhdHRlbXB0IHRvIHN1cHBvcnQgbXVsdGlwbGUgTUlESSBzdHJlYW1zLCBvciBhcmUgd2UgaW50ZW50aW9uYWxseSBsaW1pdGluZyB0aGUgY29uZmlndXJhdGlvbj8gVGhpcyBsaWtlbHkgaGFzIHJhbWlmaWNhdGlvbnMgZm9yIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBhbmQgdGhlIGludGVuZGVkIHVzZSBjYXNlLiBUaGlzIHByb21wdHMgcXVlc3Rpb25zIGFib3V0IHRoZSB1bmRlcmx5aW5nIE1JREkgZnJhbWV3b3JrIOKAkyBpcyBpdCBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiwgb3IgYXJlIHdlIHVzaW5nIGEgc3RhbmRhcmQgbGlicmFyeT8gVGhpcyBhbHNvIGltcGFjdHMgb3VyIGRlYnVnZ2luZyBzdHJhdGVneS4gSXMgdGhlcmUgYW4gaXNzdWUsIG9yIHNpbXBseSBzb21ldGhpbmcgdGhhdCB0aGUgcHJvZ3JhbSBpcyBjb25maWd1cmVkIHRvIGRvPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIGFueSBvdGhlciBNSURJLXJlbGF0ZWQgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IHRob3NlIGRlYWxpbmcgd2l0aCBpbml0aWFsaXphdGlvbiwgZGF0YSB0cmFuc21pc3Npb24sIGFuZCBldmVudCBoYW5kbGluZy4gSSBhbHNvIGhhdmUgdG8ga2VlcCBpbiBtaW5kIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIGRpc2FibGluZyBhIGNvbXBvbmVudDogQXJlIHRoZXJlIGRlcGVuZGVuY2llcyB0aGF0IG5vdyBuZWVkIHRvIGJlIGFkZHJlc3NlZD8gRG9lcyBpdCBpbXBhY3Qgb3RoZXIsIHVucmVsYXRlZCBtb2R1bGVzPyBJIG11c3Qgbm93IGxvb2sgbW9yZSBjbG9zZWx5IHRvIHNlZSB3aGVyZSB0aGlzIGRpc2FibGluZyBhY3Rpb24gdGFrZXMgcGxhY2Ugd2l0aGluIHRoZSBjb250cm9sIGZsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfZGlzYWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xNDA1PXN0YXRpYyBpbnQgZl9taWRpMl9zZXR1cChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE0MzEtLyogZ2FkZ2V0IGZ1bmN0aW9uIGRpc2FibGUgY2FsbGJhY2sgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTQzMjpzdGF0aWMgdm9pZCBmX21pZGkyX2Rpc2FibGUoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4pXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE0MzMte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTI4MzYtXHRtaWRpMi1cdTAwM2VmdW5jLnNldHVwID0gZl9taWRpMl9zZXR1cDtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzNzpcdG1pZGkyLVx1MDAzZWZ1bmMuZGlzYWJsZSA9IGZfbWlkaTJfZGlzYWJsZTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzOC1cdG1pZGkyLVx1MDAzZWZ1bmMuZnJlZV9mdW5jID0gZl9taWRpMl9mcmVlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE4NAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEZWNvbnN0cnVjdGluZyB0aGUgTUlESTIgRGlzYWJsZSBGdW5jdGlvbioqCgpPa2F5LCBzbyBgZl9taWRpMl9kaXNhYmxlYC4gTXkgaW1tZWRpYXRlIGFzc3VtcHRpb24sIGJhc2VkIG9uIG5hbWluZyBjb252ZW50aW9ucywgaXMgdGhhdCB0aGlzIGZ1bmN0aW9uIGxpa2VseSBjYWxscyBgZl9taWRpMl9zdG9wX2Vwc2AuIFRoZSAmIzM0O2VwcyYjMzQ7IGxpa2VseSByZWZlcnMgdG8gJiMzNDtlbmRwb2ludHMmIzM0OywgYW5kICYjMzQ7c3RvcCYjMzQ7IHN1Z2dlc3RzIGEgc2h1dGRvd24gb3IgZGVhY3RpdmF0aW9uIG9mIHRoZSBlbmRwb2ludHMuIEl0JiMzOTtzIGEgcHJldHR5IHN0YW5kYXJkIHBhdHRlcm4uIE5vdywgdGhlIG5leHQgc3RlcCBpcyB0byBjb25maXJtIHRoYXQgdGhlIGNvZGUgYWN0dWFsbHkgYmVoYXZlcyBhcyBJIHN1c3BlY3QuIE5lZWQgdG8gZGlnIGluIGFuZCBzZWUgdGhlIGNvbnRyb2wgZmxvdy4gV2hhdCBhcmUgdGhlIHNwZWNpZmljIGltcGxpY2F0aW9ucyBvZiBkaXNhYmxpbmcgTUlESTI/IERvZXMgaXQganVzdCBzaHV0IGRvd24gdGhlIHN0cmVhbXMsIG9yIGFyZSB0aGVyZSBhbnkgaGFyZHdhcmUgcG93ZXItZG93bnMgb3Igc3RhdGUgcmVzZXRzIGludm9sdmVkPyBHb3R0YSBjaGVjayB0aGUgcmVnaXN0ZXIgc2V0dGluZ3MgYW5kIGVycm9yIGhhbmRsaW5nIHRvby4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTQzMiwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxNDMyOlx0c3RhdGljIHZvaWQgZl9taWRpMl9kaXNhYmxlKHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuKVxuMTQzMzpcdHtcbjE0MzQ6XHRcdHN0cnVjdCBmX21pZGkyICptaWRpMiA9IGZ1bmNfdG9fbWlkaTIoZm4pO1xuMTQzNTpcdFxuMTQzNjpcdFx0bWlkaTItXHUwMDNlb3BlcmF0aW9uX21vZGUgPSBNSURJX09QX01PREVfVU5TRVQ7XG4xNDM3Olx0fVxuMTQzODpcdFxuMTQzOTpcdC8qXG4xNDQwOlx0ICogQUxTQSBVTVAgb3BzOiBtb3N0IG9mIHRoZW0gYXJlIE5PUHMsIG9ubHkgdHJpZ2dlciBmb3Igd3JpdGUgaXMgbmVlZGVkXG4xNDQxOlx0ICovXG4xNDQyOlx0c3RhdGljIGludCBmX21pZGkyX3VtcF9vcGVuKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIpXG4xNDQzOlx0e1xuMTQ0NDpcdFx0cmV0dXJuIDA7XG4xNDQ1Olx0fVxuMTQ0NjpcdFxuMTQ0NzpcdHN0YXRpYyB2b2lkIGZfbWlkaTJfdW1wX2Nsb3NlKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIpXG4xNDQ4Olx0e1xuMTQ0OTpcdH1cbjE0NTA6XHRcbjE0NTE6XHRzdGF0aWMgdm9pZCBmX21pZGkyX3VtcF90cmlnZ2VyKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIsIGludCB1cClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU3MjAKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4KCioqQW5hbHl6aW5nIE1JREkyIEVuZHBvaW50IENvbnRyb2wgRmxvdyoqCgpIbW0sIHdhaXQgYSBtaW51dGUuLi4gSSB3YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCBgZl9taWRpMl9kaXNhYmxlYCB3b3VsZCBhbHNvIGJlIHJlc3BvbnNpYmxlIGZvciBzdG9wcGluZyB0aGUgZW5kcG9pbnQgc3RyZWFtcy4gQnV0IGl0IGRvZXNuJiMzOTt0IGFjdHVhbGx5IGNhbGwgYGZfbWlkaTJfc3RvcF9lcHNgLiBUaGF0JiMzOTtzIGEgYml0IG9kZC4gU28sIHdoZXJlICppcyogYGZfbWlkaTJfc3RvcF9lcHNgIGdldHRpbmcgY2FsbGVkPyBBaCwgcmlnaHQhIEl0JiMzOTtzIHdpdGhpbiBgZl9taWRpMl9zZXRfYWx0YC4gT2theSwgdGhhdCBtYWtlcyBtb3JlIHNlbnNlIG5vdy4gU28sIGBmX21pZGkyX3NldF9hbHRgIGFwcGVhcnMgdG8gYmUgdGhlIHByaW1hcnkgZnVuY3Rpb24gZm9yIG1hbmFnaW5nIHRoZSBhbGxvY2F0aW9uIGFuZCBkZWFsbG9jYXRpb24gb2YgcmVxdWVzdHMgcmVsYXRlZCB0byB0aGUgTUlESTIgZW5kcG9pbnRzLiBHaXZlbiBpdHMgY2VudHJhbCByb2xlLCBJIHNob3VsZCBwcm9iYWJseSByZS1leGFtaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZl9taWRpMl9zZXRfYWx0YCBtb3JlIGNsb3NlbHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSByZXF1ZXN0IGxpZmVjeWNsZSBpbiB0aGF0IGZ1bmN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMjc0LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQ1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEyNzQ6XHRzdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXG4xMjc1Olx0XHRcdFx0ICAgdW5zaWduZWQgaW50IGFsdClcbjEyNzY6XHR7XG4xMjc3Olx0XHRzdHJ1Y3QgZl9taWRpMiAqbWlkaTIgPSBmdW5jX3RvX21pZGkyKGZuKTtcbjEyNzg6XHRcdHN0cnVjdCBmX21pZGkyX2VwICplcDtcbjEyNzk6XHRcdGludCBpLCBvcF9tb2RlLCBlcnI7XG4xMjgwOlx0XG4xMjgxOlx0XHRpZiAoaW50ZiAhPSBtaWRpMi1cdTAwM2VtaWRpX2lmIHx8IGFsdCBcdTAwM2UgMSlcbjEyODI6XHRcdFx0cmV0dXJuIDA7XG4xMjgzOlx0XG4xMjg0Olx0XHRpZiAoYWx0ID09IDApXG4xMjg1Olx0XHRcdG9wX21vZGUgPSBNSURJX09QX01PREVfTUlESTE7XG4xMjg2Olx0XHRlbHNlXG4xMjg3Olx0XHRcdG9wX21vZGUgPSBNSURJX09QX01PREVfTUlESTI7XG4xMjg4Olx0XG4xMjg5Olx0XHRpZiAobWlkaTItXHUwMDNlb3BlcmF0aW9uX21vZGUgPT0gb3BfbW9kZSlcbjEyOTA6XHRcdFx0cmV0dXJuIDA7XG4xMjkxOlx0XG4xMjkyOlx0XHRtaWRpMi1cdTAwM2VvcGVyYXRpb25fbW9kZSA9IG9wX21vZGU7XG4xMjkzOlx0XG4xMjk0Olx0XHRpZiAob3BfbW9kZSAhPSBNSURJX09QX01PREVfTUlESTEpXG4xMjk1Olx0XHRcdGZfbWlkaTJfc3RvcF9lcHMoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfaW4sIFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX291dCk7XG4xMjk2Olx0XG4xMjk3Olx0XHRpZiAob3BfbW9kZSAhPSBNSURJX09QX01PREVfTUlESTIpIHtcbjEyOTg6XHRcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbWlkaTItXHUwMDNlbnVtX2VwczsgaSYjNDM7JiM0MzspIHtcbjEyOTk6XHRcdFx0XHRlcCA9IFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkyX2Vwc1tpXTtcbjEzMDA6XHRcdFx0XHRmX21pZGkyX3N0b3BfZXBzKFx1MDAyNmVwLVx1MDAzZWVwX2luLCBcdTAwMjZlcC1cdTAwM2VlcF9vdXQpO1xuMTMwMTpcdFx0XHR9XG4xMzAyOlx0XHR9XG4xMzAzOlx0XG4xMzA0Olx0XHRpZiAob3BfbW9kZSA9PSBNSURJX09QX01PREVfTUlESTEpXG4xMzA1Olx0XHRcdHJldHVybiBmX21pZGkyX3N0YXJ0X2VwcyhcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMV9lcF9pbixcbjEzMDY6XHRcdFx0XHRcdFx0IFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX291dCwgZm4pO1xuMTMwNzpcdFxuMTMwODpcdFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkyKSB7XG4xMzA5Olx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG1pZGkyLVx1MDAzZW51bV9lcHM7IGkmIzQzOyYjNDM7KSB7XG4xMzEwOlx0XHRcdFx0ZXAgPSBcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMl9lcHNbaV07XG4xMzExOlx0XG4xMzEyOlx0XHRcdFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXHUwMDI2ZXAtXHUwMDNlZXBfaW4sIFx1MDAyNmVwLVx1MDAzZWVwX291dCwgZm4pO1xuMTMxMzpcdFx0XHRcdGlmIChlcnIpXG4xMzE0Olx0XHRcdFx0XHRyZXR1cm4gZXJyO1xuMTMxNTpcdFx0XHR9XG4xMzE2Olx0XHR9XG4xMzE3Olx0XG4xMzE4Olx0XHRyZXR1cm4gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY3NzYKCQkJCQkJCW91dHB1dDogMTczCgkJCQkJCQl0aG91Z2h0czogMzU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIE1JREkyIEdhZGdldCBSZXF1ZXN0IE1hbmFnZW1lbnQqKgoKT2theSwgc28gYGZfbWlkaTJfc2V0X2FsdGAgaXMgZGVmaW5pdGVseSB0aGUga2V5IGZ1bmN0aW9uLiBUaGF0JiMzOTtzIHRoZSBvbmUgdGhhdCBoYW5kbGVzIHJlcXVlc3QgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uLCBzbyBpdCYjMzk7cyBhIHByaW1hcnkgZm9jdXMuIEJleW9uZCB0aGF0LCBJIG5lZWQgdG8gaW5jbHVkZSBgZl9taWRpMl9iaW5kYCBhbmQgYGZfbWlkaTJfdW5iaW5kYCBzaW5jZSB0aGV5IHdvdWxkIGluZmx1ZW5jZSBob3cgcmVxdWVzdHMgYXJlIGhhbmRsZWQuCgpXYWl0IGEgbWludXRlLCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBpcyBhbHNvIGNhbGxlZCBmcm9tIGBmX21pZGkyX3N0YXJ0X2Vwc2AuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIgc2ltaWxhciBjYWxsIHNpdGVzLiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBvdGhlciBwb3RlbnRpYWwgY2FuZGlkYXRlcyBzdWNoIGFzIGBmX21pZGkyX2VwX2luX2NvbXBsZXRlYCBhbmQgYW55IHNpbWlsYXIgZnVuY3Rpb25zLiBTdGlsbCwgYGZfbWlkaTJfc2V0X2FsdGAgcmVtYWlucyB0aGUgY2VudHJhbCBmdW5jdGlvbi4KCk5vdywgbGV0JiMzOTtzIG5haWwgZG93biB0aGUgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMuIExldCYjMzk7cyBzZWUuLi4gYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBHb29kLiBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIHRoZSAqb25seSogcmVxdWlyZWQgb3B0aW9uLiBBaCwgeWVzLCBpdCBzZWxlY3RzIGBVU0JfRl9NSURJMmAsIHdoaWNoIGlzIHdoYXQgSSBleHBlY3QuCgpMZXQmIzM5O3MgdHJhY2UgdGhlc2UgZGVwZW5kZW5jaWVzLiBPa2F5LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYC4gQW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBib3RoIGBVU0JfQ09ORklHRlNgIGFuZCBgU05EYC4gU28sIG15IGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzIGFyZTogYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSB2ZXJpZnkgdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIGluZGVlZCB0aGUgY29ycmVjdCBLY29uZmlnIHN5bWJvbC4gWWVwLCBgY29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyYC4gUGVyZmVjdC4KCk9rYXksIEkmIzM5O20gY29uZmlkZW50IGluIHRoaXMgYW5hbHlzaXMuIEkmIzM5O2xsIHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLCBhbG9uZyB3aXRoIHRoZSBpZGVudGlmaWVkIGZvY3VzIHN5bWJvbHMgYW5kIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9HQURHRVQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTJiMzNDssCiAgICAmIzM0O1NORCYjMzQ7LAogICAgJiMzNDtVU0JfQ09ORklHRlNfRl9NSURJMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2ZfbWlkaTJfc2V0X2FsdCYjMzQ7LAogICAgJiMzNDtmX21pZGkyX2JpbmQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl91bmJpbmQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb2YgVVNCIGVuZHBvaW50IHJlcXVlc3RzIGluIHRoZSBNSURJIDIuMCBnYWRnZXQgZnVuY3Rpb24gZHJpdmVyLiBJdCBjaGFuZ2VzIHRoZSBsb29wIGJvdW5kIGZyb20gYG1pZGkyLVx1MDAzZWluZm8ubnVtX3JlcXNgIHRvIGB1c2JfZXAtXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfR0FER0VUJiMzNDssCiAgICAmIzM0O1VTQl9DT05GSUdGUyYjMzQ7LAogICAgJiMzNDtTTkQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTX0ZfTUlESTImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmX21pZGkyX3NldF9hbHQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl9iaW5kJiMzNDssCiAgICAmIzM0O2ZfbWlkaTJfdW5iaW5kJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciBtZW1vcnkgbGVha3MuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIFVTQiBnYWRnZXQgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJuYXRlIHNldHRpbmcgY2hhbmdlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ0OjM5LjY4MTA1Nzg2N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDE0Nzg2Nzc3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfR0FER0VUXCIsXG4gICAgXCJVU0JfQ09ORklHRlNcIixcbiAgICBcIlNORFwiLFxuICAgIFwiVVNCX0NPTkZJR0ZTX0ZfTUlESTJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJmX21pZGkyX3NldF9hbHRcIixcbiAgICBcImZfbWlkaTJfYmluZFwiLFxuICAgIFwiZl9taWRpMl91bmJpbmRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgYWxsb2NhdGlvbiBhbmQgZnJlZWluZyBvZiBVU0IgZW5kcG9pbnQgcmVxdWVzdHMgaW4gdGhlIE1JREkgMi4wIGdhZGdldCBmdW5jdGlvbiBkcml2ZXIuIEl0IGNoYW5nZXMgdGhlIGxvb3AgYm91bmQgZnJvbSBgbWlkaTItXFx1MDAzZWluZm8ubnVtX3JlcXNgIHRvIGB1c2JfZXAtXFx1MDAzZW51bV9yZXFzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciBtZW1vcnkgbGVha3MuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIFVTQiBnYWRnZXQgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJuYXRlIHNldHRpbmcgY2hhbmdlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDQ6MzkuNjgxMDY0MDk2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTc0NjAwMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzNGViOTYyZDI1YzhhNTljNDFlMzRlMDVjMzJmZDliNTBiNGUwMzdlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDI5IDA5OjQ0OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXFxuaW5kZXggMTlmZGFjMDI0MzQzOS4uNWU1NGNmOTk0NzA3YSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXFxuKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xcbkBAIC0xMTQ1LDcgKzExNDUsNyBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcXG4gXFx0aWYgKCF1c2JfZXAtXFx1MDAzZXJlcXMpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG1pZGkyLVxcdTAwM2VpbmZvLm51bV9yZXFzOyBpKyspIHtcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHVzYl9lcC1cXHUwMDNlbnVtX3JlcXM7IGkrKykge1xcbiBcXHRcXHRpZiAodXNiX2VwLVxcdTAwM2VyZXFzW2ldLnJlcSlcXG4gXFx0XFx0XFx0Y29udGludWU7XFxuIFxcdFxcdHVzYl9lcC1cXHUwMDNlcmVxc1tpXS5yZXEgPSBhbGxvY19lcF9yZXEodXNiX2VwLVxcdTAwM2V1c2JfZXAsXFxuQEAgLTExNjAsMTAgKzExNjAsOSBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcXG4gLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi9cXG4gc3RhdGljIHZvaWQgZl9taWRpMl9mcmVlX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuIHtcXG4tXFx0c3RydWN0IGZfbWlkaTIgKm1pZGkyID0gdXNiX2VwLVxcdTAwM2VjYXJkO1xcbiBcXHRpbnQgaTtcXG4gXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBtaWRpMi1cXHUwMDNlaW5mby5udW1fcmVxczsgaSsrKSB7XFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyB1c2JfZXAtXFx1MDAzZW51bV9yZXFzOyBpKyspIHtcXG4gXFx0XFx0aWYgKCF1c2JfZXAtXFx1MDAzZXJlcXNbaV0ucmVxKVxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFx0XFx0ZnJlZV9lcF9yZXEodXNiX2VwLVxcdTAwM2V1c2JfZXAsIHVzYl9lcC1cXHUwMDNlcmVxc1tpXS5yZXEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0MC4xNzkzNTg3MTRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNjk2NDk1NDIxOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX0dBREdFVFwiLFxuICAgIFwiVVNCX0NPTkZJR0ZTXCIsXG4gICAgXCJTTkRcIixcbiAgICBcIlVTQl9DT05GSUdGU19GX01JREkyXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZl9taWRpMl9zZXRfYWx0XCIsXG4gICAgXCJmX21pZGkyX2JpbmRcIixcbiAgICBcImZfbWlkaTJfdW5iaW5kXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb2YgVVNCIGVuZHBvaW50IHJlcXVlc3RzIGluIHRoZSBNSURJIDIuMCBnYWRnZXQgZnVuY3Rpb24gZHJpdmVyLiBJdCBjaGFuZ2VzIHRoZSBsb29wIGJvdW5kIGZyb20gYG1pZGkyLVxcdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVxcdTAwM2VudW1fcmVxc2AsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb3IgbWVtb3J5IGxlYWtzLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSBVU0IgZ2FkZ2V0IGNvbmZpZ3VyYXRpb24gYW5kIGFsdGVybmF0ZSBzZXR0aW5nIGNoYW5nZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM0ZWI5NjJkMjVjOGE1OWM0MWUzNGUwNWMzMmZkOWI1MGI0ZTAzN2VcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyOSAwOTo0NDozOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXG5pbmRleCAxOWZkYWMwMjQzNDM5Li41ZTU0Y2Y5OTQ3MDdhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuQEAgLTExNDUsNyArMTE0NSw3IEBAIHN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuIFx0aWYgKCF1c2JfZXAtXHUwMDNlcmVxcylcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzOyBpKyspIHtcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHVzYl9lcC1cdTAwM2VudW1fcmVxczsgaSsrKSB7XG4gXHRcdGlmICh1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpXG4gXHRcdFx0Y29udGludWU7XG4gXHRcdHVzYl9lcC1cdTAwM2VyZXFzW2ldLnJlcSA9IGFsbG9jX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLFxuQEAgLTExNjAsMTAgKzExNjAsOSBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcbiAvKiBGcmVlIGFsbG9jYXRlZCByZXF1ZXN0cyAqL1xuIHN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuIHtcbi1cdHN0cnVjdCBmX21pZGkyICptaWRpMiA9IHVzYl9lcC1cdTAwM2VjYXJkO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzOyBpKyspIHtcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHVzYl9lcC1cdTAwM2VudW1fcmVxczsgaSsrKSB7XG4gXHRcdGlmICghdXNiX2VwLVx1MDAzZXJlcXNbaV0ucmVxKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFx0XHRmcmVlX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLCB1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDQ6NDAuMTc5MzYwMjE0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1NjU5MTQ5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1JREkyIFVTQiBHYWRnZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQncyBwb2tpbmcgYXJvdW5kIGluIGBkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jYC4gU2VlbXMgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCBmaXgsIGJ1dCBsZXQncyBkaXZlIGluLiBJdCdzIGNoYW5naW5nIGBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCBpbiB0aGUgYWxsb2NhdGlvbiBhbmQgZnJlZWluZyBvZiBlbmRwb2ludCByZXF1ZXN0IHJlc291cmNlcywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AgZnVuY3Rpb25zLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBpcyBhIGdvb2QgY2F0Y2ggLSBsb29rcyBsaWtlIHdlJ3JlIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb3IgYW4gaXNzdWUgd2l0aCBpbmNvcnJlY3QgbG9vcCBib3VuZHMsIHdoaWNoLCBpbiB0aGUgVVNCIHdvcmxkLCBjYW4gYmUgbmFzdHkuXG5cbkdpdmVuIHRoZSBuYXR1cmUgb2YgVVNCIGRldmljZSBkcml2ZXJzIGFuZCB0aGUgc2Vuc2l0aXZpdHkgb2YgZW5kcG9pbnQgbWFuYWdlbWVudCwgSSB3YW50IHRvIGNvbmZpcm0gdGhlIGNvbnRleHQgb2YgdGhlc2UgY2hhbmdlcy4gSSdsbCBuZWVkIHRvIG9wZW4gdXAgYGZfbWlkaTIuY2AgYW5kIHRha2UgYSBsb29rIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkLiBJIG5lZWQgdG8ga25vdyB0aGUgcG90ZW50aWFsIGltcGFjdCBvbiBkaWZmZXJlbnQgTUlESTIgVVNCIGdhZGdldCBpbXBsZW1lbnRhdGlvbnMuIEFyZSB0aGVyZSBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb3Igb3RoZXIgc2V0dGluZ3MgdGhhdCBhZmZlY3QgdGhlIG51bWJlciBvciBiZWhhdmlvciBvZiB0aGVzZSByZXF1ZXN0cz8gSSdsbCBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hhbmdlIGlzIGluZGVlZCBmdW5jdGlvbmFsbHkgY29ycmVjdCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIGFjcm9zcyB2YXJpb3VzIE1JREkyIGNvbmZpZ3VyYXRpb25zIGFuZCBoYXJkd2FyZSBzZXR1cHMuIFRpbWUgdG8gZ2V0IHRvIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMjQsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0NS41MzU5NTQ1NTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc4NzE4NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9hbGxvY19lcF9yZXFzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTIyPXN0YXRpYyB2b2lkIGZfbWlkaTJfZHJvcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTM3LS8qIEFsbG9jYXRlIHJlcXVlc3RzIGZvciB0aGUgZ2l2ZW4gRVAgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExMzg6c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTM5LXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI0OT1zdGF0aWMgaW50IGZfbWlkaTJfc3RhcnRfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNjEtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjYyOlxcdGVyciA9IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhlcF9pbik7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjYzLVxcdGlmIChlcnIpXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjY0LVxcdFxcdHJldHVybiBlcnI7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjY1OlxcdGVyciA9IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhlcF9vdXQpO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI2Ni1cXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0NS41ODM4MzI5ODNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODgxMjAzMjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCB3ZSBoYXZlIGhlcmUuXG5cbioqQW5hbHl6aW5nIE1JREkgRW5kcG9pbnQgUmVxdWVzdCBBbGxvY2F0aW9uKipcblxuUmlnaHQsIHNvIHRoZXNlIGZ1bmN0aW9ucywgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AsIGFyZSBzdGF0aWMuIFRoYXQncyBhIGtleSBkZXRhaWwgdG8gc3RhcnQgd2l0aC4gTm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZWlyIHNjb3BlIGFuZCB1c2FnZS4gSSBzaG91bGQgY2hlY2sgd2hlcmUgdGhleSdyZSBhY3R1YWxseSBiZWluZyBpbnZva2VkLiBGaXJzdCwgbGV0J3MgbG9vayBhdCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYC4gQWgsIGl0J3MgY2FsbGVkIHdpdGhpbiBgZl9taWRpMl9zdGFydF9lcHNgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCdzIGxpa2VseSBpbnZvbHZlZCBpbiBpbml0aWFsaXppbmcgb3Igc2V0dGluZyB1cCB0aGUgZW5kcG9pbnQgcmVxdWVzdHMuIE9rYXksIG5vdyB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBmbG93LCBJIG5lZWQgdG8ga25vdyB0aGUgY2FsbGluZyBjb250ZXh0IGZvciBgZl9taWRpMl9zdGFydF9lcHNgLiBXaGVyZSBpcyAqaXQqIGNhbGxlZD8gVGhhdCB3aWxsIGdpdmUgbWUgdGhlIGJyb2FkZXIgcGljdHVyZSBvZiBob3cgdGhlIGVuZHBvaW50IHJlcXVlc3RzIGFyZSBtYW5hZ2VkLiBLbm93aW5nIHRoaXMgY29udGV4dCB3aWxsIGFsbG93IG1lIHRvIHVuZGVyc3RhbmQgdGhlIHB1cnBvc2Ugb2YgdGhvc2UgZW5kcG9pbnQgcmVxdWVzdHMgYW5kIHBvdGVudGlhbCBpc3N1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxOTAsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0OS40NjUwMzg4ODlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY4MDc3OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9zdGFydF9lcHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyMzk9c3RhdGljIHZvaWQgZl9taWRpMl9zdG9wX2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ4LS8qIHN0YXJ0L3F1ZXVlIGJvdGggSU4gYW5kIE9VVCBFUHMgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDk6c3RhdGljIGludCBmX21pZGkyX3N0YXJ0X2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI1MC1cXHRcXHRcXHQgICAgIHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfb3V0LFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjc0PXN0YXRpYyBpbnQgZl9taWRpMl9zZXRfYWx0KHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuLCB1bnNpZ25lZCBpbnQgaW50ZixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwNC1cXHRpZiAob3BfbW9kZSA9PSBNSURJX09QX01PREVfTUlESTEpXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzA1OlxcdFxcdHJldHVybiBmX21pZGkyX3N0YXJ0X2VwcyhcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkxX2VwX2luLFxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwNi1cXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9vdXQsIGZuKTtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMxMS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMTI6XFx0XFx0XFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXFx1MDAyNmVwLVxcdTAwM2VlcF9pbiwgXFx1MDAyNmVwLVxcdTAwM2VlcF9vdXQsIGZuKTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMTMtXFx0XFx0XFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDQ6NDkuNTExODUyMTY4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY0NjU1NDM5MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OlxuXG4qKkRpZ2dpbmcgaW50byBmX21pZGkyX3NldF9hbHQqKlxuXG5IbW0sIHNvIGBmX21pZGkyX3NldF9hbHRgLi4uaXMgdGhhdCBmdW5jdGlvbiBkZWNsYXJlZCBhcyBhIG5vbi1zdGF0aWMgZnVuY3Rpb24/IE9yIGlzIGl0IGJlaW5nIHVzZWQgYXMgYSBjYWxsYmFjaywgd2hpY2ggd291bGQgbWFrZSBtZSB0aGluayBkaWZmZXJlbnRseSBhYm91dCBob3cgaXRzIGludGVybmFsIHN0YXRlIGlzIGhhbmRsZWQ/IEl0J3MgYSBrZXkgZnVuY3Rpb24gaW4gdGhpcyBtaWRpIGltcGxlbWVudGF0aW9uLCB3aGljaCBtZWFucyBJIHNob3VsZCBub3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgY29kZSBkZWZpbml0aW9uIG9mIGBmX21pZGkyX3NldF9hbHRgIHRvIGNsYXJpZnkgaXRzIHNjb3BlIGFuZCBwdXJwb3NlLCBhbmQgcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGNvZGluZyBzdHlsZS4gS25vd2luZyB0aGF0IHdpbGwgaW1wYWN0IHRoZSBhc3N1bXB0aW9ucyBJIGNhbiBtYWtlIGFib3V0IGl0cyByb2xlIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk3NiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjI1Ljk3NzM5ODg3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjE3MTY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmX21pZGkyX3NldF9hbHRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyNDk9c3RhdGljIGludCBmX21pZGkyX3N0YXJ0X2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjczLS8qIGdhZGdldCBmdW5jdGlvbiBzZXRfYWx0IGNhbGxiYWNrICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjc0OnN0YXRpYyBpbnQgZl9taWRpMl9zZXRfYWx0KHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuLCB1bnNpZ25lZCBpbnQgaW50ZixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNzUtXFx0XFx0XFx0ICAgdW5zaWduZWQgaW50IGFsdClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNC1cXHRtaWRpMi1cXHUwMDNlZnVuYy5nZXRfYWx0ID0gZl9taWRpMl9nZXRfYWx0O1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzNTpcXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNi1cXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjI2LjQxMzU3Nzc0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY2NzcwODY5NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGVjb2RpbmcgdGhlIENhbGxiYWNrKipcblxuQWxyaWdodCwgYSBjYWxsYmFjaywgKnRoYXQqIGZhbWlsaWFyIHBocmFzZS4gTXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgaW50byB0cmlhZ2UgbW9kZS4gVGhlIGZpcnN0IHF1ZXN0aW9uIGlzIGFsd2F5czogd2hlcmUgZG9lcyB0aGlzIGNhbGxiYWNrICpsaXZlKj8gQW5kIHRoZSBpbW1lZGlhdGUgbmVlZCBub3cgaXMgdG8gbG9jYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBgZl9taWRpMi5jYC4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgdGhlIHBhcmFtZXRlcnMgaXQncyBleHBlY3RpbmcsIGFuZCBob3cgaXQncyBpbnRlZ3JhdGVkIHdpdGggdGhlIGxhcmdlciBzeXN0ZW0uIFRoaXMgaXNuJ3QganVzdCBhYm91dCBmaW5kaW5nIHRoZSBmaWxlOyBpdCdzIGFib3V0IHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRyb2wgZmxvdyBhbmQgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIGNhbGxiYWNrIHdpdGhpbiB0aGUgYGZfbWlkaTIuY2AgZnJhbWV3b3JrLiBUaW1lIHRvIGRpZyBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU1MSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjQzLjA5MDY2ODQ2NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUzODI1NDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfbWlkaTJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZT01MD1vYmotJChDT05GSUdfVVNCX0ZfTUlESSlcXHQrPSB1c2JfZl9taWRpLm9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vTWFrZWZpbGU6NTE6dXNiX2ZfbWlkaTIteVxcdFxcdFxcdDo9IGZfbWlkaTIub1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZTo1MjpvYmotJChDT05GSUdfVVNCX0ZfTUlESTIpXFx0Kz0gdXNiX2ZfbWlkaTIub1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZS01My11c2JfZl9oaWQteVxcdFxcdFxcdDo9IGZfaGlkLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDU6NDMuNDQ0NTAyNDg1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NTYwOTk5ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGl0IGlzOlxuXG4qKkV4YW1pbmluZyBNSURJMiBVU0IgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBzeXN0ZW0gaXMgY29uZmlndXJlZCB0byB1c2UgYENPTkZJR19VU0JfRl9NSURJMmAuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gS2NvbmZpZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGNvbmZpZyBvcHRpb24gKmFjdHVhbGx5KiBtZWFucyBpbiB0aGUgY29udGV4dCBvZiB0aGUgbGFyZ2VyIHN5c3RlbS4gSSdtIGdvaW5nIHRvIGhlYWQgc3RyYWlnaHQgb3ZlciB0byBLY29uZmlnIHRvIHNlZSB3aGF0J3MgZGVmaW5lZCBmb3IgYENPTkZJR19VU0JfRl9NSURJMmAuIFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgZm9yIHRoZSByZXN0IG9mIHRoZSBVU0Igc3RhY2sgYW5kLCBieSBleHRlbnNpb24sIGF1ZGlvIHByb2Nlc3Npbmc/IEkgbmVlZCB0aGUgZnVsbCBwaWN0dXJlIHRvIHVuZGVyc3RhbmQgdGhpcyBzaW5nbGUgc2V0dGluZy4gVGhpcyBpcyBnb2luZyB0byBiZSBpbnRlcmVzdGluZy4gTGV0J3Mgc2VlIHdoYXQgS2NvbmZpZyBoYXMgdG8gc2F5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTA0LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDU6NDcuMjAwNjA1OTI0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzQ4MjQ1Njg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfRl9NSURJMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnPTIwOT1jb25maWcgVVNCX0ZfTUlESVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjExLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjIxMjpjb25maWcgVVNCX0ZfTUlESTJcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMTMtXFx0dHJpc3RhdGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDU6NDguOTQ4ODU3NDIyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMjY3MjgzOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBhIFRyaXN0YXRlJ3MgQ29udHJvbCoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgdHJpc3RhdGUgZGV2aWNlLCBsaWtlbHkgaW4gYSBsYXJnZXIgY2lyY3VpdC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiVGhpcyBpc24ndCBqdXN0IGZsb2F0aW5nIGhlcmUgZm9yIGZ1bi5cIiBJdCdzIGJlaW5nICpjb250cm9sbGVkKi4gVGhlIGtleSBxdWVzdGlvbiBub3cgYmVjb21lcywgd2hhdCdzIGRyaXZpbmcgdGhhdCBjb250cm9sPyBUaGUgdHJpc3RhdGUgZnVuY3Rpb25hbGl0eSBzdHJvbmdseSBzdWdnZXN0cyBpdCdzIGJlaW5nIHVzZWQgdG8gbXVsdGlwbGV4IHNvbWV0aGluZyDigJMgbWF5YmUgZGF0YSwgbWF5YmUgYW4gYWRkcmVzcyBidXMsIHBvdGVudGlhbGx5IGVuYWJsaW5nIG9yIGRpc2FibGluZyBhIGZ1bmN0aW9uYWwgYmxvY2sgd2l0aGluIGEgbGFyZ2VyIHN5c3RlbS4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgdGhlIHNpZ25hbCB0aGF0J3MgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoaXMuIEkgd2FudCB0byBzZWUgd2hhdCB0aGF0IHNpZ25hbCBpcyBjb25uZWN0ZWQgdG8gYW5kIHdoYXQgbG9naWMgZ2F0ZXMgb3Igb3RoZXIgY29tcG9uZW50cyBhcmUgaW52b2x2ZWQgaW4gaXRzIGdlbmVyYXRpb24uIFVuZGVyc3RhbmRpbmcgdGhlIHNlbGVjdGlvbiBsb2dpYyBpcyBnb2luZyB0byBiZSBjcnVjaWFsIHRvIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgY2lyY3VpdCBiZWhhdmlvci4gVGltZSB0byBkZWx2ZSBpbnRvIHRoZSBzY2hlbWF0aWMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyMTEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NTo1Mi4yNzU1ODgwN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA3Njc5MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IFVTQl9GX01JREkyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc9NDQ1PWNvbmZpZyBVU0JfQ09ORklHRlNfRl9NSURJMlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDQ5LVxcdHNlbGVjdCBVU0JfTElCQ09NUE9TSVRFXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDUwOlxcdHNlbGVjdCBVU0JfRl9NSURJMlxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ1MS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjUyLjMyNjM1OTk5OVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI3MDAzMzEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGVidWdnaW5nIHRoZSBNSURJIDIuMCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgc28gSSBuZWVkIHRvIGVuYWJsZSBNSURJIDIuMCBzdXBwb3J0IHZpYSBjb25maWdmcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBuZWVkIHRvIGVuc3VyZSB0aGUgY29ycmVjdCBLY29uZmlnIG9wdGlvbiBpcyBzZWxlY3RlZCwgYW5kIEknbSBwcmV0dHkgc3VyZSBpdCdzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuIE5vdyBJIHdhbnQgdG8gcXVpY2tseSB2ZXJpZnkgdGhpcyBpbiB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgcmVsZXZhbnQgVVNCIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBpZiBJJ3ZlIGdvdCB0aGUgd3Jvbmcgb3B0aW9uLiBMZXQgbWUganVtcCBpbnRvIHRoZSByZWxldmFudCBLY29uZmlnIGFuZCBkb3VibGUgY2hlY2sgdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIHByb3Blcmx5IGRlZmluZWQgYW5kIGhhcyB0aGUgZGVwZW5kZW5jaWVzIEkgZXhwZWN0LCBhbmQgYWxzbyBtYWtlIHN1cmUgaXQncyBleHBvc2VkIHByb3Blcmx5LiBJdCdzIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJ1dCBhIHZpdGFsIHN0ZXAgdG8gYXZvaWQgYW55IHJhYmJpdCBob2xlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU0OSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU2LjM1MzM2Njg2MloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ1NzQxMTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfQ09ORklHRlNfRl9NSURJMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnPTQzMT1jb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDQ0LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ0NTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDYtXFx0Ym9vbCBcXFwiTUlESSAyLjAgZnVuY3Rpb25cXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU2Ljc5OTExMjM2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NzgwMDAwMDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyBNSURJIDIuMCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYFVTQl9DT05GSUdGU19GX01JREkyYCB0aGluZy4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBmaWd1cmUgb3V0IHdoYXQgcHJlLXJlcXVpc2l0ZXMgb3IgZGVwZW5kZW5jaWVzIGl0IGhhcy4gV2hhdCBvdGhlciBtb2R1bGVzIG9yIGZsYWdzIGFyZSBuZWNlc3NhcnkgdG8gZW5hYmxlIHRoaXMgTUlESSAyLjAgc3VwcG9ydCB3aXRoaW4gdGhlIENvbmZpZ0ZTIGZyYW1ld29yaz8gSXMgaXQgZGVwZW5kZW50IG9uIGNvcmUgVVNCIGRldmljZSBmdW5jdGlvbmFsaXR5LCBjZXJ0YWluIGhhcmR3YXJlIGRyaXZlcnMsIHNwZWNpZmljIENvbmZpZ0ZTIHN1YnN5c3RlbXMsIG9yIHBhcnRpY3VsYXIga2VybmVsIHZlcnNpb25zPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVpbGRpbmcgYmxvY2tzIGJlZm9yZSBJIGNhbiBldmVuIGJlZ2luIHRvIGZ1bGx5IGdyYXNwIGhvdyB0aGlzIHRoaW5nIGZ1bmN0aW9ucyBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBNeSBpbW1lZGlhdGUgdGFzayBpcyB0byBpZGVudGlmeSBhbmQgZGVsaW5lYXRlIHRob3NlIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTkwMywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU5Ljc3NzExNDg2OFoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTMzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0NDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA0NDA6XFx0XFx0ICBpbnB1dCBhbmQgb25lIE1JREkgb3V0cHV0LiBUaGVzZSBNSURJIGphY2tzIGFwcGVhciBhc1xcbiA0NDE6XFx0XFx0ICBhIHNvdW5kIFxcXCJjYXJkXFxcIiBpbiB0aGUgQUxTQSBzb3VuZCBzeXN0ZW0uIE90aGVyIE1JRElcXG4gNDQyOlxcdFxcdCAgY29ubmVjdGlvbnMgY2FuIHRoZW4gYmUgbWFkZSBvbiB0aGUgZ2FkZ2V0IHN5c3RlbSwgdXNpbmdcXG4gNDQzOlxcdFxcdCAgQUxTQSdzIGFjb25uZWN0IHV0aWxpdHkgZXRjLlxcbiA0NDQ6XFx0XFxuIDQ0NTpcXHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcXG4gNDQ2OlxcdFxcdGJvb2wgXFxcIk1JREkgMi4wIGZ1bmN0aW9uXFxcIlxcbiA0NDc6XFx0XFx0ZGVwZW5kcyBvbiBVU0JfQ09ORklHRlNcXG4gNDQ4OlxcdFxcdGRlcGVuZHMgb24gU05EXFxuIDQ0OTpcXHRcXHRzZWxlY3QgVVNCX0xJQkNPTVBPU0lURVxcbiA0NTA6XFx0XFx0c2VsZWN0IFVTQl9GX01JREkyXFxuIDQ1MTpcXHRcXHRoZWxwXFxuIDQ1MjpcXHRcXHQgIFRoZSBNSURJIDIuMCBmdW5jdGlvbiBkcml2ZXIgcHJvdmlkZXMgdGhlIGdlbmVyaWMgZW11bGF0ZWRcXG4gNDUzOlxcdFxcdCAgVVNCIE1JREkgMi4wIGludGVyZmFjZSwgbG9vcGVkIGJhY2sgdG8gQUxTQSBVTVAgcmF3bWlkaVxcbiA0NTQ6XFx0XFx0ICBkZXZpY2Ugb24gdGhlIGdhZGdldCBob3N0LiBJdCBzdXBwb3J0cyBVTVAgMS4xIHNwZWMgYW5kXFxuIDQ1NTpcXHRcXHQgIHJlc3BvbmRzIFVNUCBTdHJlYW0gbWVzc2FnZXMgZm9yIFVNUCBFbmRwb2ludCBhbmQgRnVuY3Rpb25cXG4gNDU2OlxcdFxcdCAgQmxvY2sgaW5mb3JtYXRpb24gLyBjb25maWd1cmF0aW9uLlxcbiA0NTc6XFx0XFxuIDQ1ODpcXHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfSElEXFxuIDQ1OTpcXHRcXHRib29sIFxcXCJISUQgZnVuY3Rpb25cXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU5Ljc3NzE4ODIwOFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTc3MDE5MzAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkV4YW1pbmluZyB0aGUgVVNCIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqXG5cbk9rYXksIHNvIHRoZSBzZXR1cCBoZXJlIGhpbmdlcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQsIGJ5IGV4dGVuc2lvbiwgYFNORGAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXQgcGxheS4gTGV0IG1lIHNlZS4uLiBgVVNCX0dBREdFVGAgc2VlbXMgbGlrZSBhbm90aGVyIGtleSBwbGF5ZXIgaW4gdGhpcy4gQWgsIHJpZ2h0LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYCwgc28gdGhhdCdzIGEgZGlyZWN0IHJlbGF0aW9uc2hpcCB0byBjb25zaWRlci4gTm93LCB0byBnZXQgYSBjbGVhciBwaWN0dXJlLCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGBVU0JfQ09ORklHRlNgIGNvbmZpZ3VyYXRpb24gaXRzZWxmIHdpdGhpbiBLY29uZmlnLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBwaWVjZXMgZml0IHRvZ2V0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDMyLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjowMy4zNTQyMDk1OTFaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NDc1NzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfQ09ORklHRlNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZz0yMjM9Y29uZmlnIFVTQl9GX1RDTVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjI3LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjIyODpjb25maWcgVVNCX0NPTkZJR0ZTXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjI5LVxcdHRyaXN0YXRlIFxcXCJVU0IgR2FkZ2V0IGZ1bmN0aW9ucyBjb25maWd1cmFibGUgdGhyb3VnaCBjb25maWdmc1xcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTIzOS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNDA6Y29uZmlnIFVTQl9DT05GSUdGU19TRVJJQUxcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNDEtXFx0Ym9vbCBcXFwiR2VuZXJpYyBzZXJpYWwgYnVsayBpbi9vdXRcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNDgtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjQ5OmNvbmZpZyBVU0JfQ09ORklHRlNfQUNNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjUwLVxcdGJvb2wgXFxcIkFic3RyYWN0IENvbnRyb2wgTW9kZWwgKENEQyBBQ00pXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjU4LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjI1OTpjb25maWcgVVNCX0NPTkZJR0ZTX09CRVhcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiT2JqZWN0IEV4Y2hhbmdlIE1vZGVsIChDREMgT0JFWClcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNjgtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjY5OmNvbmZpZyBVU0JfQ09ORklHRlNfTkNNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjcwLVxcdGJvb2wgXFxcIk5ldHdvcmsgQ29udHJvbCBNb2RlbCAoQ0RDIE5DTSlcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yODAtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjgxOmNvbmZpZyBVU0JfQ09ORklHRlNfRUNNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjgyLVxcdGJvb2wgXFxcIkV0aGVybmV0IENvbnRyb2wgTW9kZWwgKENEQyBFQ00pXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjkyLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjI5Mzpjb25maWcgVVNCX0NPTkZJR0ZTX0VDTV9TVUJTRVRcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXRoZXJuZXQgQ29udHJvbCBNb2RlbCAoQ0RDIEVDTSkgc3Vic2V0XFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzAyLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMwMzpjb25maWcgVVNCX0NPTkZJR0ZTX1JORElTXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzA0LVxcdGJvb2wgXFxcIlJORElTXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzE4LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMxOTpjb25maWcgVVNCX0NPTkZJR0ZTX0VFTVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTMyMC1cXHRib29sIFxcXCJFdGhlcm5ldCBFbXVsYXRpb24gTW9kZWwgKEVFTSlcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zMzQtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzM1OmNvbmZpZyBVU0JfQ09ORklHRlNfUEhPTkVUXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzM2LVxcdGJvb2wgXFxcIlBob25ldCBwcm90b2NvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM0NC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozNDU6Y29uZmlnIFVTQl9DT05GSUdGU19NQVNTX1NUT1JBR0VcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zNDYtXFx0Ym9vbCBcXFwiTWFzcyBzdG9yYWdlXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzU1LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjM1Njpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTEJfU1NcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zNTctXFx0Ym9vbCBcXFwiTG9vcGJhY2sgYW5kIHNvdXJjZXNpbmsgZnVuY3Rpb24gKGZvciB0ZXN0aW5nKVxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM2OC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozNjk6Y29uZmlnIFVTQl9DT05GSUdGU19GX0ZTXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzcwLVxcdGJvb2wgXFxcIkZ1bmN0aW9uIGZpbGVzeXN0ZW0gKEZ1bmN0aW9uRlMpXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzgwLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjM4MTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVUFDMVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM4Mi1cXHRib29sIFxcXCJBdWRpbyBDbGFzcyAxLjBcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zOTgtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6Mzk5OmNvbmZpZyBVU0JfQ09ORklHRlNfRl9VQUMxX0xFR0FDWVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQwMC1cXHRib29sIFxcXCJBdWRpbyBDbGFzcyAxLjAgKGxlZ2FjeSBpbXBsZW1lbnRhdGlvbilcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MTEtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDEyOmNvbmZpZyBVU0JfQ09ORklHRlNfRl9VQUMyXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDEzLVxcdGJvb2wgXFxcIkF1ZGlvIENsYXNzIDIuMFxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQzMC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0MzE6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JRElcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MzItXFx0Ym9vbCBcXFwiTUlESSBmdW5jdGlvblxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ0NC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0NDU6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDQ2LVxcdGJvb2wgXFxcIk1JREkgMi4wIGZ1bmN0aW9uXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDU3LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ1ODpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfSElEXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDU5LVxcdGJvb2wgXFxcIkhJRCBmdW5jdGlvblxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ2Ny1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0Njg6Y29uZmlnIFVTQl9DT05GSUdGU19GX1VWQ1xcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ2OS1cXHRib29sIFxcXCJVU0IgV2ViY2FtIGZ1bmN0aW9uXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDgwLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ4MTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfUFJJTlRFUlxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ4Mi1cXHRib29sIFxcXCJQcmludGVyIGZ1bmN0aW9uXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDk0LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ5NTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVENNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDk2LVxcdGJvb2wgXFxcIlVTQiBHYWRnZXQgVGFyZ2V0IEZhYnJpY1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MDMuNDAyNjg4OThaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5MTk3NjY0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpczpcblxuKipDaGVja2luZyBgVVNCX0NPTkZJR0ZTYCBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBgVVNCX0NPTkZJR0ZTYC4gSSBrbm93IGl0J3MgYSBrZXkgcGllY2Ugb2YgdGhlIHB1enpsZSBmb3IgYSBsb3Qgb2YgVVNCLXJlbGF0ZWQgY29uZmlndXJhdGlvbnMsIGVzcGVjaWFsbHkgZm9yIG1vcmUgYWR2YW5jZWQgb3IgY3VzdG9tIHNldHVwcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIHNjb3BlLiBJIG5lZWQgdG8gZXN0YWJsaXNoIGEgYmFzZSBsYXllciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkZXBlbmRlbmNpZXMgb2YgYFVTQl9DT05GSUdGU2AuIFdoYXQgb3RoZXIga2VybmVsIG1vZHVsZXMgb3IgY29tcG9uZW50cyBkb2VzIGl0IGxlYW4gb24/IEFyZSB0aGVyZSBzcGVjaWZpYyBkcml2ZXJzIGl0IHJlcXVpcmVzPyBEb2VzIGl0IHJlbHkgb24gcGFydGljdWxhciBoYXJkd2FyZSBmZWF0dXJlcz9cblxuSSBuZWVkIHRvIHF1aWNrbHkgYXNzZXNzIHRoaXMsIGJlY2F1c2UgdW5kZXJzdGFuZGluZyB0aGUgdW5kZXJseWluZyBkZXBlbmRlbmNpZXMgaXMgYWJzb2x1dGVseSBjcml0aWNhbCBiZWZvcmUgSSBjYW4gZXZlbiBjb25zaWRlciBtb2RpZnlpbmcgaXQsIGNvbmZpZ3VyaW5nIGl0LCBvciB0cm91Ymxlc2hvb3RpbmcgYW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCBpdC4gS25vd2luZyB0aGUgZGVwZW5kZW5jaWVzIGhlbHBzIG1lIHRvIHVuZGVyc3RhbmQgcG90ZW50aWFsIGZhaWx1cmUgcG9pbnRzIGFuZCB0byBwbGFuIGEgc3lzdGVtIGNvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS4gVGhpcyB3aWxsIGhlbHAgdG8gc3RyZWFtbGluZSBhbnkgZnVydGhlciBzdGVwcy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODEzOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjA2LjQ5NDY2ODg0NVoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMjgsXG4gIFwiTGluZUNvdW50XCI6IDE1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMjg6XFx0Y29uZmlnIFVTQl9DT05GSUdGU1xcbiAyMjk6XFx0XFx0dHJpc3RhdGUgXFxcIlVTQiBHYWRnZXQgZnVuY3Rpb25zIGNvbmZpZ3VyYWJsZSB0aHJvdWdoIGNvbmZpZ2ZzXFxcIlxcbiAyMzA6XFx0XFx0c2VsZWN0IFVTQl9MSUJDT01QT1NJVEVcXG4gMjMxOlxcdFxcdGhlbHBcXG4gMjMyOlxcdFxcdCAgQSBMaW51eCBVU0IgXFxcImdhZGdldFxcXCIgY2FuIGJlIHNldCB1cCB0aHJvdWdoIGNvbmZpZ2ZzLlxcbiAyMzM6XFx0XFx0ICBJZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGUgVVNCIGZ1bmN0aW9ucyAod2hpY2ggZnJvbSB0aGUgaG9zdCdzXFxuIDIzNDpcXHRcXHQgIHBlcnNwZWN0aXZlIGFyZSBzZWVuIGFzIGludGVyZmFjZXMpIGFuZCBjb25maWd1cmF0aW9ucyBhcmVcXG4gMjM1OlxcdFxcdCAgc3BlY2lmaWVkIHNpbXBseSBieSBjcmVhdGluZyBhcHByb3ByaWF0ZSBkaXJlY3RvcmllcyBpbiBjb25maWdmcy5cXG4gMjM2OlxcdFxcdCAgQXNzb2NpYXRpbmcgZnVuY3Rpb25zIHdpdGggY29uZmlndXJhdGlvbnMgaXMgZG9uZSBieSBjcmVhdGluZ1xcbiAyMzc6XFx0XFx0ICBhcHByb3ByaWF0ZSBzeW1ib2xpYyBsaW5rcy5cXG4gMjM4OlxcdFxcdCAgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIERvY3VtZW50YXRpb24vdXNiL2dhZGdldF9jb25maWdmcy5yc3QuXFxuIDIzOTpcXHRcXG4gMjQwOlxcdGNvbmZpZyBVU0JfQ09ORklHRlNfU0VSSUFMXFxuIDI0MTpcXHRcXHRib29sIFxcXCJHZW5lcmljIHNlcmlhbCBidWxrIGluL291dFxcXCJcXG4gMjQyOlxcdFxcdGRlcGVuZHMgb24gVVNCX0NPTkZJR0ZTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjA2LjQ5NDc2Mzk1NVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDUxMzg4ODcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIFVTQiBHYWRnZXQgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5IbW0sIHRoaXMgbG9va3MgZmFtaWxpYXIsIGJ1dCBpdCdzIGEgYml0IG9kZC4gSSBkb24ndCBzZWUgYW55IGRpcmVjdCBkZXBlbmRlbmN5IG9uIGBVU0JfR0FER0VUYCBpbiB0aGlzIHBhcnRpY3VsYXIgY29kZSBzbmlwcGV0LiBIb3dldmVyLCB0aGUgY29udGV4dCBmZWVscyAqdmVyeSogcmVsYXRlZCB0byBpdCwgZG9lc24ndCBpdD8gSXQncyBhbG1vc3QgY2VydGFpbmx5IG5lc3RlZCB3aXRoaW4gdGhlIGBtZW51Y29uZmlnIFVTQl9HQURHRVRgIHN0cnVjdHVyZSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgZXF1YWxseSBzcGVjaWZpYyB3aXRoaW4gdGhlIGJ1aWxkIHN5c3RlbS4gSeKAmW0gdGhpbmtpbmcgdGhlcmUgbWlnaHQgYmUgc29tZSBpbXBsaWNpdCBsaW5raW5nIG9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGdvaW5nIG9uLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGFuZCB0byBxdWlja2x5IGdyYXNwIHRoZSBzdXJyb3VuZGluZyBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcywgbGV0J3MganVzdCBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgYmVzdCBhcHByb2FjaCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnYCBmaWxlIGF0IHRoZSB2ZXJ5IHRvcC4gVGhhdCdzIHVzdWFsbHkgdGhlIGF1dGhvcml0YXRpdmUgZGVjbGFyYXRpb24gb2YgdGhlIG1vZHVsZSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgd2lkZXIgVVNCIGdhZGdldCBzdWJzeXN0ZW0gYW5kIGFsbCBvZiBpdHMgZGVwZW5kZW5jaWVzLiBUaGF0IGZpbGUgaXMgZ29pbmcgdG8gbWFrZSBpdCBjcnlzdGFsIGNsZWFyIGV4YWN0bHkgd2hhdCdzIGdvaW5nIG9uIHdpdGggYWxsIHRoZXNlIG9wdGlvbnMgYW5kIGNvbmRpdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg2MzEsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjEwLjU0NjE1NTcwNloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzQyNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFVTQiBHYWRnZXQgc3VwcG9ydCBvbiBhIHN5c3RlbSBpbnZvbHZlc1xcbiAgIDQ6XFx0IyAgICAoYSkgYSBwZXJpcGhlcmFsIGNvbnRyb2xsZXIsIGFuZFxcbiAgIDU6XFx0IyAgICAoYikgdGhlIGdhZGdldCBkcml2ZXIgdXNpbmcgaXQuXFxuICAgNjpcXHQjXFxuICAgNzpcXHQjIE5PVEU6ICBHYWRnZXQgc3VwcG9ydCAqKiBET0VTIE5PVCAqKiBkZXBlbmQgb24gaG9zdC1zaWRlIENPTkZJR19VU0IgISFcXG4gICA4OlxcdCNcXG4gICA5OlxcdCMgIC0gSG9zdCBzeXN0ZW1zIChsaWtlIFBDcykgbmVlZCBDT05GSUdfVVNCICh3aXRoIFxcXCJBXFxcIiBqYWNrcykuXFxuICAxMDpcXHQjICAtIFBlcmlwaGVyYWxzIChsaWtlIFBEQXMpIG5lZWQgQ09ORklHX1VTQl9HQURHRVQgKHdpdGggXFxcIkJcXFwiIGphY2tzKS5cXG4gIDExOlxcdCMgIC0gU29tZSBzeXN0ZW1zIGhhdmUgYm90aCBraW5kcyBvZiBjb250cm9sbGVycy5cXG4gIDEyOlxcdCNcXG4gIDEzOlxcdCMgV2l0aCBoZWxwIGZyb20gYSBzcGVjaWFsIHRyYW5zY2VpdmVyIGFuZCBhIFxcXCJNaW5pLUFCXFxcIiBqYWNrLCBzeXN0ZW1zIHdpdGhcXG4gIDE0OlxcdCMgYm90aCBraW5kcyBvZiBjb250cm9sbGVyIGNhbiBhbHNvIHN1cHBvcnQgXFxcIlVTQiBPbi10aGUtR29cXFwiIChDT05GSUdfVVNCX09URykuXFxuICAxNTpcXHQjXFxuICAxNjpcXHRcXG4gIDE3OlxcdG1lbnVjb25maWcgVVNCX0dBREdFVFxcbiAgMTg6XFx0XFx0dHJpc3RhdGUgXFxcIlVTQiBHYWRnZXQgU3VwcG9ydFxcXCJcXG4gIDE5OlxcdFxcdHNlbGVjdCBVU0JfQ09NTU9OXFxuICAyMDpcXHRcXHRzZWxlY3QgTkxTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjEwLjU0NjQ5MjEwNloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODc1NjM2NzM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gUXVlc3QqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIHRvIGdldCB0aGlzIHNldHVwIHdvcmtpbmcsIEknbSB0aGlua2luZyBJJ2xsIG5lZWQgYFVTQl9HQURHRVRgLCBkZWZpbml0ZWx5LCBhbG9uZyB3aXRoIGBVU0JfQ09ORklHRlNgIGZvciB0aGUgZmxleGliaWxpdHkuIEFuZCBzaW5jZSB3ZSdyZSBkZWFsaW5nIHdpdGggYXVkaW8sIGBTTkRgIHNlZW1zIGNydWNpYWwuIEFoLCBhbmQgaGVyZSB3ZSBhcmUsIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgdGhlIG1hZ2ljIGJ1dHRvbiBmb3IgdGhlIE1JREkgMi4wIGNvbmZpZ3VyYXRpb24uIE5vdywgYSBsaXR0bGUgbWVudGFsIGNoZWNrOiBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIHNlZW1zIHRvIGJyaW5nIGluIGBVU0JfRl9NSURJMmAuIEdvb2QuIEJ1dCBiZWZvcmUgSSBnZXQgdG9vIGZhciBkb3duIHRoaXMgcm9hZCwgSSBzaG91bGQganVzdCBxdWlja2x5IGRvdWJsZSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHN1cHBvcnRpbmcgbW9kdWxlcyBvciBkZXBlbmRlbmNpZXMgdGhhdCBgVVNCX0ZfTUlESTJgIHB1bGxzIGluLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gY29uZmlndXJpbmcgYSBzeXN0ZW0hIEkgbmVlZCBhIGNsZWFuIGFuZCBzdGFibGUgYnVpbGQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkyNTUsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjE0LjQyMjEzMjQ4MloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTc3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMDA6XFx0XFx0dHJpc3RhdGVcXG4gMjAxOlxcdFxcbiAyMDI6XFx0Y29uZmlnIFVTQl9GX1VBQzJcXG4gMjAzOlxcdFxcdHRyaXN0YXRlXFxuIDIwNDpcXHRcXG4gMjA1OlxcdGNvbmZpZyBVU0JfRl9VVkNcXG4gMjA2OlxcdFxcdHRyaXN0YXRlXFxuIDIwNzpcXHRcXHRzZWxlY3QgVVZDX0NPTU1PTlxcbiAyMDg6XFx0XFxuIDIwOTpcXHRjb25maWcgVVNCX0ZfTUlESVxcbiAyMTA6XFx0XFx0dHJpc3RhdGVcXG4gMjExOlxcdFxcbiAyMTI6XFx0Y29uZmlnIFVTQl9GX01JREkyXFxuIDIxMzpcXHRcXHR0cmlzdGF0ZVxcbiAyMTQ6XFx0XFx0c2VsZWN0IFNORF9VTVBcXG4gMjE1OlxcdFxcdHNlbGVjdCBTTkRfVU1QX0xFR0FDWV9SQVdNSURJXFxuIDIxNjpcXHRcXG4gMjE3OlxcdGNvbmZpZyBVU0JfRl9ISURcXG4gMjE4OlxcdFxcdHRyaXN0YXRlXFxuIDIxOTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MTQuNDIyMjI1NjIyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NzQ5NjgxNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgS2NvbmZpZyBBdWRpdCBUcmFpbCoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgYFVTQl9GX01JREkyYCB0cmlnZ2VyaW5nIGJvdGggYFNORF9VTVBgIGFuZCBgU05EX1VNUF9MRUdBQ1lfUkFXTUlESWAuIFJpZ2h0LCB0aGF0IG1ha2VzIHNlbnNlIGZvciB0aGUgbW9kZXJuIE1JREkgMi4wIHN0dWZmLCBhbmQgdGhlIGxlZ2FjeSByYXcgTUlESSBzdXBwb3J0LiBCdXQgaGFuZyBvbi4uLiBpdCBhbHNvIHNlZW1zIGxpa2UgYFNORGAgaXMgYSBkZXBlbmRlbmN5IGhlcmUsIHdoaWNoIGlzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBMZXQgbWUgcXVpY2tseSBqdW1wIG92ZXIgdG8gYHNvdW5kL0tjb25maWdgIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgYXVkaW8gY29yZSBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYFNORGAgaXMgaW5kZWVkIGJlaW5nIGJyb3VnaHQgaW4gYnkgdGhpcyBzZWxlY3Rpb24sIGFuZCB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgZnVsbHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3NzAsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjE3LjM5NzE5NzM4WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY5MTc1OTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNORFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJzb3VuZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1Mjg0IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5zb3VuZC9LY29uZmlnPTQwPXNvdXJjZSBcXFwic291bmQvb3NzL2RtYXNvdW5kL0tjb25maWdcXFwiXFxuc291bmQvS2NvbmZpZy00MS1cXG5zb3VuZC9LY29uZmlnOjQyOm1lbnVjb25maWcgU05EXFxuc291bmQvS2NvbmZpZy00My1cXHR0cmlzdGF0ZSBcXFwiQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlXFxcIlxcbi0tXFxuc291bmQvYW9hL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9hb2EvS2NvbmZpZzoyOm1lbnVjb25maWcgU05EX0FPQVxcbnNvdW5kL2FvYS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkFwcGxlIE9uYm9hcmQgQXVkaW8gZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnOjI6Y29uZmlnIFNORF9BT0FfT05ZWFxcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJzdXBwb3J0IE9ueXggY2hpcFxcXCJcXG4tLVxcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0xMC1cXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWc6MTE6Y29uZmlnIFNORF9BT0FfVEFTXFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnLTEyLVxcdHRyaXN0YXRlIFxcXCJzdXBwb3J0IFRBUyBjaGlwc1xcXCJcXG4tLVxcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0xOS1cXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWc6MjA6Y29uZmlnIFNORF9BT0FfVE9PTklFXFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJzdXBwb3J0IFRvb25pZSBjaGlwXFxcIlxcbi0tXFxuc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbnNvdW5kL2FvYS9mYWJyaWNzL0tjb25maWc6Mjpjb25maWcgU05EX0FPQV9GQUJSSUNfTEFZT1VUXFxuc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJsYXlvdXQtaWQgZmFicmljXFxcIlxcbi0tXFxuc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZzoyOmNvbmZpZyBTTkRfQU9BX1NPVU5EQlVTXFxuc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiQXBwbGUgU291bmRidXMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEwLVxcbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnOjExOmNvbmZpZyBTTkRfQU9BX1NPVU5EQlVTX0kyU1xcbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEyLVxcdHRyaXN0YXRlIFxcXCJJMlMgYnVzIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9hcm0vS2NvbmZpZy0zLVxcbnNvdW5kL2FybS9LY29uZmlnOjQ6bWVudWNvbmZpZyBTTkRfQVJNXFxuc291bmQvYXJtL0tjb25maWctNS1cXHRib29sIFxcXCJBUk0gc291bmQgZGV2aWNlc1xcXCJcXG4tLVxcbnNvdW5kL2FybS9LY29uZmlnPTEzPWlmIFNORF9BUk1cXG5zb3VuZC9hcm0vS2NvbmZpZy0xNC1cXG5zb3VuZC9hcm0vS2NvbmZpZzoxNTpjb25maWcgU05EX0FSTUFBQ0lcXG5zb3VuZC9hcm0vS2NvbmZpZy0xNi1cXHR0cmlzdGF0ZSBcXFwiQVJNIFByaW1lQ2VsbCBQTDA0MSBBQyBMaW5rIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9hdG1lbC9LY29uZmlnPTI9bWVudSBcXFwiQXRtZWwgZGV2aWNlcyAoQVQ5MSlcXFwiXFxuLS1cXG5zb3VuZC9hdG1lbC9LY29uZmlnLTQtXFxuc291bmQvYXRtZWwvS2NvbmZpZzo1OmNvbmZpZyBTTkRfQVRNRUxfQUM5N0NcXG5zb3VuZC9hdG1lbC9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIkF0bWVsIEFDOTcgQ29udHJvbGxlciAoQUM5N0MpIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yLSMgQUxTQSBzb3VuZGNhcmQtY29uZmlndXJhdGlvblxcbnNvdW5kL2NvcmUvS2NvbmZpZzozOmNvbmZpZyBTTkRfVElNRVJcXG5zb3VuZC9jb3JlL0tjb25maWctNC1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvS2NvbmZpZy01LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBTTkRfUENNXFxuc291bmQvY29yZS9LY29uZmlnLTctXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy05LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxMDpjb25maWcgU05EX1BDTV9FTERcXG5zb3VuZC9jb3JlL0tjb25maWctMTEtXFx0Ym9vbFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMi1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTM6Y29uZmlnIFNORF9QQ01fSUVDOTU4XFxuc291bmQvY29yZS9LY29uZmlnLTE0LVxcdGJvb2xcXG5zb3VuZC9jb3JlL0tjb25maWctMTUtXFxuc291bmQvY29yZS9LY29uZmlnOjE2OmNvbmZpZyBTTkRfRE1BRU5HSU5FX1BDTVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTk6Y29uZmlnIFNORF9IV0RFUFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMS1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjI6Y29uZmlnIFNORF9TRVFfREVWSUNFXFxuc291bmQvY29yZS9LY29uZmlnLTIzLVxcdHRyaXN0YXRlXFxuc291bmQvY29yZS9LY29uZmlnLTI0LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoyNTpjb25maWcgU05EX1JBV01JRElcXG5zb3VuZC9jb3JlL0tjb25maWctMjYtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yOC1cXG5zb3VuZC9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIFNORF9VTVBcXG5zb3VuZC9jb3JlL0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0zMi1cXG5zb3VuZC9jb3JlL0tjb25maWc6MzM6Y29uZmlnIFNORF9VTVBfTEVHQUNZX1JBV01JRElcXG5zb3VuZC9jb3JlL0tjb25maWctMzQtXFx0Ym9vbCBcXFwiTGVnYWN5IHJhdyBNSURJIHN1cHBvcnQgZm9yIFVNUCBzdHJlYW1zXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTQxLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo0Mjpjb25maWcgU05EX0NPUkVfVEVTVFxcbnNvdW5kL2NvcmUvS2NvbmZpZy00My1cXHR0cmlzdGF0ZSBcXFwiU291bmQgY29yZSBLVW5pdCB0ZXN0XFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTU4LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo1OTpjb25maWcgU05EX0NPTVBSRVNTX09GRkxPQURcXG5zb3VuZC9jb3JlL0tjb25maWctNjAtXFx0dHJpc3RhdGVcXG5zb3VuZC9jb3JlL0tjb25maWctNjEtXFxuc291bmQvY29yZS9LY29uZmlnOjYyOmNvbmZpZyBTTkRfQ09NUFJFU1NfQUNDRUxcXG5zb3VuZC9jb3JlL0tjb25maWctNjMtXFx0Ym9vbFxcbnNvdW5kL2NvcmUvS2NvbmZpZy02NC1cXG5zb3VuZC9jb3JlL0tjb25maWc6NjU6Y29uZmlnIFNORF9KQUNLXFxuc291bmQvY29yZS9LY29uZmlnLTY2LVxcdGJvb2xcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy02OC0jIGVuYWJsZSBpbnB1dCBkZXZpY2Ugc3VwcG9ydCBpbiBqYWNrIGxheWVyXFxuc291bmQvY29yZS9LY29uZmlnOjY5OmNvbmZpZyBTTkRfSkFDS19JTlBVVF9ERVZcXG5zb3VuZC9jb3JlL0tjb25maWctNzAtXFx0Ym9vbFxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTczLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo3NDpjb25maWcgU05EX09TU0VNVUxcXG5zb3VuZC9jb3JlL0tjb25maWctNzUtXFx0Ym9vbCBcXFwiRW5hYmxlIE9TUyBFbXVsYXRpb25cXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctNzktXFxuc291bmQvY29yZS9LY29uZmlnOjgwOmNvbmZpZyBTTkRfTUlYRVJfT1NTXFxuc291bmQvY29yZS9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJPU1MgTWl4ZXIgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTkxLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo5Mjpjb25maWcgU05EX1BDTV9PU1NcXG5zb3VuZC9jb3JlL0tjb25maWctOTMtXFx0dHJpc3RhdGUgXFxcIk9TUyBQQ00gKGRpZ2l0YWwgYXVkaW8pIEFQSVxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMDQtXFxuc291bmQvY29yZS9LY29uZmlnOjEwNTpjb25maWcgU05EX1BDTV9PU1NfUExVR0lOU1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMDYtXFx0Ym9vbCBcXFwiT1NTIFBDTSAoZGlnaXRhbCBhdWRpbykgQVBJIC0gSW5jbHVkZSBwbHVnaW4gc3lzdGVtXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTExMy1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTE0OmNvbmZpZyBTTkRfUENNX1RJTUVSXFxuc291bmQvY29yZS9LY29uZmlnLTExNS1cXHRib29sIFxcXCJQQ00gdGltZXIgaW50ZXJmYWNlXFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMjQtXFxuc291bmQvY29yZS9LY29uZmlnOjEyNTpjb25maWcgU05EX0hSVElNRVJcXG5zb3VuZC9jb3JlL0tjb25maWctMTI2LVxcdHRyaXN0YXRlIFxcXCJIUi10aW1lciBiYWNrZW5kIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTM2LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIFNORF9EWU5BTUlDX01JTk9SU1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMzgtXFx0Ym9vbCBcXFwiRHluYW1pYyBkZXZpY2UgZmlsZSBtaW5vciBudW1iZXJzXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTE0Ni1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTQ3OmNvbmZpZyBTTkRfTUFYX0NBUkRTXFxuc291bmQvY29yZS9LY29uZmlnLTE0OC1cXHRpbnQgXFxcIk1heCBudW1iZXIgb2Ygc291bmQgY2FyZHNcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTU1LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxNTY6Y29uZmlnIFNORF9TVVBQT1JUX09MRF9BUElcXG5zb3VuZC9jb3JlL0tjb25maWctMTU3LVxcdGJvb2wgXFxcIlN1cHBvcnQgb2xkIEFMU0EgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTE2Mi1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTYzOmNvbmZpZyBTTkRfUFJPQ19GU1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiU291bmQgUHJvYyBGUyBTdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNzEtXFxuc291bmQvY29yZS9LY29uZmlnOjE3Mjpjb25maWcgU05EX1ZFUkJPU0VfUFJPQ0ZTXFxuc291bmQvY29yZS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJWZXJib3NlIHByb2NmcyBjb250ZW50c1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xODAtXFxuc291bmQvY29yZS9LY29uZmlnOjE4MTpjb25maWcgU05EX0NUTF9GQVNUX0xPT0tVUFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xODItXFx0Ym9vbCBcXFwiRmFzdCBsb29rdXAgb2YgY29udHJvbCBlbGVtZW50c1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTkwLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTE6Y29uZmlnIFNORF9ERUJVR1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOTItXFx0Ym9vbCBcXFwiRGVidWdcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTk1LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTY6Y29uZmlnIFNORF9ERUJVR19WRVJCT1NFXFxuc291bmQvY29yZS9LY29uZmlnLTE5Ny1cXHRib29sIFxcXCJNb3JlIHZlcmJvc2UgZGVidWdcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMjA0LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoyMDU6Y29uZmlnIFNORF9QQ01fWFJVTl9ERUJVR1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMDYtXFx0Ym9vbCBcXFwiRW5hYmxlIFBDTSByaW5nIGJ1ZmZlciBvdmVycnVuL3VuZGVycnVuIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMTQtXFxuc291bmQvY29yZS9LY29uZmlnOjIxNTpjb25maWcgU05EX0NUTF9JTlBVVF9WQUxJREFUSU9OXFxuc291bmQvY29yZS9LY29uZmlnLTIxNi1cXHRib29sIFxcXCJWYWxpZGF0ZSBpbnB1dCBkYXRhIHRvIGNvbnRyb2wgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTIyNC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjI1OmNvbmZpZyBTTkRfQ1RMX0RFQlVHXFxuc291bmQvY29yZS9LY29uZmlnLTIyNi1cXHRib29sIFxcXCJFbmFibGUgZGVidWdnaW5nIGZlYXR1cmUgZm9yIGNvbnRyb2wgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTIzOC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjM5OmNvbmZpZyBTTkRfSkFDS19JTkpFQ1RJT05fREVCVUdcXG5zb3VuZC9jb3JlL0tjb25maWctMjQwLVxcdGJvb2wgXFxcIlNvdW5kIGphY2sgaW5qZWN0aW9uIGludGVyZmFjZSB2aWEgZGVidWdmc1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNDctXFxuc291bmQvY29yZS9LY29uZmlnOjI0ODpjb25maWcgU05EX1VUSU1FUlxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIHVzZXJzcGFjZS1jb250cm9sbGVkIHZpcnR1YWwgdGltZXJzXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTI1Ny1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjU4OmNvbmZpZyBTTkRfVk1BU1RFUlxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNTktXFx0Ym9vbFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjAtXFxuc291bmQvY29yZS9LY29uZmlnOjI2MTpjb25maWcgU05EX0RNQV9TR0JVRlxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjItXFx0ZGVmX2Jvb2wgeVxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTI2NC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjY1OmNvbmZpZyBTTkRfQ1RMX0xFRFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjYtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjI6Y29uZmlnIFNORF9TRVFVRU5DRVJcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNlcXVlbmNlciBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZz0xND1pZiBTTkRfU0VRVUVOQ0VSXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy0xNS1cXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjE2OmNvbmZpZyBTTkRfU0VRX0RVTU1ZXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZSBcXFwiU2VxdWVuY2VyIGR1bW15IGNsaWVudFxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMjgtXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzoyOTpjb25maWcgU05EX1NFUVVFTkNFUl9PU1NcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTMwLVxcdHRyaXN0YXRlIFxcXCJPU1MgU2VxdWVuY2VyIEFQSVxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNDEtXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo0Mjpjb25maWcgU05EX1NFUV9IUlRJTUVSX0RFRkFVTFRcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTQzLVxcdGJvb2wgXFxcIlVzZSBIUi10aW1lciBhcyBkZWZhdWx0IHNlcXVlbmNlciB0aW1lclxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNDktXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1MDpjb25maWcgU05EX1NFUV9NSURJX0VWRU5UXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01MS1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNTItXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1Mzpjb25maWcgU05EX1NFUV9NSURJXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01NC1cXHRkZWZfdHJpc3RhdGUgU05EX1JBV01JRElcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNTYtXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1Nzpjb25maWcgU05EX1NFUV9NSURJX0VNVUxcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTU4LVxcdHRyaXN0YXRlXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01OS1cXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjYwOmNvbmZpZyBTTkRfU0VRX1ZJUk1JRElcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy02Mi1cXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjYzOmNvbmZpZyBTTkRfU0VRX1VNUFxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNjQtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgVU1QIGV2ZW50c1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNzItXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo3Mzpjb25maWcgU05EX1NFUV9VTVBfQ0xJRU5UXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy03NC1cXHRkZWZfdHJpc3RhdGUgU05EX1VNUCBcXHUwMDI2XFx1MDAyNiBTTkRfU0VRX1VNUFxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuc291bmQvZHJpdmVycy9LY29uZmlnOjI6Y29uZmlnIFNORF9NUFU0MDFfVUFSVFxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctNS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6Njpjb25maWcgU05EX09QTDNfTElCXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTctXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTI6Y29uZmlnIFNORF9PUEw0X0xJQlxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE4LSMgc2VsZWN0IFNFUSBzdHVmZiB0byBtaW4oU05EX1NFUVVFTkNFUixTTkRfWFhYKVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxOTpjb25maWcgU05EX09QTDNfTElCX1NFUVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMC1cXHRkZWZfdHJpc3RhdGUgU05EX1NFUVVFTkNFUiBcXHUwMDI2XFx1MDAyNiBTTkRfT1BMM19MSUJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMy1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MjQ6Y29uZmlnIFNORF9PUEw0X0xJQl9TRVFcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjUtXFx0ZGVmX3RyaXN0YXRlIFNORF9TRVFVRU5DRVIgXFx1MDAyNlxcdTAwMjYgU05EX09QTDRfTElCXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjgtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjI5OmNvbmZpZyBTTkRfVlhfTElCXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTMwLVxcdHRyaXN0YXRlXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMzQtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjM1OmNvbmZpZyBTTkRfQUM5N19DT0RFQ1xcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0zNi1cXHR0cmlzdGF0ZVxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTQwLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo0MTptZW51Y29uZmlnIFNORF9EUklWRVJTXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIkdlbmVyaWMgc291bmQgZGV2aWNlc1xcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZz00Nz1pZiBTTkRfRFJJVkVSU1xcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy00OC1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6NDk6Y29uZmlnIFNORF9QQ1NQXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTUwLVxcdHRyaXN0YXRlIFxcXCJQQy1TcGVha2VyIHN1cHBvcnQgKFJFQUQgSEVMUCEpXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTc4LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo3OTpjb25maWcgU05EX0RVTU1ZXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTgwLVxcdHRyaXN0YXRlIFxcXCJEdW1teSAoL2Rldi9udWxsKSBzb3VuZGNhcmRcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctOTEtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjkyOmNvbmZpZyBTTkRfQUxPT1BcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctOTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgbG9vcGJhY2sgZHJpdmVyIChQQ00pXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTExMS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTEyOmNvbmZpZyBTTkRfUENNVEVTVFxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgUENNIHRlc3QgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTEyOC1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTI5OmNvbmZpZyBTTkRfVklSTUlESVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMzAtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgTUlESSBzb3VuZGNhcmRcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTQ1LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxNDY6Y29uZmlnIFNORF9NVFBBVlxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIk1PVFUgTWlkaVRpbWVQaWVjZSBBViBtdWx0aXBvcnQgTUlESVxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNTctXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjE1ODpjb25maWcgU05EX01UUzY0XFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE1OS1cXHR0cmlzdGF0ZSBcXFwiRVNJIE1pZGl0ZXJtaW5hbCA0MTQwIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNzAtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjE3MTpjb25maWcgU05EX1NFUklBTF9VMTY1NTBcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTcyLVxcdHRyaXN0YXRlIFxcXCJVQVJUMTY1NTAgc2VyaWFsIE1JREkgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE4Ni1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTg3OmNvbmZpZyBTTkRfU0VSSUFMX0dFTkVSSUNcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTg4LVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIHNlcmlhbCBNSURJIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMDQtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjIwNTpjb25maWcgU05EX01QVTQwMVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMDYtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgTVBVLTQwMSBVQVJUIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMTUtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjIxNjpjb25maWcgU05EX1BPUlRNQU4yWDRcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjE3LVxcdHRyaXN0YXRlIFxcXCJQb3J0bWFuIDJ4NCBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjI2LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyMjc6Y29uZmlnIFNORF9BQzk3X1BPV0VSX1NBVkVcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjI4LVxcdGJvb2wgXFxcIkFDOTcgUG93ZXItU2F2aW5nIE1vZGVcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjU1LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyNTY6Y29uZmlnIFNORF9BQzk3X1BPV0VSX1NBVkVfREVGQVVMVFxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yNTctXFx0aW50IFxcXCJEZWZhdWx0IHRpbWUtb3V0IGZvciBBQzk3IHBvd2VyLXNhdmUgbW9kZVxcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjI6bWVudWNvbmZpZyBTTkRfRklSRVdJUkVcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTMtXFx0Ym9vbCBcXFwiRmlyZVdpcmUgc291bmQgZGV2aWNlc1xcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc9OT1pZiBTTkRfRklSRVdJUkUgXFx1MDAyNlxcdTAwMjYgRklSRVdJUkVcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEwLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTE6Y29uZmlnIFNORF9GSVJFV0lSRV9MSUJcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEyLVxcdHRyaXN0YXRlXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE1LVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTY6Y29uZmlnIFNORF9ESUNFXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZSBcXFwiRElDRS1iYXNlZCBEQUNzIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTQzLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6NDQ6Y29uZmlnIFNORF9PWEZXXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy00NS1cXHR0cmlzdGF0ZSBcXFwiT3hmb3JkIFNlbWljb25kdWN0b3IgRlc5NzAvOTcxIGNoaXBzZXQgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNjYtXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzo2Nzpjb25maWcgU05EX0lTSUdIVFxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNjgtXFx0dHJpc3RhdGUgXFxcIkFwcGxlIGlTaWdodCBtaWNyb3Bob25lXFxcIlxcbi0tXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy03Ni1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjc3OmNvbmZpZyBTTkRfRklSRVdPUktTXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy03OC1cXHR0cmlzdGF0ZSBcXFwiRWNobyBGaXJld29ya3MgYm9hcmQgbW9kdWxlIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTkyLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6OTM6Y29uZmlnIFNORF9CRUJPQlxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctOTQtXFx0dHJpc3RhdGUgXFxcIkJyaWRnZUNvIERNMTAwMC9ETTExMDAvRE0xNTAwIHdpdGggQmVCb0IgZmlybXdhcmVcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEzNC1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjEzNTpjb25maWcgU05EX0ZJUkVXSVJFX0RJR0kwMFhcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEzNi1cXHR0cmlzdGF0ZSBcXFwiRGlnaWRlc2lnbiBEaWdpIDAwMi8wMDMgZmFtaWx5IHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE0OS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE1MDpjb25maWcgU05EX0ZJUkVXSVJFX1RBU0NBTVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMTUxLVxcdHRyaXN0YXRlIFxcXCJUQVNDQU0gRmlyZVdpcmUgc2VyaWVzIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE2Mi1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE2Mzpjb25maWcgU05EX0ZJUkVXSVJFX01PVFVcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE2NC1cXHR0cmlzdGF0ZSBcXFwiTWFyayBvZiB0aGUgdW5pY29ybiBGaXJlV2lyZSBzZXJpZXMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMTg5LVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTkwOmNvbmZpZyBTTkRfRklSRUZBQ0VcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE5MS1cXHR0cmlzdGF0ZSBcXFwiUk1FIEZpcmVmYWNlIHNlcmllcyBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnPTI9aWYgU05EX0hEQVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzo0OmNvbmZpZyBTTkRfSERBX0dFTkVSSUNfTEVEU1xcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy01LSAgICAgICBib29sXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYtXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjc6Y29uZmlnIFNORF9IREFfQ09ERUNfQU5BTE9HXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTgtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIEFuYWxvZyBEZXZpY2VzIEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTQ9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTYtXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjE3OmNvbmZpZyBTTkRfSERBX0NPREVDX1NJR01BVEVMXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTE4LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBJRFQvU2lnbWF0ZWwgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0yNT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0yNy1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6Mjg6Y29uZmlnIFNORF9IREFfQ09ERUNfVklBXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTI5LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBWSUEgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0zNT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zNy1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6Mzg6Y29uZmlnIFNORF9IREFfQ09ERUNfQ09ORVhBTlRcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMzktXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIENvbmV4YW50IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9NDY9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNDgtXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjQ5OmNvbmZpZyBTTkRfSERBX0NPREVDX1NFTkFSWVRFQ0hcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNTAtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIFNlbmFyeXRlY2ggSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz01Nz1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy01OS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6NjA6Y29uZmlnIFNORF9IREFfQ09ERUNfQ0EwMTEwXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDcmVhdGl2ZSBDQTAxMTAtSUJHIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9Njc9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNjktXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjcwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDEzMlxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy03MS1cXHR0cmlzdGF0ZSBcXFwiQnVpbGQgQ3JlYXRpdmUgQ0EwMTMyIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9Nzc9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNzktXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjgwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDEzMl9EU1BcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctODEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBuZXcgRFNQIGNvZGUgZm9yIENBMDEzMiBjb2RlY1xcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy05Mi1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6OTM6Y29uZmlnIFNORF9IREFfQ09ERUNfQ01FRElBXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDLU1lZGlhIEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTAwPWNvbW1lbnQgXFxcIlNldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEwMi1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTAzOmNvbmZpZyBTTkRfSERBX0NPREVDX0NNOTgyNVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMDQtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIEMtTWVkaWEgQ005ODI1IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTEwPWNvbW1lbnQgXFxcIlNldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTExMi1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTEzOmNvbmZpZyBTTkRfSERBX0NPREVDX1NJMzA1NFxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMTQtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIFNpbGljb24gTGFicyAzMDU0IEhELW1vZGVtIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTE5PWNvbW1lbnQgXFxcIlNldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEyMS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTIyOmNvbmZpZyBTTkRfSERBX0dFTkVSSUNcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTIzLVxcdHRyaXN0YXRlIFxcXCJFbmFibGUgZ2VuZXJpYyBIRC1hdWRpbyBjb2RlYyBwYXJzZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTItXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19DSVJSVVNcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcIkNpcnJ1cyBMb2dpYyBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0xMj1pZiBTTkRfSERBX0NPREVDX0NJUlJVU1xcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMTMtXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzoxNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzQyMFhcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTE1LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDaXJydXMgTG9naWMgQ1M0MjB4IGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0yMT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMjMtXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzoyNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzQyMVhcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTI1LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDaXJydXMgTG9naWMgQ1M0MjF4IGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0zMT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMzMtXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzozNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzg0MDlcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTM1LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDaXJydXMgTG9naWMgSERBIGJyaWRnZSBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMi1cXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNC1cXHR0cmlzdGF0ZSBcXFwiSEQtYXVkaW8gSERNSSBjb2RlYyBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19IRE1JXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMTMtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6MTQ6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9HRU5FUklDXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTI1LVxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjI2OmNvbmZpZyBTTkRfSERBX0NPREVDX0hETUlfU0lNUExFXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIlNpbXBsZSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMzItXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6MzM6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9JTlRFTFxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTM0LVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNDAtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NDE6Y29uZmlnIFNORF9IREFfSU5URUxfSERNSV9TSUxFTlRfU1RSRUFNXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNDItXFx0Ym9vbCBcXFwiRW5hYmxlIFNpbGVudCBTdHJlYW0gYWx3YXlzIGZvciBIRE1JXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNTUtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NTY6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9BVElcXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy01Ny1cXHR0cmlzdGF0ZSBcXFwiQU1EL0FUSSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNjMtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NjQ6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9OVklESUFcXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy02NS1cXHR0cmlzdGF0ZSBcXFwiTnZpZGlhIEhETUkvRGlzcGxheVBvcnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy03MS1cXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzo3Mjpjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JX05WSURJQV9NQ1BcXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy03My1cXHR0cmlzdGF0ZSBcXFwiTGVnYWN5IE52aWRpYSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNzktXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6ODA6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9URUdSQVxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJOdmlkaWEgVGVncmEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTItXFxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWc6MzptZW51Y29uZmlnIFNORF9IREFfQ09ERUNfUkVBTFRFS1xcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnPTEyPWlmIFNORF9IREFfQ09ERUNfUkVBTFRFS1xcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTEzLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX1JFQUxURUtfTElCXFxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWctMTUtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTE5LVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjIwOmNvbmZpZyBTTkRfSERBX0NPREVDX0FMQzI2MFxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBSZWFsdGVrIEFMQzI2MCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTI3LVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjI4OmNvbmZpZyBTTkRfSERBX0NPREVDX0FMQzI2MlxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjoxNy45NzQxMjA0MjZaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODIxNjE0ODE4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFMU0EgYW5kIFVTQiBNSURJMiBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBwcmltYXJ5IGZvY3VzIGlzIHRoZSBBTFNBIGNvbmZpZ3VyYXRpb24sIHNwZWNpZmljYWxseSBgU05EYC4gSSBuZWVkIHRvIGVuc3VyZSBpdCdzIGVuYWJsZWQgc2luY2UgaXQgc2VlbXMgdG8gYmUgdGhlIGNvcmUgZGVwZW5kZW5jeSBoZXJlLiBPa2F5LCBgU05EYCBpcyB0cmlzdGF0ZSwgZ29vZC4gTm93LCBsb29raW5nIGF0IHRoZSBiaWdnZXIgcGljdHVyZSwgaXQncyBjbGVhciB3ZSdyZSBkZWFsaW5nIHdpdGggYSBjaGFpbiBvZiBkZXBlbmRlbmNpZXM6IGBTTkRgLCBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBhbmQgYFVTQl9DT05GSUdGU19GX01JREkyYC5cblxuYFVTQl9DT05GSUdGU19GX01JREkyYCBzZWVtcyBrZXksIGFzIGl0IHNlbGVjdHMgYFVTQl9GX01JREkyYC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0IHNlbGVjdGlvbiDigJMgWWVwLCBjb25maXJtZWQuIE5vdywgbGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgZGlyZWN0IGRlcGVuZGVuY2llcy4gQWgsIGBVU0JfRl9NSURJMmAgc2VsZWN0cyBgU05EX1VNUGAgYW5kIGBTTkRfVU1QX0xFR0FDWV9SQVdNSURJYC4gQnV0IHNpbmNlIGl0ICpzZWxlY3RzKiB0aGVtLCBpdCBtZWFucyB0aGV5IGRvbid0IGhhdmUgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkIGlmIGBVU0JfRl9NSURJMmAgaXMuXG5cbk9rYXksIGxldCBtZSByZXZpZXcgd2hhdCB3ZSBoYXZlLCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGRlcGVuZHMgb24gYFVTQl9DT05GSUdGU2AgYW5kIGBTTkRgLiBXaGljaCBtZWFucyB0byBoYXZlIGl0LCB3ZSBuZWVkOlxuXG4qICAgYFVTQl9HQURHRVRgXG4qICAgYFVTQl9DT05GSUdGU2BcbiogICBgU05EYFxuKiAgIGBVU0JfQ09ORklHRlNfRl9NSURJMmBcblxuVGhlIGltcG9ydGFudCBxdWVzdGlvbiBub3cgaXMsIGRvZXMgZW5hYmxpbmcgYFVTQl9DT05GSUdGU19GX01JREkyYCBjb21waWxlIHRoZSBgZl9taWRpMi5jYCBmaWxlPyBMb29raW5nIGF0IHRoZSBgTWFrZWZpbGVgIGluIHRoZSBnYWRnZXQgZnVuY3Rpb24gZGlyZWN0b3J5OiBgb2JqLSQoQ09ORklHX1VTQl9GX01JREkyKSArPSB1c2JfZl9taWRpMi5vYCBhbmQgYHVzYl9mX21pZGkyLXkgOj0gZl9taWRpMi5vYC4gVGhlIHZhcmlhYmxlIGlzLCBvZiBjb3Vyc2UsIGRlcml2ZWQgZnJvbSBgVVNCX0ZfTUlESTJgIHdoaWNoIGlzIHNlbGVjdGVkIGJ5IGBVU0JfQ09ORklHRlNfRl9NSURJMmAuIFNvIHllcywgc2V0dGluZyBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGRvZXMgZW5zdXJlIHRoZSBjb21waWxhdGlvbiBvZiBgZl9taWRpMi5jYC5cblxuTGV0J3Mgc2hpZnQgZm9jdXMgdG8gdGhlIGFjdHVhbCBjb2RlIG5vdyBhbmQgdW5kZXJzdGFuZCB3aGF0IHRoaXMgaXMgYWxsIGFib3V0LiBUaGlzIHBhdGNoIG1vZGlmaWVzIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIGFuZCBgZl9taWRpMl9mcmVlX2VwX3JlcXNgLiBUaGVzZSBhcmUgc3RhdGljIGZ1bmN0aW9ucywgc28gcHJvYmFibHkgaW50ZXJuYWwgdG8gdGhlIG1vZHVsZSwgYW5kIHRoZXkgYXJlIGNhbGxlZCBmcm9tIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gTGV0J3MgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AuIE9rYXksIHRoYXQncyB0aGUgbGlrZWx5IGNhbGwgY2hhaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4MDE2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjI2LjE5MDI3MjAxNloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUzOTgxMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9mcmVlX2VwX3JlcXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExMzg9c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTExNjAtLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExNjE6c3RhdGljIHZvaWQgZl9taWRpMl9mcmVlX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYyLXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIwMz1zdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDYtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjA3OlxcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKHVzYl9lcCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjA4LVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0My1cXHRmX21pZGkyX2Ryb3BfcmVxcyhlcF9vdXQpO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI0NDpcXHRmX21pZGkyX2ZyZWVfZXBfcmVxcyhlcF9pbik7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ1OlxcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKGVwX291dCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ2LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MjYuMjM1Njc0NjE1WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1MzMxMjc4MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBicmVha2Rvd24gb2YgdGhpcy5cblxuKipUcmFjaW5nIE1JREkgRW5kcG9pbnQgTWFuYWdlbWVudCoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IHRoZSBNSURJIGRyaXZlcidzIGVuZHBvaW50IChFUCkgbWFuYWdlbWVudCBmdW5jdGlvbnMuIFNwZWNpZmljYWxseSwgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYCBzZWVtcyB0byBiZSB0aGUgY3J1Y2lhbCBjbGVhbnVwIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGJvdGggYGZfbWlkaTJfZnJlZV9lcGAgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gIEkga25vdyB0aG9zZSBhcmUgdGhlIHR3byBwcmltYXJ5IHBhdGh3YXlzIHRvIGRlYWxsb2NhdGUgcmVzb3VyY2VzLiBPbiB0aGUgZmxpcCBzaWRlLCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBpcyBpdHMgY291bnRlcnBhcnQg4oCTIHRoZSBhbGxvY2F0aW9uIGZ1bmN0aW9uIOKAkyBhbmQgaXQncyBjYWxsZWQgZXhjbHVzaXZlbHkgZnJvbSBgZl9taWRpMl9zdGFydF9lcHNgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBHaXZlbiB0aGF0LCB0cmFjaW5nIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYCBzZWVtcyBsaWtlIHRoZSBiZXN0IGFwcHJvYWNoIHRvIHVuZGVyc3RhbmQgdGhlIHJlc291cmNlIGxpZmVjeWNsZSBmb3IgdGhlIGVuZHBvaW50cy4gVW5kZXJzdGFuZGluZyB0aGVzZSBmdW5jdGlvbnMgaW4gZGV0YWlsIHdpbGwgcmV2ZWFsIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgTUlESSBlbmRwb2ludCBhbGxvY2F0aW9uLCBkZWFsbG9jYXRpb24sIGFuZCBzdGF0ZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMga2V5LiBJJ2xsIGZvY3VzIG9uIHdoYXQgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgaW4gdGhlIHN0YXJ0IGZ1bmN0aW9uLCBhbmQgaG93IHRob3NlIHNhbWUgcmVzb3VyY2VzIGFyZSBmcmVlZCBpbiB0aGUgc3RvcCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk2MTUsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjozMS43Njg4MDQ5NzFaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1OTExOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfbWlkaTJfc3RhcnRfZXBzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0OC0vKiBzdGFydC9xdWV1ZSBib3RoIElOIGFuZCBPVVQgRVBzICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ5OnN0YXRpYyBpbnQgZl9taWRpMl9zdGFydF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNTAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dCxcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI3ND1zdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMDQtXFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkxKVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTMwNTpcXHRcXHRyZXR1cm4gZl9taWRpMl9zdGFydF9lcHMoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9pbixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMDYtXFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfb3V0LCBmbik7XFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMTEtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzEyOlxcdFxcdFxcdGVyciA9IGZfbWlkaTJfc3RhcnRfZXBzKFxcdTAwMjZlcC1cXHUwMDNlZXBfaW4sIFxcdTAwMjZlcC1cXHUwMDNlZXBfb3V0LCBmbik7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzEzLVxcdFxcdFxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjMxLjgxNDcyMzE5WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NzcxMjg3NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipFbmRwb2ludCBJbml0aWFsaXphdGlvbiBhbmQgVGVybWluYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyBgZl9taWRpMl9zZXRfYWx0YCBpcyB0aGUgZGVzaWduYXRlZCBzdGFydGluZyBwb2ludCBmb3IgYnJpbmdpbmcgdGhlIE1JREkgZW5kcG9pbnRzIG9ubGluZS4gVGhhdCdzIHRoZSBlbnRyeSBJJ2QgZXhwZWN0IHRvIHNlZS4gTm93LCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGxpZmVjeWNsZSwgaXQncyBuYXR1cmFsIHRvIHR1cm4gbXkgYXR0ZW50aW9uIHRvIHRoZSB0ZXJtaW5hdGlvbiBzaWRlIG9mIHRoaW5ncy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIHNodXRkb3duIHByb2Nlc3MgY29tcGxldGVseS4gTGV0J3MgZGVsdmUgaW50byBgZl9taWRpMl9zdG9wX2Vwc2AgYW5kIHRyYWNlIGl0cyBiZWhhdmlvci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBlbmRwb2ludHMgYXJlIGNvcnJlY3RseSBzaHV0IGRvd24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDMxLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MzUuNDkxODU1NjUxWiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTExOTg5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmX21pZGkyX3N0b3BfZXBzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjE2PXN0YXRpYyB2b2lkIGZfbWlkaTJfcXVldWVfb3V0X3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMzgtLyogc3RvcCBib3RoIElOIGFuZCBPVVQgRVBzICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjM5OnN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI3ND1zdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTQtXFx0aWYgKG9wX21vZGUgIT0gTUlESV9PUF9NT0RFX01JREkxKVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI5NTpcXHRcXHRmX21pZGkyX3N0b3BfZXBzKFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfaW4sIFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfb3V0KTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTYtXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTktXFx0XFx0XFx0ZXAgPSBcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkyX2Vwc1tpXTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMDA6XFx0XFx0XFx0Zl9taWRpMl9zdG9wX2VwcyhcXHUwMDI2ZXAtXFx1MDAzZWVwX2luLCBcXHUwMDI2ZXAtXFx1MDAzZWVwX291dCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzAxLVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MzUuNTM2OTg1MjU5WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5NzE0MjM3MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkFuYWx5emluZyBFbnRyeSBQb2ludHMgaW4gTUlESTIgQ29kZSoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgc2VlbXMgdG8gYmUgcm9vdGVkIGluIGBmX21pZGkyX3NldF9hbHRgIOKAkyB0aGF0J3MgdGhlIG1haW4gZW50cnkgcG9pbnQsIHRoZSBvbmUgdGhhdCBraWNrcyBldmVyeXRoaW5nIG9mZi4gTm93LCBiZWZvcmUgSSBwcm9jZWVkIHdpdGggYW55IGRlZXAgYW5hbHlzaXMsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSd2ZSBnb3QgYSBjb21wcmVoZW5zaXZlIHBpY3R1cmUgb2YgdGhlIGZ1bmN0aW9uIGNhbGxzLiBJIHNob3VsZCB0aG9yb3VnaGx5IGludmVzdGlnYXRlIGlmIHRoZXJlIGFyZSBvdGhlciBhY2Nlc3MgcG9pbnRzLiBJIHNob3VsZCBzZWUgaWYgb3RoZXIgZnVuY3Rpb25zIGNvdWxkIHBvdGVudGlhbGx5IGludGVyYWN0IHdpdGggYGZfbWlkaTJfZnJlZV9lcGAsIGFzIHRoZSBjb21wbGVtZW50YXJ5IGZ1bmN0aW9uYWxpdHkgdG8gYGZfbWlkaTJfc2V0X2FsdGAuIEtlZXBpbmcgYW4gZXhoYXVzdGl2ZSBtYXBwaW5nIG9mIGVudHJ5cG9pbnRzIHRvIHRoaXMgZnVuY3Rpb24gYWxsb3dzIG1lIHRvIGhhdmUgYmV0dGVyIGNvbnRyb2wgb24gdGhpcyBwYXJ0IG9mIHRoZSBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTA5MSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjM5LjUwODQxMjc4M1oiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ4MjkyNzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9mcmVlX2VwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTM4PXN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYwLS8qIEZyZWUgYWxsb2NhdGVkIHJlcXVlc3RzICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMTYxOnN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTE2Mi17XFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExNzQ9c3RhdGljIGludCBmX21pZGkyX2luaXRfZXAoc3RydWN0IGZfbWlkaTIgKm1pZGkyLCBzdHJ1Y3QgZl9taWRpMl9lcCAqZXAsXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDItLyogRnJlZSBFUCAqL1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIwMzpzdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjA0LXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIwNi1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyMDc6XFx0Zl9taWRpMl9mcmVlX2VwX3JlcXModXNiX2VwKTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDgtXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyMzk9c3RhdGljIHZvaWQgZl9taWRpMl9zdG9wX2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQzLVxcdGZfbWlkaTJfZHJvcF9yZXFzKGVwX291dCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ0OlxcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKGVwX2luKTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDU6XFx0Zl9taWRpMl9mcmVlX2VwX3JlcXMoZXBfb3V0KTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDYtfVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0yMDU3PXN0YXRpYyB2b2lkIGZfbWlkaTJfdW5iaW5kKHN0cnVjdCB1c2JfY29uZmlndXJhdGlvbiAqYywgc3RydWN0IHVzYl9mdW5jdGlvbiAqZilcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjA2My1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjIwNjQ6XFx0Zl9taWRpMl9mcmVlX2VwKFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfaW4pO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2NTpcXHRmX21pZGkyX2ZyZWVfZXAoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9vdXQpO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjA2Ni1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbWlkaTItXFx1MDAzZW51bV9lcHM7IGkrKykge1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2NzpcXHRcXHRmX21pZGkyX2ZyZWVfZXAoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMl9lcHNbaV0uZXBfaW4pO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2ODpcXHRcXHRmX21pZGkyX2ZyZWVfZXAoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMl9lcHNbaV0uZXBfb3V0KTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTIwNjktXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjozOS41NTMyNDc2MDJaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU1ODY0MTE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1JREkgR2FkZ2V0IERyaXZlciBFbnRyeSBQb2ludHMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIE1JREkgZ2FkZ2V0IGRyaXZlciBjb2RlLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGZ1bmN0aW9ucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBhcmUgYGZfbWlkaTJfdW5iaW5kYCBhbmQgYGZfbWlkaTJfc2V0X2FsdGAuIFNwZWNpZmljYWxseSwgYGZfbWlkaTJfdW5iaW5kYCBkaXJlY3RseSBjYWxscyBgZl9taWRpMl9mcmVlX2VwYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZW4sIGBmX21pZGkyX3NldF9hbHRgIGlzIGEgYml0IG1vcmUgaW52b2x2ZWQ7IGl0J3MgY2FsbGluZyBib3RoIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gU3RhbmRhcmQgVVNCIGdhZGdldCBmdW5jdGlvbiBjYWxsYmFja3MsIGFzIGV4cGVjdGVkLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayBpZiBhbnkgb3RoZXIgZW50cnkgcG9pbnRzIG1pZ2h0IHRyaWdnZXIgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2Agb3IgcmVsYXRlZCBmdW5jdGlvbnMgdGhhdCBtaWdodCBiZSBvZiBpbnRlcmVzdC4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhhdCBpcyBgZl9taWRpMl9zdGFydF9lcHNgLCBhbmQgdGhhdCBvbmUgaXMgb25seSBjYWxsZWQgYnkgYGZfbWlkaTJfc2V0X2FsdGAuIFNvLCBgZl9taWRpMl9zZXRfYWx0YCByZWFsbHkgc2VlbXMgbGlrZSB0aGUga2V5IGZ1bmN0aW9uIGhlcmUgdG8gYW5hbHl6ZSBpbiBtb3JlIGRlcHRoLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgZl9taWRpMl9iaW5kYCBhcyB3ZWxsLiBQZXJoYXBzIGl0IGluaXRpYWxpemVzIHRoZSBlbmRwb2ludHMgb3IgY2FsbHMgYGZfbWlkaTJfaW5pdF9lcGAgaW4gc29tZSB3YXkuIEdvdHRhIG1ha2Ugc3VyZSBJIGRvbid0IG1pc3MgYW55dGhpbmcgb2J2aW91cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIyNDMsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6NDYuMTExODkyOTQyWiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc2NDM0ODMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9iaW5kXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xOTExPXN0YXRpYyBpbnQgZl9taWRpMl9pbml0X21pZGkyX2VwX291dChzdHJ1Y3QgZl9taWRpMiAqbWlkaTIsIGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTkyNy0vKiBnYWRnZXQgZnVuY3Rpb24gYmluZCBjYWxsYmFjayAqL1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTkyODpzdGF0aWMgaW50IGZfbWlkaTJfYmluZChzdHJ1Y3QgdXNiX2NvbmZpZ3VyYXRpb24gKmMsIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmYpXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xOTI5LXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzMS1cXHRtaWRpMi1cXHUwMDNlZnVuYy5uYW1lID0gXFxcIm1pZGkyX2Z1bmNcXFwiO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzMjpcXHRtaWRpMi1cXHUwMDNlZnVuYy5iaW5kID0gZl9taWRpMl9iaW5kO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzMy1cXHRtaWRpMi1cXHUwMDNlZnVuYy51bmJpbmQgPSBmX21pZGkyX3VuYmluZDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6NDYuMzk5NTQxNzg1WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwNzc3NTgzMjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIE1JREkgMi4wIEdhZGdldCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBNSURJIDIuMCBnYWRnZXQgZHJpdmVyLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZSBtYWluIGVudHJ5IHBvaW50czogYGZfbWlkaTJfYmluZGAsIGBmX21pZGkyX3VuYmluZGAsIGFuZCBgZl9taWRpMl9zZXRfYWx0YC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGEgYnVnIGZpeCB3aXRoaW4gdGhlIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIGFuZCBgZl9taWRpMl9mcmVlX2VwX3JlcXNgIGZ1bmN0aW9ucy4gSXQgc2VlbXMgbGlrZSB0aGVyZSB3YXMgYW4gaW5jb3JyZWN0IHZhcmlhYmxlIHVzZWQgZm9yIHJlcXVlc3QgY291bnRzLCB1c2luZyBgbWlkaTItXHUwMDNlaW5mby5udW1fcmVxc2AgaW5zdGVhZCBvZiBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCwgd2hpY2ggbWFrZXMgc2Vuc2UgYmVjYXVzZSBlbmRwb2ludCByZXF1ZXN0IGNvdW50cyB3b3VsZCBiZSBzcGVjaWZpYyB0byBlYWNoIGVuZHBvaW50LlxuXG5UaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc28gSSdtIHRoaW5raW5nIHRoaXMgaXMgcHJpbWUgZm9yIGZ1enppbmcuIFRvIGdldCB0aGF0IGdvaW5nLCBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHNldC4gSSBuZWVkOiBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBgU05EYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuXG5cbldhaXQgYSBtaW51dGUsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiBgVVNCX0NPTkZJR0ZTYCBpcyBhIHRyaXN0YXRlLCB3aGlsZSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIGEgYm9vbC4gSnVzdCB0byBiZSBzdXJlLCBJJ2xsIGNvbmZpcm0gdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIGluZGVlZCBhIGJvb2wuLi4geWVwLCBcIk1JREkgMi4wIGZ1bmN0aW9uXCIuXG5cbk9rYXksIHNvIGl0J3MgYSBzdHJhaWdodGZvcndhcmQgZW5hYmxlbWVudCBzaXR1YXRpb24sIEkganVzdCBuZWVkIHRvIGVuYWJsZSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBBaCwgYnV0IGEgZGVwZW5kZW5jeSBjaGVjazogYFVTQl9DT05GSUdGU19GX01JREkyYCBkZXBlbmRzIG9uIGBVU0JfQ09ORklHRlNgIGFuZCBgU05EYC4gQW5kIHNpbmNlIGBVU0JfQ09ORklHRlNgIGRlcGVuZHMgb24gYFVTQl9HQURHRVRgLCBJJ2xsIG5lZWQgdG8gZW5hYmxlIHRoYXQgb25lIHRvby4gU28gdGhlIHdob2xlIHNldCBzaG91bGQgaW5jbHVkZSBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBgU05EYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuXG5cbkkgc2hvdWxkIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncywgYW5kIGl0IGxvb2tzIGxpa2UgYFVTQl9GX01JREkyYCBpcyBzZWxlY3RlZCBieSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBUaGF0IGNvbmZpcm1zIG15IGluaXRpYWwgc3RyYXRlZ3ksIGFzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgc3VmZmljaWVudC5cblxuSnVzdCB0byBiZSBleHBsaWNpdCwgaGVyZSdzIHRoZSBmaW5hbCBjb25maWcgbGlzdDpcblxuKiAgIGBVU0JfR0FER0VUYFxuKiAgIGBVU0JfQ09ORklHRlNgXG4qICAgYFNORGBcbiogICBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgXG5cbkFuZCBmb3IgdGFyZ2V0IGZ1bmN0aW9ucywgYmVzaWRlcyB0aGUgZW50cnkgcG9pbnRzOlxuXG4qICAgYGZfbWlkaTJfc2V0X2FsdGBcbiogICBgZl9taWRpMl9iaW5kYFxuKiAgIGBmX21pZGkyX3VuYmluZGBcblxuYGZfbWlkaTJfc2V0X2FsdGAgbG9va3MgbGlrZSBhIGdvb2Qgb25lIHRvIHRhcmdldCwgYW5kIHNpbmNlIEknbSBoZXJlIEkgbWlnaHQgYXMgd2VsbCBjaGVjayBgZl9taWRpMl9zZXR1cGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDg0LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjU1LjQ3NzMwMjgyNFoiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA0MDA2NTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfbWlkaTJfc2V0dXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEzNDY9c3RhdGljIHZvaWQgYXNzaWduX2Jsb2NrX2Rlc2NyaXB0b3JzKHN0cnVjdCBmX21pZGkyICptaWRpMixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQwNC0vKiBnYWRnZXQgZnVuY3Rpb24gc2V0dXAgY2FsbGJhY2s6IGhhbmRsZSBHVEIgcmVxdWVzdHMgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjE0MDU6c3RhdGljIGludCBmX21pZGkyX3NldHVwKHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuLFxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQwNi1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IHVzYl9jdHJscmVxdWVzdCAqY3RybClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNS1cXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzNjpcXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM3LVxcdG1pZGkyLVxcdTAwM2VmdW5jLmRpc2FibGUgPSBmX21pZGkyX2Rpc2FibGU7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjU1LjY4MTMxNzk5OVoiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzI4NDEyNDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgTUlESSBMYW5kc2NhcGUqKlxuXG5SaWdodCwgc28gSSdtIHNlZWluZyB0aGF0IGBmX21pZGkyX2Rpc2FibGVgIGZ1bmN0aW9uIGFnYWluLiBJdCdzIGEga2V5IHBpZWNlLCBpc24ndCBpdD8gSXRzIHByZXNlbmNlIGltbWVkaWF0ZWx5IHRyaWdnZXJzIG15IG1pbmQgdG8gY29uc2lkZXIgdGhlIHNwZWNpZmljIE1JREkgaW1wbGVtZW50YXRpb24gdGhpcyBjb2RlIGlzIGRlYWxpbmcgd2l0aC4gVGhlIG5hbWluZyBjb252ZW50aW9uIHN1Z2dlc3RzIGl0IG1pZ2h0IGJlIGEgZnVuY3Rpb24gdGhhdCBzZWxlY3RpdmVseSBkaXNhYmxlcyBhIHBhcnRpY3VsYXIgTUlESSBjb21wb25lbnQgb3IgZmVhdHVyZSBzZXQsIHBlcmhhcHMgTUlESSAyLjAgZnVuY3Rpb25hbGl0eSwgb3IgcGVyaGFwcyBhIHNlY29uZCBNSURJIGRldmljZSBiZWluZyBlbXBsb3llZCBvbiB0aGUgc3lzdGVtLiBUaGlua2luZyBtb3JlIGJyb2FkbHksIGl0IGZsYWdzIHRoZSBuZWVkIHRvIGV2YWx1YXRlIGhvdyBNSURJIGNvbW11bmljYXRpb24gaXMgYmVpbmcgaGFuZGxlZCDigJMgaXMgdGhlcmUgYW4gYXR0ZW1wdCB0byBzdXBwb3J0IG11bHRpcGxlIE1JREkgc3RyZWFtcywgb3IgYXJlIHdlIGludGVudGlvbmFsbHkgbGltaXRpbmcgdGhlIGNvbmZpZ3VyYXRpb24/IFRoaXMgbGlrZWx5IGhhcyByYW1pZmljYXRpb25zIGZvciB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgYW5kIHRoZSBpbnRlbmRlZCB1c2UgY2FzZS4gVGhpcyBwcm9tcHRzIHF1ZXN0aW9ucyBhYm91dCB0aGUgdW5kZXJseWluZyBNSURJIGZyYW1ld29yayDigJMgaXMgaXQgYSBjdXN0b20gaW1wbGVtZW50YXRpb24sIG9yIGFyZSB3ZSB1c2luZyBhIHN0YW5kYXJkIGxpYnJhcnk/IFRoaXMgYWxzbyBpbXBhY3RzIG91ciBkZWJ1Z2dpbmcgc3RyYXRlZ3kuIElzIHRoZXJlIGFuIGlzc3VlLCBvciBzaW1wbHkgc29tZXRoaW5nIHRoYXQgdGhlIHByb2dyYW0gaXMgY29uZmlndXJlZCB0byBkbz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJlbGF0aW9uc2hpcCB0byBhbnkgb3RoZXIgTUlESS1yZWxhdGVkIGZ1bmN0aW9ucywgZXNwZWNpYWxseSB0aG9zZSBkZWFsaW5nIHdpdGggaW5pdGlhbGl6YXRpb24sIGRhdGEgdHJhbnNtaXNzaW9uLCBhbmQgZXZlbnQgaGFuZGxpbmcuIEkgYWxzbyBoYXZlIHRvIGtlZXAgaW4gbWluZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiBkaXNhYmxpbmcgYSBjb21wb25lbnQ6IEFyZSB0aGVyZSBkZXBlbmRlbmNpZXMgdGhhdCBub3cgbmVlZCB0byBiZSBhZGRyZXNzZWQ/IERvZXMgaXQgaW1wYWN0IG90aGVyLCB1bnJlbGF0ZWQgbW9kdWxlcz8gSSBtdXN0IG5vdyBsb29rIG1vcmUgY2xvc2VseSB0byBzZWUgd2hlcmUgdGhpcyBkaXNhYmxpbmcgYWN0aW9uIHRha2VzIHBsYWNlIHdpdGhpbiB0aGUgY29udHJvbCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDUzNCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjU5LjQwOTczMzQ1OVoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODUzNTc5OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9kaXNhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xNDA1PXN0YXRpYyBpbnQgZl9taWRpMl9zZXR1cChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQzMS0vKiBnYWRnZXQgZnVuY3Rpb24gZGlzYWJsZSBjYWxsYmFjayAqL1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTQzMjpzdGF0aWMgdm9pZCBmX21pZGkyX2Rpc2FibGUoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4pXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xNDMzLXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNi1cXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODM3OlxcdG1pZGkyLVxcdTAwM2VmdW5jLmRpc2FibGUgPSBmX21pZGkyX2Rpc2FibGU7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM4LVxcdG1pZGkyLVxcdTAwM2VmdW5jLmZyZWVfZnVuYyA9IGZfbWlkaTJfZnJlZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6NTkuNDk1MDk3MzE3WiIsIlNlcSI6NDMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk3MjIyNzM1MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyB0aGUgTUlESTIgRGlzYWJsZSBGdW5jdGlvbioqXG5cbk9rYXksIHNvIGBmX21pZGkyX2Rpc2FibGVgLiBNeSBpbW1lZGlhdGUgYXNzdW1wdGlvbiwgYmFzZWQgb24gbmFtaW5nIGNvbnZlbnRpb25zLCBpcyB0aGF0IHRoaXMgZnVuY3Rpb24gbGlrZWx5IGNhbGxzIGBmX21pZGkyX3N0b3BfZXBzYC4gVGhlIFwiZXBzXCIgbGlrZWx5IHJlZmVycyB0byBcImVuZHBvaW50c1wiLCBhbmQgXCJzdG9wXCIgc3VnZ2VzdHMgYSBzaHV0ZG93biBvciBkZWFjdGl2YXRpb24gb2YgdGhlIGVuZHBvaW50cy4gSXQncyBhIHByZXR0eSBzdGFuZGFyZCBwYXR0ZXJuLiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gY29uZmlybSB0aGF0IHRoZSBjb2RlIGFjdHVhbGx5IGJlaGF2ZXMgYXMgSSBzdXNwZWN0LiBOZWVkIHRvIGRpZyBpbiBhbmQgc2VlIHRoZSBjb250cm9sIGZsb3cuIFdoYXQgYXJlIHRoZSBzcGVjaWZpYyBpbXBsaWNhdGlvbnMgb2YgZGlzYWJsaW5nIE1JREkyPyBEb2VzIGl0IGp1c3Qgc2h1dCBkb3duIHRoZSBzdHJlYW1zLCBvciBhcmUgdGhlcmUgYW55IGhhcmR3YXJlIHBvd2VyLWRvd25zIG9yIHN0YXRlIHJlc2V0cyBpbnZvbHZlZD8gR290dGEgY2hlY2sgdGhlIHJlZ2lzdGVyIHNldHRpbmdzIGFuZCBlcnJvciBoYW5kbGluZyB0b28uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MTg0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDc6MDkuMjE3Mzc0MjQxWiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5ODU0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE0MzIsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE0MzI6XFx0c3RhdGljIHZvaWQgZl9taWRpMl9kaXNhYmxlKHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuKVxcbjE0MzM6XFx0e1xcbjE0MzQ6XFx0XFx0c3RydWN0IGZfbWlkaTIgKm1pZGkyID0gZnVuY190b19taWRpMihmbik7XFxuMTQzNTpcXHRcXG4xNDM2OlxcdFxcdG1pZGkyLVxcdTAwM2VvcGVyYXRpb25fbW9kZSA9IE1JRElfT1BfTU9ERV9VTlNFVDtcXG4xNDM3OlxcdH1cXG4xNDM4OlxcdFxcbjE0Mzk6XFx0LypcXG4xNDQwOlxcdCAqIEFMU0EgVU1QIG9wczogbW9zdCBvZiB0aGVtIGFyZSBOT1BzLCBvbmx5IHRyaWdnZXIgZm9yIHdyaXRlIGlzIG5lZWRlZFxcbjE0NDE6XFx0ICovXFxuMTQ0MjpcXHRzdGF0aWMgaW50IGZfbWlkaTJfdW1wX29wZW4oc3RydWN0IHNuZF91bXBfZW5kcG9pbnQgKnVtcCwgaW50IGRpcilcXG4xNDQzOlxcdHtcXG4xNDQ0OlxcdFxcdHJldHVybiAwO1xcbjE0NDU6XFx0fVxcbjE0NDY6XFx0XFxuMTQ0NzpcXHRzdGF0aWMgdm9pZCBmX21pZGkyX3VtcF9jbG9zZShzdHJ1Y3Qgc25kX3VtcF9lbmRwb2ludCAqdW1wLCBpbnQgZGlyKVxcbjE0NDg6XFx0e1xcbjE0NDk6XFx0fVxcbjE0NTA6XFx0XFxuMTQ1MTpcXHRzdGF0aWMgdm9pZCBmX21pZGkyX3VtcF90cmlnZ2VyKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIsIGludCB1cClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDc6MDkuMjE3Njc1NDcxWiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTI2MjUzMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guXG5cbioqQW5hbHl6aW5nIE1JREkyIEVuZHBvaW50IENvbnRyb2wgRmxvdyoqXG5cbkhtbSwgd2FpdCBhIG1pbnV0ZS4uLiBJIHdhcyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGF0IGBmX21pZGkyX2Rpc2FibGVgIHdvdWxkIGFsc28gYmUgcmVzcG9uc2libGUgZm9yIHN0b3BwaW5nIHRoZSBlbmRwb2ludCBzdHJlYW1zLiBCdXQgaXQgZG9lc24ndCBhY3R1YWxseSBjYWxsIGBmX21pZGkyX3N0b3BfZXBzYC4gVGhhdCdzIGEgYml0IG9kZC4gU28sIHdoZXJlICppcyogYGZfbWlkaTJfc3RvcF9lcHNgIGdldHRpbmcgY2FsbGVkPyBBaCwgcmlnaHQhIEl0J3Mgd2l0aGluIGBmX21pZGkyX3NldF9hbHRgLiBPa2F5LCB0aGF0IG1ha2VzIG1vcmUgc2Vuc2Ugbm93LiBTbywgYGZfbWlkaTJfc2V0X2FsdGAgYXBwZWFycyB0byBiZSB0aGUgcHJpbWFyeSBmdW5jdGlvbiBmb3IgbWFuYWdpbmcgdGhlIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBvZiByZXF1ZXN0cyByZWxhdGVkIHRvIHRoZSBNSURJMiBlbmRwb2ludHMuIEdpdmVuIGl0cyBjZW50cmFsIHJvbGUsIEkgc2hvdWxkIHByb2JhYmx5IHJlLWV4YW1pbmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBmX21pZGkyX3NldF9hbHRgIG1vcmUgY2xvc2VseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIHJlcXVlc3QgbGlmZWN5Y2xlIGluIHRoYXQgZnVuY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NzIwLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NzoxMy41MTAzMDQyNzZaIiwiU2VxIjo0NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQyMjUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTI3NCxcbiAgXCJMaW5lQ291bnRcIjogNDVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTI3NDpcXHRzdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXFxuMTI3NTpcXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgYWx0KVxcbjEyNzY6XFx0e1xcbjEyNzc6XFx0XFx0c3RydWN0IGZfbWlkaTIgKm1pZGkyID0gZnVuY190b19taWRpMihmbik7XFxuMTI3ODpcXHRcXHRzdHJ1Y3QgZl9taWRpMl9lcCAqZXA7XFxuMTI3OTpcXHRcXHRpbnQgaSwgb3BfbW9kZSwgZXJyO1xcbjEyODA6XFx0XFxuMTI4MTpcXHRcXHRpZiAoaW50ZiAhPSBtaWRpMi1cXHUwMDNlbWlkaV9pZiB8fCBhbHQgXFx1MDAzZSAxKVxcbjEyODI6XFx0XFx0XFx0cmV0dXJuIDA7XFxuMTI4MzpcXHRcXG4xMjg0OlxcdFxcdGlmIChhbHQgPT0gMClcXG4xMjg1OlxcdFxcdFxcdG9wX21vZGUgPSBNSURJX09QX01PREVfTUlESTE7XFxuMTI4NjpcXHRcXHRlbHNlXFxuMTI4NzpcXHRcXHRcXHRvcF9tb2RlID0gTUlESV9PUF9NT0RFX01JREkyO1xcbjEyODg6XFx0XFxuMTI4OTpcXHRcXHRpZiAobWlkaTItXFx1MDAzZW9wZXJhdGlvbl9tb2RlID09IG9wX21vZGUpXFxuMTI5MDpcXHRcXHRcXHRyZXR1cm4gMDtcXG4xMjkxOlxcdFxcbjEyOTI6XFx0XFx0bWlkaTItXFx1MDAzZW9wZXJhdGlvbl9tb2RlID0gb3BfbW9kZTtcXG4xMjkzOlxcdFxcbjEyOTQ6XFx0XFx0aWYgKG9wX21vZGUgIT0gTUlESV9PUF9NT0RFX01JREkxKVxcbjEyOTU6XFx0XFx0XFx0Zl9taWRpMl9zdG9wX2VwcyhcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkxX2VwX2luLCBcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkxX2VwX291dCk7XFxuMTI5NjpcXHRcXG4xMjk3OlxcdFxcdGlmIChvcF9tb2RlICE9IE1JRElfT1BfTU9ERV9NSURJMikge1xcbjEyOTg6XFx0XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG1pZGkyLVxcdTAwM2VudW1fZXBzOyBpKyspIHtcXG4xMjk5OlxcdFxcdFxcdFxcdGVwID0gXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMl9lcHNbaV07XFxuMTMwMDpcXHRcXHRcXHRcXHRmX21pZGkyX3N0b3BfZXBzKFxcdTAwMjZlcC1cXHUwMDNlZXBfaW4sIFxcdTAwMjZlcC1cXHUwMDNlZXBfb3V0KTtcXG4xMzAxOlxcdFxcdFxcdH1cXG4xMzAyOlxcdFxcdH1cXG4xMzAzOlxcdFxcbjEzMDQ6XFx0XFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkxKVxcbjEzMDU6XFx0XFx0XFx0cmV0dXJuIGZfbWlkaTJfc3RhcnRfZXBzKFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfaW4sXFxuMTMwNjpcXHRcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9vdXQsIGZuKTtcXG4xMzA3OlxcdFxcbjEzMDg6XFx0XFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkyKSB7XFxuMTMwOTpcXHRcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbWlkaTItXFx1MDAzZW51bV9lcHM7IGkrKykge1xcbjEzMTA6XFx0XFx0XFx0XFx0ZXAgPSBcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkyX2Vwc1tpXTtcXG4xMzExOlxcdFxcbjEzMTI6XFx0XFx0XFx0XFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXFx1MDAyNmVwLVxcdTAwM2VlcF9pbiwgXFx1MDAyNmVwLVxcdTAwM2VlcF9vdXQsIGZuKTtcXG4xMzEzOlxcdFxcdFxcdFxcdGlmIChlcnIpXFxuMTMxNDpcXHRcXHRcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjEzMTU6XFx0XFx0XFx0fVxcbjEzMTY6XFx0XFx0fVxcbjEzMTc6XFx0XFxuMTMxODpcXHRcXHRyZXR1cm4gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDc6MTMuNTEwNDQ3OTY3WiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MTk4Mzc4Nzc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIE1JREkyIEdhZGdldCBSZXF1ZXN0IE1hbmFnZW1lbnQqKlxuXG5Pa2F5LCBzbyBgZl9taWRpMl9zZXRfYWx0YCBpcyBkZWZpbml0ZWx5IHRoZSBrZXkgZnVuY3Rpb24uIFRoYXQncyB0aGUgb25lIHRoYXQgaGFuZGxlcyByZXF1ZXN0IGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiwgc28gaXQncyBhIHByaW1hcnkgZm9jdXMuIEJleW9uZCB0aGF0LCBJIG5lZWQgdG8gaW5jbHVkZSBgZl9taWRpMl9iaW5kYCBhbmQgYGZfbWlkaTJfdW5iaW5kYCBzaW5jZSB0aGV5IHdvdWxkIGluZmx1ZW5jZSBob3cgcmVxdWVzdHMgYXJlIGhhbmRsZWQuXG5cbldhaXQgYSBtaW51dGUsIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIGlzIGFsc28gY2FsbGVkIGZyb20gYGZfbWlkaTJfc3RhcnRfZXBzYC4gSSBuZWVkIHRvIGVuc3VyZSB0aGF0IEkgaGF2ZW4ndCBtaXNzZWQgYW55IG90aGVyIHNpbWlsYXIgY2FsbCBzaXRlcy4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBvdGhlciBwb3RlbnRpYWwgY2FuZGlkYXRlcyBzdWNoIGFzIGBmX21pZGkyX2VwX2luX2NvbXBsZXRlYCBhbmQgYW55IHNpbWlsYXIgZnVuY3Rpb25zLiBTdGlsbCwgYGZfbWlkaTJfc2V0X2FsdGAgcmVtYWlucyB0aGUgY2VudHJhbCBmdW5jdGlvbi5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBMZXQncyBzZWUuLi4gYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBHb29kLiBJJ2xsIGRvdWJsZS1jaGVjayB0aGF0IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgdGhlICpvbmx5KiByZXF1aXJlZCBvcHRpb24uIEFoLCB5ZXMsIGl0IHNlbGVjdHMgYFVTQl9GX01JREkyYCwgd2hpY2ggaXMgd2hhdCBJIGV4cGVjdC5cblxuTGV0J3MgdHJhY2UgdGhlc2UgZGVwZW5kZW5jaWVzLiBPa2F5LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYC4gQW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBib3RoIGBVU0JfQ09ORklHRlNgIGFuZCBgU05EYC4gU28sIG15IGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzIGFyZTogYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIHZlcmlmeSB0aGF0IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgaW5kZWVkIHRoZSBjb3JyZWN0IEtjb25maWcgc3ltYm9sLiBZZXAsIGBjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBQZXJmZWN0LlxuXG5Pa2F5LCBJJ20gY29uZmlkZW50IGluIHRoaXMgYW5hbHlzaXMuIEknbGwgcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAsIGFsb25nIHdpdGggdGhlIGlkZW50aWZpZWQgZm9jdXMgc3ltYm9scyBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjc3NiwiT3V0cHV0VG9rZW5zIjoxNzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NzoyOS43MDg4MzAyMjRaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjAwNjU5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9HQURHRVRcIixcbiAgICBcIlVTQl9DT05GSUdGU1wiLFxuICAgIFwiU05EXCIsXG4gICAgXCJVU0JfQ09ORklHRlNfRl9NSURJMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZfbWlkaTJfc2V0X2FsdFwiLFxuICAgIFwiZl9taWRpMl9iaW5kXCIsXG4gICAgXCJmX21pZGkyX3VuYmluZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cXHUwMDNlaW5mby5udW1fcmVxc2AgdG8gYHVzYl9lcC1cXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9HQURHRVRcIixcbiAgICBcIlVTQl9DT05GSUdGU1wiLFxuICAgIFwiU05EXCIsXG4gICAgXCJVU0JfQ09ORklHRlNfRl9NSURJMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZfbWlkaTJfc2V0X2FsdFwiLFxuICAgIFwiZl9taWRpMl9iaW5kXCIsXG4gICAgXCJmX21pZGkyX3VuYmluZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cXHUwMDNlaW5mby5udW1fcmVxc2AgdG8gYHVzYl9lcC1cXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowbtgl7[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-29 09:39:14 +0000 UTC FinishedAt: 2026-07-29 09:47:32 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_GADGET", "USB_CONFIGFS", "SND", "USB_CONFIGFS_F_MIDI2" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "f5098b6bae761e346ebcd9da7f95622c04733cff", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USB_GADGET", "USB_CONFIGFS", "SND", "USB_CONFIGFS_F_MIDI2" ], "series_id": "49d7f060-4c70-4142-a1cd-7d30da545737" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "f_midi2_set_alt", "f_midi2_bind", "f_midi2_unbind" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9HQURHRVQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTJiMzNDssCiAgICAmIzM0O1NORCYjMzQ7LAogICAgJiMzNDtVU0JfQ09ORklHRlNfRl9NSURJMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2ZfbWlkaTJfc2V0X2FsdCYjMzQ7LAogICAgJiMzNDtmX21pZGkyX2JpbmQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl91bmJpbmQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb2YgVVNCIGVuZHBvaW50IHJlcXVlc3RzIGluIHRoZSBNSURJIDIuMCBnYWRnZXQgZnVuY3Rpb24gZHJpdmVyLiBJdCBjaGFuZ2VzIHRoZSBsb29wIGJvdW5kIGZyb20gYG1pZGkyLVx1MDAzZWluZm8ubnVtX3JlcXNgIHRvIGB1c2JfZXAtXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMzRlYjk2MmQyNWM4YTU5YzQxZTM0ZTA1YzMyZmQ5YjUwYjRlMDM3ZVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDI5IDA5OjQ0OjM4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXG5pbmRleCAxOWZkYWMwMjQzNDM5Li41ZTU0Y2Y5OTQ3MDdhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuQEAgLTExNDUsNyAmIzQzOzExNDUsNyBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcbiBcdGlmICghdXNiX2VwLVx1MDAzZXJlcXMpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbWlkaTItXHUwMDNlaW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyB1c2JfZXAtXHUwMDNlbnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGlmICh1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpXG4gXHRcdFx0Y29udGludWU7XG4gXHRcdHVzYl9lcC1cdTAwM2VyZXFzW2ldLnJlcSA9IGFsbG9jX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLFxuQEAgLTExNjAsMTAgJiM0MzsxMTYwLDkgQEAgc3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG4gLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi9cbiBzdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcbiB7XG4tXHRzdHJ1Y3QgZl9taWRpMiAqbWlkaTIgPSB1c2JfZXAtXHUwMDNlY2FyZDtcbiBcdGludCBpO1xuIFxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbWlkaTItXHUwMDNlaW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyB1c2JfZXAtXHUwMDNlbnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGlmICghdXNiX2VwLVx1MDAzZXJlcXNbaV0ucmVxKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFx0XHRmcmVlX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLCB1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfR0FER0VUJiMzNDssCiAgICAmIzM0O1VTQl9DT05GSUdGUyYjMzQ7LAogICAgJiMzNDtTTkQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTX0ZfTUlESTImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmX21pZGkyX3NldF9hbHQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl9iaW5kJiMzNDssCiAgICAmIzM0O2ZfbWlkaTJfdW5iaW5kJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciBtZW1vcnkgbGVha3MuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIFVTQiBnYWRnZXQgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJuYXRlIHNldHRpbmcgY2hhbmdlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDM0ZWI5NjJkMjVjOGE1OWM0MWUzNGUwNWMzMmZkOWI1MGI0ZTAzN2UKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgV2VkIEp1bCAyOSAwOTo0NDozOCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jCmluZGV4IDE5ZmRhYzAyNDM0MzkuLjVlNTRjZjk5NDcwN2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYwpAQCAtMTE0NSw3ICYjNDM7MTE0NSw3IEBAIHN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKQogCWlmICghdXNiX2VwLSZndDtyZXFzKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IHVzYl9lcC0mZ3Q7bnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7CiAJCWlmICh1c2JfZXAtJmd0O3JlcXNbaV0ucmVxKQogCQkJY29udGludWU7CiAJCXVzYl9lcC0mZ3Q7cmVxc1tpXS5yZXEgPSBhbGxvY19lcF9yZXEodXNiX2VwLSZndDt1c2JfZXAsCkBAIC0xMTYwLDEwICYjNDM7MTE2MCw5IEBAIHN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKQogLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi8KIHN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKQogewotCXN0cnVjdCBmX21pZGkyICptaWRpMiA9IHVzYl9lcC0mZ3Q7Y2FyZDsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgJmx0OyBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxczsgaSYjNDM7JiM0MzspIHsKJiM0MzsJZm9yIChpID0gMDsgaSAmbHQ7IHVzYl9lcC0mZ3Q7bnVtX3JlcXM7IGkmIzQzOyYjNDM7KSB7CiAJCWlmICghdXNiX2VwLSZndDtyZXFzW2ldLnJlcSkKIAkJCWNvbnRpbnVlOwogCQlmcmVlX2VwX3JlcSh1c2JfZXAtJmd0O3VzYl9lcCwgdXNiX2VwLSZndDtyZXFzW2ldLnJlcSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMjQKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAxMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNSURJMiBVU0IgR2FkZ2V0IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQmIzM5O3MgcG9raW5nIGFyb3VuZCBpbiBgZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY2AuIFNlZW1zIGxpa2UgYSBzdHJhaWdodGZvcndhcmQgZml4LCBidXQgbGV0JiMzOTtzIGRpdmUgaW4uIEl0JiMzOTtzIGNoYW5naW5nIGBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxc2AgdG8gYHVzYl9lcC0mZ3Q7bnVtX3JlcXNgIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIGVuZHBvaW50IHJlcXVlc3QgcmVzb3VyY2VzLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBhbmQgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYCBmdW5jdGlvbnMuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdGhhdCB0aGlzIGlzIGEgZ29vZCBjYXRjaCAtIGxvb2tzIGxpa2Ugd2UmIzM5O3JlIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb3IgYW4gaXNzdWUgd2l0aCBpbmNvcnJlY3QgbG9vcCBib3VuZHMsIHdoaWNoLCBpbiB0aGUgVVNCIHdvcmxkLCBjYW4gYmUgbmFzdHkuCgpHaXZlbiB0aGUgbmF0dXJlIG9mIFVTQiBkZXZpY2UgZHJpdmVycyBhbmQgdGhlIHNlbnNpdGl2aXR5IG9mIGVuZHBvaW50IG1hbmFnZW1lbnQsIEkgd2FudCB0byBjb25maXJtIHRoZSBjb250ZXh0IG9mIHRoZXNlIGNoYW5nZXMuIEkmIzM5O2xsIG5lZWQgdG8gb3BlbiB1cCBgZl9taWRpMi5jYCBhbmQgdGFrZSBhIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbnMgaW52b2x2ZWQuIEkgbmVlZCB0byBrbm93IHRoZSBwb3RlbnRpYWwgaW1wYWN0IG9uIGRpZmZlcmVudCBNSURJMiBVU0IgZ2FkZ2V0IGltcGxlbWVudGF0aW9ucy4gQXJlIHRoZXJlIGFueSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvciBvdGhlciBzZXR0aW5ncyB0aGF0IGFmZmVjdCB0aGUgbnVtYmVyIG9yIGJlaGF2aW9yIG9mIHRoZXNlIHJlcXVlc3RzPyBJJiMzOTtsbCBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hhbmdlIGlzIGluZGVlZCBmdW5jdGlvbmFsbHkgY29ycmVjdCBhbmQgZG9lc24mIzM5O3QgaW50cm9kdWNlIGFueSByZWdyZXNzaW9ucyBhY3Jvc3MgdmFyaW91cyBNSURJMiBjb25maWd1cmF0aW9ucyBhbmQgaGFyZHdhcmUgc2V0dXBzLiBUaW1lIHRvIGdldCB0byB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfYWxsb2NfZXBfcmVxcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTIyPXN0YXRpYyB2b2lkIGZfbWlkaTJfZHJvcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTEzNy0vKiBBbGxvY2F0ZSByZXF1ZXN0cyBmb3IgdGhlIGdpdmVuIEVQICovXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExMzg6c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTExMzkte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI0OT1zdGF0aWMgaW50IGZfbWlkaTJfc3RhcnRfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjYxLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjYyOlx0ZXJyID0gZl9taWRpMl9hbGxvY19lcF9yZXFzKGVwX2luKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI2My1cdGlmIChlcnIpXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNjQtXHRcdHJldHVybiBlcnI7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNjU6XHRlcnIgPSBmX21pZGkyX2FsbG9jX2VwX3JlcXMoZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI2Ni1cdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE5MAoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDg4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQgd2UgaGF2ZSBoZXJlLgoKKipBbmFseXppbmcgTUlESSBFbmRwb2ludCBSZXF1ZXN0IEFsbG9jYXRpb24qKgoKUmlnaHQsIHNvIHRoZXNlIGZ1bmN0aW9ucywgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AsIGFyZSBzdGF0aWMuIFRoYXQmIzM5O3MgYSBrZXkgZGV0YWlsIHRvIHN0YXJ0IHdpdGguIE5vdyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGVpciBzY29wZSBhbmQgdXNhZ2UuIEkgc2hvdWxkIGNoZWNrIHdoZXJlIHRoZXkmIzM5O3JlIGFjdHVhbGx5IGJlaW5nIGludm9rZWQuIEZpcnN0LCBsZXQmIzM5O3MgbG9vayBhdCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYC4gQWgsIGl0JiMzOTtzIGNhbGxlZCB3aXRoaW4gYGZfbWlkaTJfc3RhcnRfZXBzYC4gVGhhdCBtYWtlcyBzZW5zZTsgaXQmIzM5O3MgbGlrZWx5IGludm9sdmVkIGluIGluaXRpYWxpemluZyBvciBzZXR0aW5nIHVwIHRoZSBlbmRwb2ludCByZXF1ZXN0cy4gT2theSwgbm93IHRvIGZ1bGx5IHVuZGVyc3RhbmQgdGhlIGZsb3csIEkgbmVlZCB0byBrbm93IHRoZSBjYWxsaW5nIGNvbnRleHQgZm9yIGBmX21pZGkyX3N0YXJ0X2Vwc2AuIFdoZXJlIGlzICppdCogY2FsbGVkPyBUaGF0IHdpbGwgZ2l2ZSBtZSB0aGUgYnJvYWRlciBwaWN0dXJlIG9mIGhvdyB0aGUgZW5kcG9pbnQgcmVxdWVzdHMgYXJlIG1hbmFnZWQuIEtub3dpbmcgdGhpcyBjb250ZXh0IHdpbGwgYWxsb3cgbWUgdG8gdW5kZXJzdGFuZCB0aGUgcHVycG9zZSBvZiB0aG9zZSBlbmRwb2ludCByZXF1ZXN0cyBhbmQgcG90ZW50aWFsIGlzc3Vlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmX21pZGkyX3N0YXJ0X2VwcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDgtLyogc3RhcnQvcXVldWUgYm90aCBJTiBhbmQgT1VUIEVQcyAqL1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ5OnN0YXRpYyBpbnQgZl9taWRpMl9zdGFydF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI1MC1cdFx0XHQgICAgIHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfb3V0LFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI3ND1zdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzA0LVx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkxKVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzA1Olx0XHRyZXR1cm4gZl9taWRpMl9zdGFydF9lcHMoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfaW4sXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMDYtXHRcdFx0XHRcdCBcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMV9lcF9vdXQsIGZuKTtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMTEtXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMTI6XHRcdFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXHUwMDI2ZXAtXHUwMDNlZXBfaW4sIFx1MDAyNmVwLVx1MDAzZWVwX291dCwgZm4pO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzEzLVx0XHRcdGlmIChlcnIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzk3NgoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkRpZ2dpbmcgaW50byBmX21pZGkyX3NldF9hbHQqKgoKSG1tLCBzbyBgZl9taWRpMl9zZXRfYWx0YC4uLmlzIHRoYXQgZnVuY3Rpb24gZGVjbGFyZWQgYXMgYSBub24tc3RhdGljIGZ1bmN0aW9uPyBPciBpcyBpdCBiZWluZyB1c2VkIGFzIGEgY2FsbGJhY2ssIHdoaWNoIHdvdWxkIG1ha2UgbWUgdGhpbmsgZGlmZmVyZW50bHkgYWJvdXQgaG93IGl0cyBpbnRlcm5hbCBzdGF0ZSBpcyBoYW5kbGVkPyBJdCYjMzk7cyBhIGtleSBmdW5jdGlvbiBpbiB0aGlzIG1pZGkgaW1wbGVtZW50YXRpb24sIHdoaWNoIG1lYW5zIEkgc2hvdWxkIG5vdCBtYWtlIGFueSBhc3N1bXB0aW9ucy4gTGV0IG1lIHF1aWNrbHkgZG91YmxlLWNoZWNrIHRoZSBjb2RlIGRlZmluaXRpb24gb2YgYGZfbWlkaTJfc2V0X2FsdGAgdG8gY2xhcmlmeSBpdHMgc2NvcGUgYW5kIHB1cnBvc2UsIGFuZCByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgY29kaW5nIHN0eWxlLiBLbm93aW5nIHRoYXQgd2lsbCBpbXBhY3QgdGhlIGFzc3VtcHRpb25zIEkgY2FuIG1ha2UgYWJvdXQgaXRzIHJvbGUgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgc3lzdGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfc2V0X2FsdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjQ5PXN0YXRpYyBpbnQgZl9taWRpMl9zdGFydF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNzMtLyogZ2FkZ2V0IGZ1bmN0aW9uIHNldF9hbHQgY2FsbGJhY2sgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI3NDpzdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNzUtXHRcdFx0ICAgdW5zaWduZWQgaW50IGFsdClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTI4MDY9c3RhdGljIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZfbWlkaTJfYWxsb2Moc3RydWN0IHVzYl9mdW5jdGlvbl9pbnN0YW5jZSAqZmkpXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM0LVx0bWlkaTItXHUwMDNlZnVuYy5nZXRfYWx0ID0gZl9taWRpMl9nZXRfYWx0O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODM1Olx0bWlkaTItXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM2LVx0bWlkaTItXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU1MQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqRGVjb2RpbmcgdGhlIENhbGxiYWNrKioKCkFscmlnaHQsIGEgY2FsbGJhY2ssICp0aGF0KiBmYW1pbGlhciBwaHJhc2UuIE15IGJyYWluIGltbWVkaWF0ZWx5IGp1bXBzIGludG8gdHJpYWdlIG1vZGUuIFRoZSBmaXJzdCBxdWVzdGlvbiBpcyBhbHdheXM6IHdoZXJlIGRvZXMgdGhpcyBjYWxsYmFjayAqbGl2ZSo/IEFuZCB0aGUgaW1tZWRpYXRlIG5lZWQgbm93IGlzIHRvIGxvY2F0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlcyBhc3NvY2lhdGVkIHdpdGggYGZfbWlkaTIuY2AuIFNwZWNpZmljYWxseSwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIHRoZSBwYXJhbWV0ZXJzIGl0JiMzOTtzIGV4cGVjdGluZywgYW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIHdpdGggdGhlIGxhcmdlciBzeXN0ZW0uIFRoaXMgaXNuJiMzOTt0IGp1c3QgYWJvdXQgZmluZGluZyB0aGUgZmlsZTsgaXQmIzM5O3MgYWJvdXQgdW5kZXJzdGFuZGluZyB0aGUgY29udHJvbCBmbG93IGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoaXMgY2FsbGJhY2sgd2l0aGluIHRoZSBgZl9taWRpMi5jYCBmcmFtZXdvcmsuIFRpbWUgdG8gZGlnIGluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmX21pZGkyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL01ha2VmaWxlJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZT01MD1vYmotJChDT05GSUdfVVNCX0ZfTUlESSlcdCYjNDM7PSB1c2JfZl9taWRpLm9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZTo1MTp1c2JfZl9taWRpMi15XHRcdFx0Oj0gZl9taWRpMi5vXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vTWFrZWZpbGU6NTI6b2JqLSQoQ09ORklHX1VTQl9GX01JREkyKVx0JiM0Mzs9IHVzYl9mX21pZGkyLm9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZS01My11c2JfZl9oaWQteVx0XHRcdDo9IGZfaGlkLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkwNAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgaXM6CgoqKkV4YW1pbmluZyBNSURJMiBVU0IgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyB0aGUgc3lzdGVtIGlzIGNvbmZpZ3VyZWQgdG8gdXNlIGBDT05GSUdfVVNCX0ZfTUlESTJgLiBNeSBtaW5kIGltbWVkaWF0ZWx5IGp1bXBzIHRvIEtjb25maWcuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBjb25maWcgb3B0aW9uICphY3R1YWxseSogbWVhbnMgaW4gdGhlIGNvbnRleHQgb2YgdGhlIGxhcmdlciBzeXN0ZW0uIEkmIzM5O20gZ29pbmcgdG8gaGVhZCBzdHJhaWdodCBvdmVyIHRvIEtjb25maWcgdG8gc2VlIHdoYXQmIzM5O3MgZGVmaW5lZCBmb3IgYENPTkZJR19VU0JfRl9NSURJMmAuIFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgZm9yIHRoZSByZXN0IG9mIHRoZSBVU0Igc3RhY2sgYW5kLCBieSBleHRlbnNpb24sIGF1ZGlvIHByb2Nlc3Npbmc/IEkgbmVlZCB0aGUgZnVsbCBwaWN0dXJlIHRvIHVuZGVyc3RhbmQgdGhpcyBzaW5nbGUgc2V0dGluZy4gVGhpcyBpcyBnb2luZyB0byBiZSBpbnRlcmVzdGluZy4gTGV0JiMzOTtzIHNlZSB3aGF0IEtjb25maWcgaGFzIHRvIHNheS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9GX01JREkyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZz0yMDk9Y29uZmlnIFVTQl9GX01JRElcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMTEtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyMTI6Y29uZmlnIFVTQl9GX01JREkyXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMTMtXHR0cmlzdGF0ZVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MjExCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIGEgVHJpc3RhdGUmIzM5O3MgQ29udHJvbCoqCgpSaWdodCwgc28gd2UmIzM5O3JlIGxvb2tpbmcgYXQgYSB0cmlzdGF0ZSBkZXZpY2UsIGxpa2VseSBpbiBhIGxhcmdlciBjaXJjdWl0LiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtUaGlzIGlzbiYjMzk7dCBqdXN0IGZsb2F0aW5nIGhlcmUgZm9yIGZ1bi4mIzM0OyBJdCYjMzk7cyBiZWluZyAqY29udHJvbGxlZCouIFRoZSBrZXkgcXVlc3Rpb24gbm93IGJlY29tZXMsIHdoYXQmIzM5O3MgZHJpdmluZyB0aGF0IGNvbnRyb2w/IFRoZSB0cmlzdGF0ZSBmdW5jdGlvbmFsaXR5IHN0cm9uZ2x5IHN1Z2dlc3RzIGl0JiMzOTtzIGJlaW5nIHVzZWQgdG8gbXVsdGlwbGV4IHNvbWV0aGluZyDigJMgbWF5YmUgZGF0YSwgbWF5YmUgYW4gYWRkcmVzcyBidXMsIHBvdGVudGlhbGx5IGVuYWJsaW5nIG9yIGRpc2FibGluZyBhIGZ1bmN0aW9uYWwgYmxvY2sgd2l0aGluIGEgbGFyZ2VyIHN5c3RlbS4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgdGhlIHNpZ25hbCB0aGF0JiMzOTtzIGVuYWJsaW5nIG9yIGRpc2FibGluZyB0aGlzLiBJIHdhbnQgdG8gc2VlIHdoYXQgdGhhdCBzaWduYWwgaXMgY29ubmVjdGVkIHRvIGFuZCB3aGF0IGxvZ2ljIGdhdGVzIG9yIG90aGVyIGNvbXBvbmVudHMgYXJlIGludm9sdmVkIGluIGl0cyBnZW5lcmF0aW9uLiBVbmRlcnN0YW5kaW5nIHRoZSBzZWxlY3Rpb24gbG9naWMgaXMgZ29pbmcgdG8gYmUgY3J1Y2lhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIGNpcmN1aXQgYmVoYXZpb3IuIFRpbWUgdG8gZGVsdmUgaW50byB0aGUgc2NoZW1hdGljIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgVVNCX0ZfTUlESTImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnPTQ0NT1jb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDktXHRzZWxlY3QgVVNCX0xJQkNPTVBPU0lURVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDUwOlx0c2VsZWN0IFVTQl9GX01JREkyXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NTEtXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU1NDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGVidWdnaW5nIHRoZSBNSURJIDIuMCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHNvIEkgbmVlZCB0byBlbmFibGUgTUlESSAyLjAgc3VwcG9ydCB2aWEgY29uZmlnZnMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IEkgbmVlZCB0byBlbnN1cmUgdGhlIGNvcnJlY3QgS2NvbmZpZyBvcHRpb24gaXMgc2VsZWN0ZWQsIGFuZCBJJiMzOTttIHByZXR0eSBzdXJlIGl0JiMzOTtzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuIE5vdyBJIHdhbnQgdG8gcXVpY2tseSB2ZXJpZnkgdGhpcyBpbiB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgcmVsZXZhbnQgVVNCIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBpZiBJJiMzOTt2ZSBnb3QgdGhlIHdyb25nIG9wdGlvbi4gTGV0IG1lIGp1bXAgaW50byB0aGUgcmVsZXZhbnQgS2NvbmZpZyBhbmQgZG91YmxlIGNoZWNrIHRoYXQgYFVTQl9DT05GSUdGU19GX01JREkyYCBpcyBwcm9wZXJseSBkZWZpbmVkIGFuZCBoYXMgdGhlIGRlcGVuZGVuY2llcyBJIGV4cGVjdCwgYW5kIGFsc28gbWFrZSBzdXJlIGl0JiMzOTtzIGV4cG9zZWQgcHJvcGVybHkuIEl0JiMzOTtzIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJ1dCBhIHZpdGFsIHN0ZXAgdG8gYXZvaWQgYW55IHJhYmJpdCBob2xlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZz00MzE9Y29uZmlnIFVTQl9DT05GSUdGU19GX01JRElcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDQtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0NDU6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDYtXHRib29sIFwmIzM0O01JREkgMi4wIGZ1bmN0aW9uXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU5MDMKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDoKCioqRGVjb25zdHJ1Y3RpbmcgTUlESSAyLjAgQ29uZmlndXJhdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgYFVTQl9DT05GSUdGU19GX01JREkyYCB0aGluZy4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBmaWd1cmUgb3V0IHdoYXQgcHJlLXJlcXVpc2l0ZXMgb3IgZGVwZW5kZW5jaWVzIGl0IGhhcy4gV2hhdCBvdGhlciBtb2R1bGVzIG9yIGZsYWdzIGFyZSBuZWNlc3NhcnkgdG8gZW5hYmxlIHRoaXMgTUlESSAyLjAgc3VwcG9ydCB3aXRoaW4gdGhlIENvbmZpZ0ZTIGZyYW1ld29yaz8gSXMgaXQgZGVwZW5kZW50IG9uIGNvcmUgVVNCIGRldmljZSBmdW5jdGlvbmFsaXR5LCBjZXJ0YWluIGhhcmR3YXJlIGRyaXZlcnMsIHNwZWNpZmljIENvbmZpZ0ZTIHN1YnN5c3RlbXMsIG9yIHBhcnRpY3VsYXIga2VybmVsIHZlcnNpb25zPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVpbGRpbmcgYmxvY2tzIGJlZm9yZSBJIGNhbiBldmVuIGJlZ2luIHRvIGZ1bGx5IGdyYXNwIGhvdyB0aGlzIHRoaW5nIGZ1bmN0aW9ucyBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBNeSBpbW1lZGlhdGUgdGFzayBpcyB0byBpZGVudGlmeSBhbmQgZGVsaW5lYXRlIHRob3NlIGRlcGVuZGVuY2llcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDQ0MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgNDQwOlx0XHQgIGlucHV0IGFuZCBvbmUgTUlESSBvdXRwdXQuIFRoZXNlIE1JREkgamFja3MgYXBwZWFyIGFzXG4gNDQxOlx0XHQgIGEgc291bmQgXCYjMzQ7Y2FyZFwmIzM0OyBpbiB0aGUgQUxTQSBzb3VuZCBzeXN0ZW0uIE90aGVyIE1JRElcbiA0NDI6XHRcdCAgY29ubmVjdGlvbnMgY2FuIHRoZW4gYmUgbWFkZSBvbiB0aGUgZ2FkZ2V0IHN5c3RlbSwgdXNpbmdcbiA0NDM6XHRcdCAgQUxTQSYjMzk7cyBhY29ubmVjdCB1dGlsaXR5IGV0Yy5cbiA0NDQ6XHRcbiA0NDU6XHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcbiA0NDY6XHRcdGJvb2wgXCYjMzQ7TUlESSAyLjAgZnVuY3Rpb25cJiMzNDtcbiA0NDc6XHRcdGRlcGVuZHMgb24gVVNCX0NPTkZJR0ZTXG4gNDQ4Olx0XHRkZXBlbmRzIG9uIFNORFxuIDQ0OTpcdFx0c2VsZWN0IFVTQl9MSUJDT01QT1NJVEVcbiA0NTA6XHRcdHNlbGVjdCBVU0JfRl9NSURJMlxuIDQ1MTpcdFx0aGVscFxuIDQ1MjpcdFx0ICBUaGUgTUlESSAyLjAgZnVuY3Rpb24gZHJpdmVyIHByb3ZpZGVzIHRoZSBnZW5lcmljIGVtdWxhdGVkXG4gNDUzOlx0XHQgIFVTQiBNSURJIDIuMCBpbnRlcmZhY2UsIGxvb3BlZCBiYWNrIHRvIEFMU0EgVU1QIHJhd21pZGlcbiA0NTQ6XHRcdCAgZGV2aWNlIG9uIHRoZSBnYWRnZXQgaG9zdC4gSXQgc3VwcG9ydHMgVU1QIDEuMSBzcGVjIGFuZFxuIDQ1NTpcdFx0ICByZXNwb25kcyBVTVAgU3RyZWFtIG1lc3NhZ2VzIGZvciBVTVAgRW5kcG9pbnQgYW5kIEZ1bmN0aW9uXG4gNDU2Olx0XHQgIEJsb2NrIGluZm9ybWF0aW9uIC8gY29uZmlndXJhdGlvbi5cbiA0NTc6XHRcbiA0NTg6XHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfSElEXG4gNDU5Olx0XHRib29sIFwmIzM0O0hJRCBmdW5jdGlvblwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDMyCgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSBVU0IgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCk9rYXksIHNvIHRoZSBzZXR1cCBoZXJlIGhpbmdlcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQsIGJ5IGV4dGVuc2lvbiwgYFNORGAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXQgcGxheS4gTGV0IG1lIHNlZS4uLiBgVVNCX0dBREdFVGAgc2VlbXMgbGlrZSBhbm90aGVyIGtleSBwbGF5ZXIgaW4gdGhpcy4gQWgsIHJpZ2h0LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYCwgc28gdGhhdCYjMzk7cyBhIGRpcmVjdCByZWxhdGlvbnNoaXAgdG8gY29uc2lkZXIuIE5vdywgdG8gZ2V0IGEgY2xlYXIgcGljdHVyZSwgSSBuZWVkIHRvIGRpZyBpbnRvIHRoZSBgVVNCX0NPTkZJR0ZTYCBjb25maWd1cmF0aW9uIGl0c2VsZiB3aXRoaW4gS2NvbmZpZy4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgcGllY2VzIGZpdCB0b2dldGhlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQl9DT05GSUdGUyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc9MjIzPWNvbmZpZyBVU0JfRl9UQ01cbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMjctXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyMjg6Y29uZmlnIFVTQl9DT05GSUdGU1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjI5LVx0dHJpc3RhdGUgXCYjMzQ7VVNCIEdhZGdldCBmdW5jdGlvbnMgY29uZmlndXJhYmxlIHRocm91Z2ggY29uZmlnZnNcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMzktXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNDA6Y29uZmlnIFVTQl9DT05GSUdGU19TRVJJQUxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTI0MS1cdGJvb2wgXCYjMzQ7R2VuZXJpYyBzZXJpYWwgYnVsayBpbi9vdXRcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNDgtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNDk6Y29uZmlnIFVTQl9DT05GSUdGU19BQ01cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTI1MC1cdGJvb2wgXCYjMzQ7QWJzdHJhY3QgQ29udHJvbCBNb2RlbCAoQ0RDIEFDTSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNTgtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNTk6Y29uZmlnIFVTQl9DT05GSUdGU19PQkVYXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNjAtXHRib29sIFwmIzM0O09iamVjdCBFeGNoYW5nZSBNb2RlbCAoQ0RDIE9CRVgpXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjY4LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjY5OmNvbmZpZyBVU0JfQ09ORklHRlNfTkNNXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNzAtXHRib29sIFwmIzM0O05ldHdvcmsgQ29udHJvbCBNb2RlbCAoQ0RDIE5DTSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yODAtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyODE6Y29uZmlnIFVTQl9DT05GSUdGU19FQ01cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTI4Mi1cdGJvb2wgXCYjMzQ7RXRoZXJuZXQgQ29udHJvbCBNb2RlbCAoQ0RDIEVDTSlcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yOTItXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyOTM6Y29uZmlnIFVTQl9DT05GSUdGU19FQ01fU1VCU0VUXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yOTQtXHRib29sIFwmIzM0O0V0aGVybmV0IENvbnRyb2wgTW9kZWwgKENEQyBFQ00pIHN1YnNldFwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTMwMi1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMwMzpjb25maWcgVVNCX0NPTkZJR0ZTX1JORElTXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zMDQtXHRib29sIFwmIzM0O1JORElTXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzE4LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzE5OmNvbmZpZyBVU0JfQ09ORklHRlNfRUVNXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zMjAtXHRib29sIFwmIzM0O0V0aGVybmV0IEVtdWxhdGlvbiBNb2RlbCAoRUVNKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTMzNC1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMzNTpjb25maWcgVVNCX0NPTkZJR0ZTX1BIT05FVFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzM2LVx0Ym9vbCBcJiMzNDtQaG9uZXQgcHJvdG9jb2xcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zNDQtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozNDU6Y29uZmlnIFVTQl9DT05GSUdGU19NQVNTX1NUT1JBR0VcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM0Ni1cdGJvb2wgXCYjMzQ7TWFzcyBzdG9yYWdlXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzU1LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzU2OmNvbmZpZyBVU0JfQ09ORklHRlNfRl9MQl9TU1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzU3LVx0Ym9vbCBcJiMzNDtMb29wYmFjayBhbmQgc291cmNlc2luayBmdW5jdGlvbiAoZm9yIHRlc3RpbmcpXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzY4LVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzY5OmNvbmZpZyBVU0JfQ09ORklHRlNfRl9GU1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzcwLVx0Ym9vbCBcJiMzNDtGdW5jdGlvbiBmaWxlc3lzdGVtIChGdW5jdGlvbkZTKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM4MC1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjM4MTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVUFDMVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzgyLVx0Ym9vbCBcJiMzNDtBdWRpbyBDbGFzcyAxLjBcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zOTgtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozOTk6Y29uZmlnIFVTQl9DT05GSUdGU19GX1VBQzFfTEVHQUNZXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MDAtXHRib29sIFwmIzM0O0F1ZGlvIENsYXNzIDEuMCAobGVnYWN5IGltcGxlbWVudGF0aW9uKVwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQxMS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQxMjpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVUFDMlxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDEzLVx0Ym9vbCBcJiMzNDtBdWRpbyBDbGFzcyAyLjBcJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MzAtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0MzE6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JRElcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQzMi1cdGJvb2wgXCYjMzQ7TUlESSBmdW5jdGlvblwmIzM0O1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ0NC1cbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ0NTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ0Ni1cdGJvb2wgXCYjMzQ7TUlESSAyLjAgZnVuY3Rpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NTctXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0NTg6Y29uZmlnIFVTQl9DT05GSUdGU19GX0hJRFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDU5LVx0Ym9vbCBcJiMzNDtISUQgZnVuY3Rpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NjctXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0Njg6Y29uZmlnIFVTQl9DT05GSUdGU19GX1VWQ1xuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDY5LVx0Ym9vbCBcJiMzNDtVU0IgV2ViY2FtIGZ1bmN0aW9uXCYjMzQ7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDgwLVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDgxOmNvbmZpZyBVU0JfQ09ORklHRlNfRl9QUklOVEVSXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00ODItXHRib29sIFwmIzM0O1ByaW50ZXIgZnVuY3Rpb25cJiMzNDtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00OTQtXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0OTU6Y29uZmlnIFVTQl9DT05GSUdGU19GX1RDTVxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDk2LVx0Ym9vbCBcJiMzNDtVU0IgR2FkZ2V0IFRhcmdldCBGYWJyaWNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODEzOQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzIG9uIHRoaXM6CgoqKkNoZWNraW5nIGBVU0JfQ09ORklHRlNgIERlcGVuZGVuY2llcyoqCgpSaWdodCwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBgVVNCX0NPTkZJR0ZTYC4gSSBrbm93IGl0JiMzOTtzIGEga2V5IHBpZWNlIG9mIHRoZSBwdXp6bGUgZm9yIGEgbG90IG9mIFVTQi1yZWxhdGVkIGNvbmZpZ3VyYXRpb25zLCBlc3BlY2lhbGx5IGZvciBtb3JlIGFkdmFuY2VkIG9yIGN1c3RvbSBzZXR1cHMuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHRoZSBzY29wZS4gSSBuZWVkIHRvIGVzdGFibGlzaCBhIGJhc2UgbGF5ZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgZGVwZW5kZW5jaWVzIG9mIGBVU0JfQ09ORklHRlNgLiBXaGF0IG90aGVyIGtlcm5lbCBtb2R1bGVzIG9yIGNvbXBvbmVudHMgZG9lcyBpdCBsZWFuIG9uPyBBcmUgdGhlcmUgc3BlY2lmaWMgZHJpdmVycyBpdCByZXF1aXJlcz8gRG9lcyBpdCByZWx5IG9uIHBhcnRpY3VsYXIgaGFyZHdhcmUgZmVhdHVyZXM/CgpJIG5lZWQgdG8gcXVpY2tseSBhc3Nlc3MgdGhpcywgYmVjYXVzZSB1bmRlcnN0YW5kaW5nIHRoZSB1bmRlcmx5aW5nIGRlcGVuZGVuY2llcyBpcyBhYnNvbHV0ZWx5IGNyaXRpY2FsIGJlZm9yZSBJIGNhbiBldmVuIGNvbnNpZGVyIG1vZGlmeWluZyBpdCwgY29uZmlndXJpbmcgaXQsIG9yIHRyb3VibGVzaG9vdGluZyBhbnkgcG90ZW50aWFsIGlzc3VlcyB3aXRoIGl0LiBLbm93aW5nIHRoZSBkZXBlbmRlbmNpZXMgaGVscHMgbWUgdG8gdW5kZXJzdGFuZCBwb3RlbnRpYWwgZmFpbHVyZSBwb2ludHMgYW5kIHRvIHBsYW4gYSBzeXN0ZW0gY29uZmlndXJhdGlvbiBhcHByb3ByaWF0ZWx5LiBUaGlzIHdpbGwgaGVscCB0byBzdHJlYW1saW5lIGFueSBmdXJ0aGVyIHN0ZXBzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjI4LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDE1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAyMjg6XHRjb25maWcgVVNCX0NPTkZJR0ZTXG4gMjI5Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgR2FkZ2V0IGZ1bmN0aW9ucyBjb25maWd1cmFibGUgdGhyb3VnaCBjb25maWdmc1wmIzM0O1xuIDIzMDpcdFx0c2VsZWN0IFVTQl9MSUJDT01QT1NJVEVcbiAyMzE6XHRcdGhlbHBcbiAyMzI6XHRcdCAgQSBMaW51eCBVU0IgXCYjMzQ7Z2FkZ2V0XCYjMzQ7IGNhbiBiZSBzZXQgdXAgdGhyb3VnaCBjb25maWdmcy5cbiAyMzM6XHRcdCAgSWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhlIFVTQiBmdW5jdGlvbnMgKHdoaWNoIGZyb20gdGhlIGhvc3QmIzM5O3NcbiAyMzQ6XHRcdCAgcGVyc3BlY3RpdmUgYXJlIHNlZW4gYXMgaW50ZXJmYWNlcykgYW5kIGNvbmZpZ3VyYXRpb25zIGFyZVxuIDIzNTpcdFx0ICBzcGVjaWZpZWQgc2ltcGx5IGJ5IGNyZWF0aW5nIGFwcHJvcHJpYXRlIGRpcmVjdG9yaWVzIGluIGNvbmZpZ2ZzLlxuIDIzNjpcdFx0ICBBc3NvY2lhdGluZyBmdW5jdGlvbnMgd2l0aCBjb25maWd1cmF0aW9ucyBpcyBkb25lIGJ5IGNyZWF0aW5nXG4gMjM3Olx0XHQgIGFwcHJvcHJpYXRlIHN5bWJvbGljIGxpbmtzLlxuIDIzODpcdFx0ICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgRG9jdW1lbnRhdGlvbi91c2IvZ2FkZ2V0X2NvbmZpZ2ZzLnJzdC5cbiAyMzk6XHRcbiAyNDA6XHRjb25maWcgVVNCX0NPTkZJR0ZTX1NFUklBTFxuIDI0MTpcdFx0Ym9vbCBcJiMzNDtHZW5lcmljIHNlcmlhbCBidWxrIGluL291dFwmIzM0O1xuIDI0MjpcdFx0ZGVwZW5kcyBvbiBVU0JfQ09ORklHRlNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODYzMQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTmF2aWdhdGluZyB0aGUgVVNCIEdhZGdldCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpIbW0sIHRoaXMgbG9va3MgZmFtaWxpYXIsIGJ1dCBpdCYjMzk7cyBhIGJpdCBvZGQuIEkgZG9uJiMzOTt0IHNlZSBhbnkgZGlyZWN0IGRlcGVuZGVuY3kgb24gYFVTQl9HQURHRVRgIGluIHRoaXMgcGFydGljdWxhciBjb2RlIHNuaXBwZXQuIEhvd2V2ZXIsIHRoZSBjb250ZXh0IGZlZWxzICp2ZXJ5KiByZWxhdGVkIHRvIGl0LCBkb2VzbiYjMzk7dCBpdD8gSXQmIzM5O3MgYWxtb3N0IGNlcnRhaW5seSBuZXN0ZWQgd2l0aGluIHRoZSBgbWVudWNvbmZpZyBVU0JfR0FER0VUYCBzdHJ1Y3R1cmUsIG9yIHBlcmhhcHMgc29tZXRoaW5nIGVxdWFsbHkgc3BlY2lmaWMgd2l0aGluIHRoZSBidWlsZCBzeXN0ZW0uIEnigJltIHRoaW5raW5nIHRoZXJlIG1pZ2h0IGJlIHNvbWUgaW1wbGljaXQgbGlua2luZyBvciBjb25kaXRpb25hbCBjb21waWxhdGlvbiBnb2luZyBvbi4KClRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgYW5kIHRvIHF1aWNrbHkgZ3Jhc3AgdGhlIHN1cnJvdW5kaW5nIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLCBsZXQmIzM5O3MganVzdCBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgYmVzdCBhcHByb2FjaCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnYCBmaWxlIGF0IHRoZSB2ZXJ5IHRvcC4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBhdXRob3JpdGF0aXZlIGRlY2xhcmF0aW9uIG9mIHRoZSBtb2R1bGUmIzM5O3MgcmVsYXRpb25zaGlwIHRvIHRoZSB3aWRlciBVU0IgZ2FkZ2V0IHN1YnN5c3RlbSBhbmQgYWxsIG9mIGl0cyBkZXBlbmRlbmNpZXMuIFRoYXQgZmlsZSBpcyBnb2luZyB0byBtYWtlIGl0IGNyeXN0YWwgY2xlYXIgZXhhY3RseSB3aGF0JiMzOTtzIGdvaW5nIG9uIHdpdGggYWxsIHRoZXNlIG9wdGlvbnMgYW5kIGNvbmRpdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDIwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0I1xuICAgMzpcdCMgVVNCIEdhZGdldCBzdXBwb3J0IG9uIGEgc3lzdGVtIGludm9sdmVzXG4gICA0Olx0IyAgICAoYSkgYSBwZXJpcGhlcmFsIGNvbnRyb2xsZXIsIGFuZFxuICAgNTpcdCMgICAgKGIpIHRoZSBnYWRnZXQgZHJpdmVyIHVzaW5nIGl0LlxuICAgNjpcdCNcbiAgIDc6XHQjIE5PVEU6ICBHYWRnZXQgc3VwcG9ydCAqKiBET0VTIE5PVCAqKiBkZXBlbmQgb24gaG9zdC1zaWRlIENPTkZJR19VU0IgISFcbiAgIDg6XHQjXG4gICA5Olx0IyAgLSBIb3N0IHN5c3RlbXMgKGxpa2UgUENzKSBuZWVkIENPTkZJR19VU0IgKHdpdGggXCYjMzQ7QVwmIzM0OyBqYWNrcykuXG4gIDEwOlx0IyAgLSBQZXJpcGhlcmFscyAobGlrZSBQREFzKSBuZWVkIENPTkZJR19VU0JfR0FER0VUICh3aXRoIFwmIzM0O0JcJiMzNDsgamFja3MpLlxuICAxMTpcdCMgIC0gU29tZSBzeXN0ZW1zIGhhdmUgYm90aCBraW5kcyBvZiBjb250cm9sbGVycy5cbiAgMTI6XHQjXG4gIDEzOlx0IyBXaXRoIGhlbHAgZnJvbSBhIHNwZWNpYWwgdHJhbnNjZWl2ZXIgYW5kIGEgXCYjMzQ7TWluaS1BQlwmIzM0OyBqYWNrLCBzeXN0ZW1zIHdpdGhcbiAgMTQ6XHQjIGJvdGgga2luZHMgb2YgY29udHJvbGxlciBjYW4gYWxzbyBzdXBwb3J0IFwmIzM0O1VTQiBPbi10aGUtR29cJiMzNDsgKENPTkZJR19VU0JfT1RHKS5cbiAgMTU6XHQjXG4gIDE2Olx0XG4gIDE3Olx0bWVudWNvbmZpZyBVU0JfR0FER0VUXG4gIDE4Olx0XHR0cmlzdGF0ZSBcJiMzNDtVU0IgR2FkZ2V0IFN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdHNlbGVjdCBVU0JfQ09NTU9OXG4gIDIwOlx0XHRzZWxlY3QgTkxTXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDkyNTUKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBDb25maWd1cmF0aW9uIFF1ZXN0KioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUsIHRvIGdldCB0aGlzIHNldHVwIHdvcmtpbmcsIEkmIzM5O20gdGhpbmtpbmcgSSYjMzk7bGwgbmVlZCBgVVNCX0dBREdFVGAsIGRlZmluaXRlbHksIGFsb25nIHdpdGggYFVTQl9DT05GSUdGU2AgZm9yIHRoZSBmbGV4aWJpbGl0eS4gQW5kIHNpbmNlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYXVkaW8sIGBTTkRgIHNlZW1zIGNydWNpYWwuIEFoLCBhbmQgaGVyZSB3ZSBhcmUsIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgdGhlIG1hZ2ljIGJ1dHRvbiBmb3IgdGhlIE1JREkgMi4wIGNvbmZpZ3VyYXRpb24uIE5vdywgYSBsaXR0bGUgbWVudGFsIGNoZWNrOiBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIHNlZW1zIHRvIGJyaW5nIGluIGBVU0JfRl9NSURJMmAuIEdvb2QuIEJ1dCBiZWZvcmUgSSBnZXQgdG9vIGZhciBkb3duIHRoaXMgcm9hZCwgSSBzaG91bGQganVzdCBxdWlja2x5IGRvdWJsZSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHN1cHBvcnRpbmcgbW9kdWxlcyBvciBkZXBlbmRlbmNpZXMgdGhhdCBgVVNCX0ZfTUlESTJgIHB1bGxzIGluLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gY29uZmlndXJpbmcgYSBzeXN0ZW0hIEkgbmVlZCBhIGNsZWFuIGFuZCBzdGFibGUgYnVpbGQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDIwMDpcdFx0dHJpc3RhdGVcbiAyMDE6XHRcbiAyMDI6XHRjb25maWcgVVNCX0ZfVUFDMlxuIDIwMzpcdFx0dHJpc3RhdGVcbiAyMDQ6XHRcbiAyMDU6XHRjb25maWcgVVNCX0ZfVVZDXG4gMjA2Olx0XHR0cmlzdGF0ZVxuIDIwNzpcdFx0c2VsZWN0IFVWQ19DT01NT05cbiAyMDg6XHRcbiAyMDk6XHRjb25maWcgVVNCX0ZfTUlESVxuIDIxMDpcdFx0dHJpc3RhdGVcbiAyMTE6XHRcbiAyMTI6XHRjb25maWcgVVNCX0ZfTUlESTJcbiAyMTM6XHRcdHRyaXN0YXRlXG4gMjE0Olx0XHRzZWxlY3QgU05EX1VNUFxuIDIxNTpcdFx0c2VsZWN0IFNORF9VTVBfTEVHQUNZX1JBV01JRElcbiAyMTY6XHRcbiAyMTc6XHRjb25maWcgVVNCX0ZfSElEXG4gMjE4Olx0XHR0cmlzdGF0ZVxuIDIxOTpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NzcwCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogNTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgS2NvbmZpZyBBdWRpdCBUcmFpbCoqCgpPa2F5LCBzbyBJJiMzOTttIHNlZWluZyBgVVNCX0ZfTUlESTJgIHRyaWdnZXJpbmcgYm90aCBgU05EX1VNUGAgYW5kIGBTTkRfVU1QX0xFR0FDWV9SQVdNSURJYC4gUmlnaHQsIHRoYXQgbWFrZXMgc2Vuc2UgZm9yIHRoZSBtb2Rlcm4gTUlESSAyLjAgc3R1ZmYsIGFuZCB0aGUgbGVnYWN5IHJhdyBNSURJIHN1cHBvcnQuIEJ1dCBoYW5nIG9uLi4uIGl0IGFsc28gc2VlbXMgbGlrZSBgU05EYCBpcyBhIGRlcGVuZGVuY3kgaGVyZSwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEkgbmVlZCB0byBjb25maXJtIHRoYXQuIExldCBtZSBxdWlja2x5IGp1bXAgb3ZlciB0byBgc291bmQvS2NvbmZpZ2AgYW5kIHRha2UgYSBsb29rIGF0IHRoZSBhdWRpbyBjb3JlIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgU05EYCBpcyBpbmRlZWQgYmVpbmcgYnJvdWdodCBpbiBieSB0aGlzIHNlbGVjdGlvbiwgYW5kIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBmdWxseS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNORCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3NvdW5kLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNTI4NCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuc291bmQvS2NvbmZpZz00MD1zb3VyY2UgXCYjMzQ7c291bmQvb3NzL2RtYXNvdW5kL0tjb25maWdcJiMzNDtcbnNvdW5kL0tjb25maWctNDEtXG5zb3VuZC9LY29uZmlnOjQyOm1lbnVjb25maWcgU05EXG5zb3VuZC9LY29uZmlnLTQzLVx0dHJpc3RhdGUgXCYjMzQ7QWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlXCYjMzQ7XG4tLVxuc291bmQvYW9hL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbnNvdW5kL2FvYS9LY29uZmlnOjI6bWVudWNvbmZpZyBTTkRfQU9BXG5zb3VuZC9hb2EvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXBwbGUgT25ib2FyZCBBdWRpbyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZzoyOmNvbmZpZyBTTkRfQU9BX09OWVhcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7c3VwcG9ydCBPbnl4IGNoaXBcJiMzNDtcbi0tXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWctMTAtXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWc6MTE6Y29uZmlnIFNORF9BT0FfVEFTXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWctMTItXHR0cmlzdGF0ZSBcJiMzNDtzdXBwb3J0IFRBUyBjaGlwc1wmIzM0O1xuLS1cbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0xOS1cbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZzoyMDpjb25maWcgU05EX0FPQV9UT09OSUVcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O3N1cHBvcnQgVG9vbmllIGNoaXBcJiMzNDtcbi0tXG5zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnOjI6Y29uZmlnIFNORF9BT0FfRkFCUklDX0xBWU9VVFxuc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7bGF5b3V0LWlkIGZhYnJpY1wmIzM0O1xuLS1cbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZzoyOmNvbmZpZyBTTkRfQU9BX1NPVU5EQlVTXG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7QXBwbGUgU291bmRidXMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEwLVxuc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWc6MTE6Y29uZmlnIFNORF9BT0FfU09VTkRCVVNfSTJTXG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZy0xMi1cdHRyaXN0YXRlIFwmIzM0O0kyUyBidXMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2FybS9LY29uZmlnLTMtXG5zb3VuZC9hcm0vS2NvbmZpZzo0Om1lbnVjb25maWcgU05EX0FSTVxuc291bmQvYXJtL0tjb25maWctNS1cdGJvb2wgXCYjMzQ7QVJNIHNvdW5kIGRldmljZXNcJiMzNDtcbi0tXG5zb3VuZC9hcm0vS2NvbmZpZz0xMz1pZiBTTkRfQVJNXG5zb3VuZC9hcm0vS2NvbmZpZy0xNC1cbnNvdW5kL2FybS9LY29uZmlnOjE1OmNvbmZpZyBTTkRfQVJNQUFDSVxuc291bmQvYXJtL0tjb25maWctMTYtXHR0cmlzdGF0ZSBcJiMzNDtBUk0gUHJpbWVDZWxsIFBMMDQxIEFDIExpbmsgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2F0bWVsL0tjb25maWc9Mj1tZW51IFwmIzM0O0F0bWVsIGRldmljZXMgKEFUOTEpXCYjMzQ7XG4tLVxuc291bmQvYXRtZWwvS2NvbmZpZy00LVxuc291bmQvYXRtZWwvS2NvbmZpZzo1OmNvbmZpZyBTTkRfQVRNRUxfQUM5N0NcbnNvdW5kL2F0bWVsL0tjb25maWctNi1cdHRyaXN0YXRlIFwmIzM0O0F0bWVsIEFDOTcgQ29udHJvbGxlciAoQUM5N0MpIGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0yLSMgQUxTQSBzb3VuZGNhcmQtY29uZmlndXJhdGlvblxuc291bmQvY29yZS9LY29uZmlnOjM6Y29uZmlnIFNORF9USU1FUlxuc291bmQvY29yZS9LY29uZmlnLTQtXHR0cmlzdGF0ZVxuc291bmQvY29yZS9LY29uZmlnLTUtXG5zb3VuZC9jb3JlL0tjb25maWc6Njpjb25maWcgU05EX1BDTVxuc291bmQvY29yZS9LY29uZmlnLTctXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy05LVxuc291bmQvY29yZS9LY29uZmlnOjEwOmNvbmZpZyBTTkRfUENNX0VMRFxuc291bmQvY29yZS9LY29uZmlnLTExLVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTEyLVxuc291bmQvY29yZS9LY29uZmlnOjEzOmNvbmZpZyBTTkRfUENNX0lFQzk1OFxuc291bmQvY29yZS9LY29uZmlnLTE0LVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTE1LVxuc291bmQvY29yZS9LY29uZmlnOjE2OmNvbmZpZyBTTkRfRE1BRU5HSU5FX1BDTVxuc291bmQvY29yZS9LY29uZmlnLTE3LVx0dHJpc3RhdGVcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTpjb25maWcgU05EX0hXREVQXG5zb3VuZC9jb3JlL0tjb25maWctMjAtXHR0cmlzdGF0ZVxuc291bmQvY29yZS9LY29uZmlnLTIxLVxuc291bmQvY29yZS9LY29uZmlnOjIyOmNvbmZpZyBTTkRfU0VRX0RFVklDRVxuc291bmQvY29yZS9LY29uZmlnLTIzLVx0dHJpc3RhdGVcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNTpjb25maWcgU05EX1JBV01JRElcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNi1cdHRyaXN0YXRlXG4tLVxuc291bmQvY29yZS9LY29uZmlnLTI4LVxuc291bmQvY29yZS9LY29uZmlnOjI5OmNvbmZpZyBTTkRfVU1QXG5zb3VuZC9jb3JlL0tjb25maWctMzAtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0zMi1cbnNvdW5kL2NvcmUvS2NvbmZpZzozMzpjb25maWcgU05EX1VNUF9MRUdBQ1lfUkFXTUlESVxuc291bmQvY29yZS9LY29uZmlnLTM0LVx0Ym9vbCBcJiMzNDtMZWdhY3kgcmF3IE1JREkgc3VwcG9ydCBmb3IgVU1QIHN0cmVhbXNcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctNDEtXG5zb3VuZC9jb3JlL0tjb25maWc6NDI6Y29uZmlnIFNORF9DT1JFX1RFU1RcbnNvdW5kL2NvcmUvS2NvbmZpZy00My1cdHRyaXN0YXRlIFwmIzM0O1NvdW5kIGNvcmUgS1VuaXQgdGVzdFwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy01OC1cbnNvdW5kL2NvcmUvS2NvbmZpZzo1OTpjb25maWcgU05EX0NPTVBSRVNTX09GRkxPQURcbnNvdW5kL2NvcmUvS2NvbmZpZy02MC1cdHRyaXN0YXRlXG5zb3VuZC9jb3JlL0tjb25maWctNjEtXG5zb3VuZC9jb3JlL0tjb25maWc6NjI6Y29uZmlnIFNORF9DT01QUkVTU19BQ0NFTFxuc291bmQvY29yZS9LY29uZmlnLTYzLVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTY0LVxuc291bmQvY29yZS9LY29uZmlnOjY1OmNvbmZpZyBTTkRfSkFDS1xuc291bmQvY29yZS9LY29uZmlnLTY2LVx0Ym9vbFxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy02OC0jIGVuYWJsZSBpbnB1dCBkZXZpY2Ugc3VwcG9ydCBpbiBqYWNrIGxheWVyXG5zb3VuZC9jb3JlL0tjb25maWc6Njk6Y29uZmlnIFNORF9KQUNLX0lOUFVUX0RFVlxuc291bmQvY29yZS9LY29uZmlnLTcwLVx0Ym9vbFxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy03My1cbnNvdW5kL2NvcmUvS2NvbmZpZzo3NDpjb25maWcgU05EX09TU0VNVUxcbnNvdW5kL2NvcmUvS2NvbmZpZy03NS1cdGJvb2wgXCYjMzQ7RW5hYmxlIE9TUyBFbXVsYXRpb25cJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctNzktXG5zb3VuZC9jb3JlL0tjb25maWc6ODA6Y29uZmlnIFNORF9NSVhFUl9PU1NcbnNvdW5kL2NvcmUvS2NvbmZpZy04MS1cdHRyaXN0YXRlIFwmIzM0O09TUyBNaXhlciBBUElcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctOTEtXG5zb3VuZC9jb3JlL0tjb25maWc6OTI6Y29uZmlnIFNORF9QQ01fT1NTXG5zb3VuZC9jb3JlL0tjb25maWctOTMtXHR0cmlzdGF0ZSBcJiMzNDtPU1MgUENNIChkaWdpdGFsIGF1ZGlvKSBBUElcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMTA0LVxuc291bmQvY29yZS9LY29uZmlnOjEwNTpjb25maWcgU05EX1BDTV9PU1NfUExVR0lOU1xuc291bmQvY29yZS9LY29uZmlnLTEwNi1cdGJvb2wgXCYjMzQ7T1NTIFBDTSAoZGlnaXRhbCBhdWRpbykgQVBJIC0gSW5jbHVkZSBwbHVnaW4gc3lzdGVtXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTExMy1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxMTQ6Y29uZmlnIFNORF9QQ01fVElNRVJcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMTUtXHRib29sIFwmIzM0O1BDTSB0aW1lciBpbnRlcmZhY2VcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvY29yZS9LY29uZmlnLTEyNC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIFNORF9IUlRJTUVSXG5zb3VuZC9jb3JlL0tjb25maWctMTI2LVx0dHJpc3RhdGUgXCYjMzQ7SFItdGltZXIgYmFja2VuZCBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTEzNi1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIFNORF9EWU5BTUlDX01JTk9SU1xuc291bmQvY29yZS9LY29uZmlnLTEzOC1cdGJvb2wgXCYjMzQ7RHluYW1pYyBkZXZpY2UgZmlsZSBtaW5vciBudW1iZXJzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTE0Ni1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxNDc6Y29uZmlnIFNORF9NQVhfQ0FSRFNcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNDgtXHRpbnQgXCYjMzQ7TWF4IG51bWJlciBvZiBzb3VuZCBjYXJkc1wmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0xNTUtXG5zb3VuZC9jb3JlL0tjb25maWc6MTU2OmNvbmZpZyBTTkRfU1VQUE9SVF9PTERfQVBJXG5zb3VuZC9jb3JlL0tjb25maWctMTU3LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IG9sZCBBTFNBIEFQSVwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0xNjItXG5zb3VuZC9jb3JlL0tjb25maWc6MTYzOmNvbmZpZyBTTkRfUFJPQ19GU1xuc291bmQvY29yZS9LY29uZmlnLTE2NC1cdGJvb2wgXCYjMzQ7U291bmQgUHJvYyBGUyBTdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0xNzEtXG5zb3VuZC9jb3JlL0tjb25maWc6MTcyOmNvbmZpZyBTTkRfVkVSQk9TRV9QUk9DRlNcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNzMtXHRib29sIFwmIzM0O1ZlcmJvc2UgcHJvY2ZzIGNvbnRlbnRzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTE4MC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxODE6Y29uZmlnIFNORF9DVExfRkFTVF9MT09LVVBcbnNvdW5kL2NvcmUvS2NvbmZpZy0xODItXHRib29sIFwmIzM0O0Zhc3QgbG9va3VwIG9mIGNvbnRyb2wgZWxlbWVudHNcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvY29yZS9LY29uZmlnLTE5MC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTE6Y29uZmlnIFNORF9ERUJVR1xuc291bmQvY29yZS9LY29uZmlnLTE5Mi1cdGJvb2wgXCYjMzQ7RGVidWdcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMTk1LVxuc291bmQvY29yZS9LY29uZmlnOjE5Njpjb25maWcgU05EX0RFQlVHX1ZFUkJPU0VcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOTctXHRib29sIFwmIzM0O01vcmUgdmVyYm9zZSBkZWJ1Z1wmIzM0O1xuLS1cbnNvdW5kL2NvcmUvS2NvbmZpZy0yMDQtXG5zb3VuZC9jb3JlL0tjb25maWc6MjA1OmNvbmZpZyBTTkRfUENNX1hSVU5fREVCVUdcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMDYtXHRib29sIFwmIzM0O0VuYWJsZSBQQ00gcmluZyBidWZmZXIgb3ZlcnJ1bi91bmRlcnJ1biBkZWJ1Z2dpbmdcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMjE0LVxuc291bmQvY29yZS9LY29uZmlnOjIxNTpjb25maWcgU05EX0NUTF9JTlBVVF9WQUxJREFUSU9OXG5zb3VuZC9jb3JlL0tjb25maWctMjE2LVx0Ym9vbCBcJiMzNDtWYWxpZGF0ZSBpbnB1dCBkYXRhIHRvIGNvbnRyb2wgQVBJXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTIyNC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyMjU6Y29uZmlnIFNORF9DVExfREVCVUdcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMjYtXHRib29sIFwmIzM0O0VuYWJsZSBkZWJ1Z2dpbmcgZmVhdHVyZSBmb3IgY29udHJvbCBBUElcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMjM4LVxuc291bmQvY29yZS9LY29uZmlnOjIzOTpjb25maWcgU05EX0pBQ0tfSU5KRUNUSU9OX0RFQlVHXG5zb3VuZC9jb3JlL0tjb25maWctMjQwLVx0Ym9vbCBcJiMzNDtTb3VuZCBqYWNrIGluamVjdGlvbiBpbnRlcmZhY2UgdmlhIGRlYnVnZnNcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL0tjb25maWctMjQ3LVxuc291bmQvY29yZS9LY29uZmlnOjI0ODpjb25maWcgU05EX1VUSU1FUlxuc291bmQvY29yZS9LY29uZmlnLTI0OS1cdGJvb2wgXCYjMzQ7RW5hYmxlIHN1cHBvcnQgZm9yIHVzZXJzcGFjZS1jb250cm9sbGVkIHZpcnR1YWwgdGltZXJzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTI1Ny1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNTg6Y29uZmlnIFNORF9WTUFTVEVSXG5zb3VuZC9jb3JlL0tjb25maWctMjU5LVx0Ym9vbFxuc291bmQvY29yZS9LY29uZmlnLTI2MC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNjE6Y29uZmlnIFNORF9ETUFfU0dCVUZcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjItXHRkZWZfYm9vbCB5XG4tLVxuc291bmQvY29yZS9LY29uZmlnLTI2NC1cbnNvdW5kL2NvcmUvS2NvbmZpZzoyNjU6Y29uZmlnIFNORF9DVExfTEVEXG5zb3VuZC9jb3JlL0tjb25maWctMjY2LVx0dHJpc3RhdGVcbi0tXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjI6Y29uZmlnIFNORF9TRVFVRU5DRVJcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1NlcXVlbmNlciBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZz0xND1pZiBTTkRfU0VRVUVOQ0VSXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTE1LVxuc291bmQvY29yZS9zZXEvS2NvbmZpZzoxNjpjb25maWcgU05EX1NFUV9EVU1NWVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy0xNy1cdHRyaXN0YXRlIFwmIzM0O1NlcXVlbmNlciBkdW1teSBjbGllbnRcJiMzNDtcbi0tXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTI4LVxuc291bmQvY29yZS9zZXEvS2NvbmZpZzoyOTpjb25maWcgU05EX1NFUVVFTkNFUl9PU1NcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMzAtXHR0cmlzdGF0ZSBcJiMzNDtPU1MgU2VxdWVuY2VyIEFQSVwmIzM0O1xuLS1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNDEtXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjQyOmNvbmZpZyBTTkRfU0VRX0hSVElNRVJfREVGQVVMVFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy00My1cdGJvb2wgXCYjMzQ7VXNlIEhSLXRpbWVyIGFzIGRlZmF1bHQgc2VxdWVuY2VyIHRpbWVyXCYjMzQ7XG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy00OS1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NTA6Y29uZmlnIFNORF9TRVFfTUlESV9FVkVOVFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01MS1cdHRyaXN0YXRlXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTUyLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1Mzpjb25maWcgU05EX1NFUV9NSURJXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTU0LVx0ZGVmX3RyaXN0YXRlIFNORF9SQVdNSURJXG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01Ni1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NTc6Y29uZmlnIFNORF9TRVFfTUlESV9FTVVMXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTU4LVx0dHJpc3RhdGVcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNTktXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjYwOmNvbmZpZyBTTkRfU0VRX1ZJUk1JRElcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNjEtXHR0cmlzdGF0ZVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy02Mi1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NjM6Y29uZmlnIFNORF9TRVFfVU1QXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTY0LVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBVTVAgZXZlbnRzXCYjMzQ7XG4tLVxuc291bmQvY29yZS9zZXEvS2NvbmZpZy03Mi1cbnNvdW5kL2NvcmUvc2VxL0tjb25maWc6NzM6Y29uZmlnIFNORF9TRVFfVU1QX0NMSUVOVFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy03NC1cdGRlZl90cmlzdGF0ZSBTTkRfVU1QIFx1MDAyNlx1MDAyNiBTTkRfU0VRX1VNUFxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuc291bmQvZHJpdmVycy9LY29uZmlnOjI6Y29uZmlnIFNORF9NUFU0MDFfVUFSVFxuc291bmQvZHJpdmVycy9LY29uZmlnLTMtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy01LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjY6Y29uZmlnIFNORF9PUEwzX0xJQlxuc291bmQvZHJpdmVycy9LY29uZmlnLTctXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxMjpjb25maWcgU05EX09QTDRfTElCXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTMtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xOC0jIHNlbGVjdCBTRVEgc3R1ZmYgdG8gbWluKFNORF9TRVFVRU5DRVIsU05EX1hYWClcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxOTpjb25maWcgU05EX09QTDNfTElCX1NFUVxuc291bmQvZHJpdmVycy9LY29uZmlnLTIwLVx0ZGVmX3RyaXN0YXRlIFNORF9TRVFVRU5DRVIgXHUwMDI2XHUwMDI2IFNORF9PUEwzX0xJQlxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMy1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyNDpjb25maWcgU05EX09QTDRfTElCX1NFUVxuc291bmQvZHJpdmVycy9LY29uZmlnLTI1LVx0ZGVmX3RyaXN0YXRlIFNORF9TRVFVRU5DRVIgXHUwMDI2XHUwMDI2IFNORF9PUEw0X0xJQlxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yOC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyOTpjb25maWcgU05EX1ZYX0xJQlxuc291bmQvZHJpdmVycy9LY29uZmlnLTMwLVx0dHJpc3RhdGVcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMzQtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MzU6Y29uZmlnIFNORF9BQzk3X0NPREVDXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMzYtXHR0cmlzdGF0ZVxuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy00MC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo0MTptZW51Y29uZmlnIFNORF9EUklWRVJTXG5zb3VuZC9kcml2ZXJzL0tjb25maWctNDItXHRib29sIFwmIzM0O0dlbmVyaWMgc291bmQgZGV2aWNlc1wmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZz00Nz1pZiBTTkRfRFJJVkVSU1xuc291bmQvZHJpdmVycy9LY29uZmlnLTQ4LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjQ5OmNvbmZpZyBTTkRfUENTUFxuc291bmQvZHJpdmVycy9LY29uZmlnLTUwLVx0dHJpc3RhdGUgXCYjMzQ7UEMtU3BlYWtlciBzdXBwb3J0IChSRUFEIEhFTFAhKVwmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy03OC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo3OTpjb25maWcgU05EX0RVTU1ZXG5zb3VuZC9kcml2ZXJzL0tjb25maWctODAtXHR0cmlzdGF0ZSBcJiMzNDtEdW1teSAoL2Rldi9udWxsKSBzb3VuZGNhcmRcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctOTEtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6OTI6Y29uZmlnIFNORF9BTE9PUFxuc291bmQvZHJpdmVycy9LY29uZmlnLTkzLVx0dHJpc3RhdGUgXCYjMzQ7R2VuZXJpYyBsb29wYmFjayBkcml2ZXIgKFBDTSlcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTExLVxuc291bmQvZHJpdmVycy9LY29uZmlnOjExMjpjb25maWcgU05EX1BDTVRFU1RcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtWaXJ0dWFsIFBDTSB0ZXN0IGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMjgtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTI5OmNvbmZpZyBTTkRfVklSTUlESVxuc291bmQvZHJpdmVycy9LY29uZmlnLTEzMC1cdHRyaXN0YXRlIFwmIzM0O1ZpcnR1YWwgTUlESSBzb3VuZGNhcmRcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTQ1LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjE0Njpjb25maWcgU05EX01UUEFWXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTQ3LVx0dHJpc3RhdGUgXCYjMzQ7TU9UVSBNaWRpVGltZVBpZWNlIEFWIG11bHRpcG9ydCBNSURJXCYjMzQ7XG4tLVxuc291bmQvZHJpdmVycy9LY29uZmlnLTE1Ny1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxNTg6Y29uZmlnIFNORF9NVFM2NFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE1OS1cdHRyaXN0YXRlIFwmIzM0O0VTSSBNaWRpdGVybWluYWwgNDE0MCBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTcwLVxuc291bmQvZHJpdmVycy9LY29uZmlnOjE3MTpjb25maWcgU05EX1NFUklBTF9VMTY1NTBcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNzItXHR0cmlzdGF0ZSBcJiMzNDtVQVJUMTY1NTAgc2VyaWFsIE1JREkgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvZHJpdmVycy9LY29uZmlnLTE4Ni1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxODc6Y29uZmlnIFNORF9TRVJJQUxfR0VORVJJQ1xuc291bmQvZHJpdmVycy9LY29uZmlnLTE4OC1cdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgc2VyaWFsIE1JREkgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvZHJpdmVycy9LY29uZmlnLTIwNC1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyMDU6Y29uZmlnIFNORF9NUFU0MDFcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMDYtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIE1QVS00MDEgVUFSVCBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjE1LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjIxNjpjb25maWcgU05EX1BPUlRNQU4yWDRcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMTctXHR0cmlzdGF0ZSBcJiMzNDtQb3J0bWFuIDJ4NCBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjI2LVxuc291bmQvZHJpdmVycy9LY29uZmlnOjIyNzpjb25maWcgU05EX0FDOTdfUE9XRVJfU0FWRVxuc291bmQvZHJpdmVycy9LY29uZmlnLTIyOC1cdGJvb2wgXCYjMzQ7QUM5NyBQb3dlci1TYXZpbmcgTW9kZVwmIzM0O1xuLS1cbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yNTUtXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MjU2OmNvbmZpZyBTTkRfQUM5N19QT1dFUl9TQVZFX0RFRkFVTFRcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yNTctXHRpbnQgXCYjMzQ7RGVmYXVsdCB0aW1lLW91dCBmb3IgQUM5NyBwb3dlci1zYXZlIG1vZGVcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjI6bWVudWNvbmZpZyBTTkRfRklSRVdJUkVcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMy1cdGJvb2wgXCYjMzQ7RmlyZVdpcmUgc291bmQgZGV2aWNlc1wmIzM0O1xuLS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc9OT1pZiBTTkRfRklSRVdJUkUgXHUwMDI2XHUwMDI2IEZJUkVXSVJFXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEwLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzoxMTpjb25maWcgU05EX0ZJUkVXSVJFX0xJQlxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xMi1cdHRyaXN0YXRlXG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTY6Y29uZmlnIFNORF9ESUNFXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE3LVx0dHJpc3RhdGUgXCYjMzQ7RElDRS1iYXNlZCBEQUNzIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTQzLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzo0NDpjb25maWcgU05EX09YRldcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNDUtXHR0cmlzdGF0ZSBcJiMzNDtPeGZvcmQgU2VtaWNvbmR1Y3RvciBGVzk3MC85NzEgY2hpcHNldCBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy02Ni1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6Njc6Y29uZmlnIFNORF9JU0lHSFRcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNjgtXHR0cmlzdGF0ZSBcJiMzNDtBcHBsZSBpU2lnaHQgbWljcm9waG9uZVwmIzM0O1xuLS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNzYtXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjc3OmNvbmZpZyBTTkRfRklSRVdPUktTXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTc4LVx0dHJpc3RhdGUgXCYjMzQ7RWNobyBGaXJld29ya3MgYm9hcmQgbW9kdWxlIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTkyLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzo5Mzpjb25maWcgU05EX0JFQk9CXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTk0LVx0dHJpc3RhdGUgXCYjMzQ7QnJpZGdlQ28gRE0xMDAwL0RNMTEwMC9ETTE1MDAgd2l0aCBCZUJvQiBmaXJtd2FyZVwmIzM0O1xuLS1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMTM0LVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzoxMzU6Y29uZmlnIFNORF9GSVJFV0lSRV9ESUdJMDBYXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEzNi1cdHRyaXN0YXRlIFwmIzM0O0RpZ2lkZXNpZ24gRGlnaSAwMDIvMDAzIGZhbWlseSBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNDktXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE1MDpjb25maWcgU05EX0ZJUkVXSVJFX1RBU0NBTVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNTEtXHR0cmlzdGF0ZSBcJiMzNDtUQVNDQU0gRmlyZVdpcmUgc2VyaWVzIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE2Mi1cbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTYzOmNvbmZpZyBTTkRfRklSRVdJUkVfTU9UVVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNjQtXHR0cmlzdGF0ZSBcJiMzNDtNYXJrIG9mIHRoZSB1bmljb3JuIEZpcmVXaXJlIHNlcmllcyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xODktXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE5MDpjb25maWcgU05EX0ZJUkVGQUNFXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE5MS1cdHRyaXN0YXRlIFwmIzM0O1JNRSBGaXJlZmFjZSBzZXJpZXMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0yPWlmIFNORF9IREFcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjQ6Y29uZmlnIFNORF9IREFfR0VORVJJQ19MRURTXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNS0gICAgICAgYm9vbFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYtXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6Nzpjb25maWcgU05EX0hEQV9DT0RFQ19BTkFMT0dcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy04LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQW5hbG9nIERldmljZXMgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0xND1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTE2LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjE3OmNvbmZpZyBTTkRfSERBX0NPREVDX1NJR01BVEVMXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTgtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBJRFQvU2lnbWF0ZWwgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0yNT1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTI3LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjI4OmNvbmZpZyBTTkRfSERBX0NPREVDX1ZJQVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTI5LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgVklBIEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MzU9Y29tbWVudCBcJiMzNDtTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zNy1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzozODpjb25maWcgU05EX0hEQV9DT0RFQ19DT05FWEFOVFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTM5LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQ29uZXhhbnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz00Nj1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTQ4LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjQ5OmNvbmZpZyBTTkRfSERBX0NPREVDX1NFTkFSWVRFQ0hcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy01MC1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIFNlbmFyeXRlY2ggSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz01Nz1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTU5LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjYwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDExMFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYxLVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQ3JlYXRpdmUgQ0EwMTEwLUlCRyBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnPTY3PWNvbW1lbnQgXCYjMzQ7U2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNjktXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6NzA6Y29uZmlnIFNORF9IREFfQ09ERUNfQ0EwMTMyXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNzEtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBDcmVhdGl2ZSBDQTAxMzIgY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz03Nz1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTc5LVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjgwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDEzMl9EU1BcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy04MS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBuZXcgRFNQIGNvZGUgZm9yIENBMDEzMiBjb2RlY1wmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy05Mi1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzo5Mzpjb25maWcgU05EX0hEQV9DT0RFQ19DTUVESUFcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy05NC1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIEMtTWVkaWEgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0xMDA9Y29tbWVudCBcJiMzNDtTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMDItXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTAzOmNvbmZpZyBTTkRfSERBX0NPREVDX0NNOTgyNVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEwNC1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIEMtTWVkaWEgQ005ODI1IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTEwPWNvbW1lbnQgXCYjMzQ7U2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTEyLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjExMzpjb25maWcgU05EX0hEQV9DT0RFQ19TSTMwNTRcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMTQtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBTaWxpY29uIExhYnMgMzA1NCBIRC1tb2RlbSBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnPTExOT1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEyMS1cbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzoxMjI6Y29uZmlnIFNORF9IREFfR0VORVJJQ1xuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEyMy1cdHRyaXN0YXRlIFwmIzM0O0VuYWJsZSBnZW5lcmljIEhELWF1ZGlvIGNvZGVjIHBhcnNlclwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMi1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWc6MzptZW51Y29uZmlnIFNORF9IREFfQ09ERUNfQ0lSUlVTXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTQtXHR0cmlzdGF0ZSBcJiMzNDtDaXJydXMgTG9naWMgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19DSVJSVVNcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMTMtXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX0NTNDIwWFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O0J1aWxkIENpcnJ1cyBMb2dpYyBDUzQyMHggY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnPTIxPWNvbW1lbnQgXCYjMzQ7U2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcJiMzNDtcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTIzLVxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzoyNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzQyMVhcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMjUtXHR0cmlzdGF0ZSBcJiMzNDtCdWlsZCBDaXJydXMgTG9naWMgQ1M0MjF4IGNvZGVjIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0zMT1jb21tZW50IFwmIzM0O1NldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZy0zMy1cbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWc6MzQ6Y29uZmlnIFNORF9IREFfQ09ERUNfQ1M4NDA5XG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTM1LVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgQ2lycnVzIExvZ2ljIEhEQSBicmlkZ2Ugc3VwcG9ydFwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTItXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7SEQtYXVkaW8gSERNSSBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19IRE1JXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0xMy1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX0hETUlfR0VORVJJQ1xuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMTUtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIEhETUkvRGlzcGxheVBvcnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0yNS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjI2OmNvbmZpZyBTTkRfSERBX0NPREVDX0hETUlfU0lNUExFXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0yNy1cdHRyaXN0YXRlIFwmIzM0O1NpbXBsZSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMzItXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzozMzpjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JX0lOVEVMXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy0zNC1cdHRyaXN0YXRlIFwmIzM0O0ludGVsIEhETUkvRGlzcGxheVBvcnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy00MC1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjQxOmNvbmZpZyBTTkRfSERBX0lOVEVMX0hETUlfU0lMRU5UX1NUUkVBTVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNDItXHRib29sIFwmIzM0O0VuYWJsZSBTaWxlbnQgU3RyZWFtIGFsd2F5cyBmb3IgSERNSVwmIzM0O1xuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTU1LVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NTY6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9BVElcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTU3LVx0dHJpc3RhdGUgXCYjMzQ7QU1EL0FUSSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcJiMzNDsgaWYgRVhQRVJUXG4tLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNjMtXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzo2NDpjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JX05WSURJQVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNjUtXHR0cmlzdGF0ZSBcJiMzNDtOdmlkaWEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTcxLVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NzI6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9OVklESUFfTUNQXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy03My1cdHRyaXN0YXRlIFwmIzM0O0xlZ2FjeSBOdmlkaWEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTc5LVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6ODA6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9URUdSQVxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctODEtXHR0cmlzdGF0ZSBcJiMzNDtOdmlkaWEgVGVncmEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7IGlmIEVYUEVSVFxuLS1cbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTItXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19SRUFMVEVLXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy00LVx0dHJpc3RhdGUgXCYjMzQ7UmVhbHRlayBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XCYjMzQ7XG4tLVxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19SRUFMVEVLXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy0xMy1cbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX1JFQUxURUtfTElCXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy0xNS1cdHRyaXN0YXRlXG4tLVxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWctMTktXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZzoyMDpjb25maWcgU05EX0hEQV9DT0RFQ19BTEMyNjBcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTIxLVx0dHJpc3RhdGUgXCYjMzQ7QnVpbGQgUmVhbHRlayBBTEMyNjAgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbi0tXG5zb3VuZC9oZGEvY29kZWNzL3JlYWx0ZWsvS2NvbmZpZy0yNy1cbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjI4OmNvbmZpZyBTTkRfSERBX0NPREVDX0FMQzI2MlxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE4MDE2CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNDk0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQUxTQSBhbmQgVVNCIE1JREkyIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgcHJpbWFyeSBmb2N1cyBpcyB0aGUgQUxTQSBjb25maWd1cmF0aW9uLCBzcGVjaWZpY2FsbHkgYFNORGAuIEkgbmVlZCB0byBlbnN1cmUgaXQmIzM5O3MgZW5hYmxlZCBzaW5jZSBpdCBzZWVtcyB0byBiZSB0aGUgY29yZSBkZXBlbmRlbmN5IGhlcmUuIE9rYXksIGBTTkRgIGlzIHRyaXN0YXRlLCBnb29kLiBOb3csIGxvb2tpbmcgYXQgdGhlIGJpZ2dlciBwaWN0dXJlLCBpdCYjMzk7cyBjbGVhciB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgY2hhaW4gb2YgZGVwZW5kZW5jaWVzOiBgU05EYCwgYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuCgpgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIHNlZW1zIGtleSwgYXMgaXQgc2VsZWN0cyBgVVNCX0ZfTUlESTJgLiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoYXQgc2VsZWN0aW9uIOKAkyBZZXAsIGNvbmZpcm1lZC4gTm93LCBsZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgZGlyZWN0IGRlcGVuZGVuY2llcy4gQWgsIGBVU0JfRl9NSURJMmAgc2VsZWN0cyBgU05EX1VNUGAgYW5kIGBTTkRfVU1QX0xFR0FDWV9SQVdNSURJYC4gQnV0IHNpbmNlIGl0ICpzZWxlY3RzKiB0aGVtLCBpdCBtZWFucyB0aGV5IGRvbiYjMzk7dCBoYXZlIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBpZiBgVVNCX0ZfTUlESTJgIGlzLgoKT2theSwgbGV0IG1lIHJldmlldyB3aGF0IHdlIGhhdmUsIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQgYFNORGAuIFdoaWNoIG1lYW5zIHRvIGhhdmUgaXQsIHdlIG5lZWQ6CgoqICAgYFVTQl9HQURHRVRgCiogICBgVVNCX0NPTkZJR0ZTYAoqICAgYFNORGAKKiAgIGBVU0JfQ09ORklHRlNfRl9NSURJMmAKClRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gbm93IGlzLCBkb2VzIGVuYWJsaW5nIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgY29tcGlsZSB0aGUgYGZfbWlkaTIuY2AgZmlsZT8gTG9va2luZyBhdCB0aGUgYE1ha2VmaWxlYCBpbiB0aGUgZ2FkZ2V0IGZ1bmN0aW9uIGRpcmVjdG9yeTogYG9iai0kKENPTkZJR19VU0JfRl9NSURJMikgJiM0Mzs9IHVzYl9mX21pZGkyLm9gIGFuZCBgdXNiX2ZfbWlkaTIteSA6PSBmX21pZGkyLm9gLiBUaGUgdmFyaWFibGUgaXMsIG9mIGNvdXJzZSwgZGVyaXZlZCBmcm9tIGBVU0JfRl9NSURJMmAgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgYFVTQl9DT05GSUdGU19GX01JREkyYC4gU28geWVzLCBzZXR0aW5nIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZG9lcyBlbnN1cmUgdGhlIGNvbXBpbGF0aW9uIG9mIGBmX21pZGkyLmNgLgoKTGV0JiMzOTtzIHNoaWZ0IGZvY3VzIHRvIHRoZSBhY3R1YWwgY29kZSBub3cgYW5kIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGlzIGFsbCBhYm91dC4gVGhpcyBwYXRjaCBtb2RpZmllcyBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBhbmQgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYC4gVGhlc2UgYXJlIHN0YXRpYyBmdW5jdGlvbnMsIHNvIHByb2JhYmx5IGludGVybmFsIHRvIHRoZSBtb2R1bGUsIGFuZCB0aGV5IGFyZSBjYWxsZWQgZnJvbSBgZl9taWRpMl9zdGFydF9lcHNgIGFuZCBgZl9taWRpMl9zdG9wX2Vwc2AuIExldCYjMzk7cyBjb25maXJtIHRoYXQgYnkgY2hlY2tpbmcgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYC4gT2theSwgdGhhdCYjMzk7cyB0aGUgbGlrZWx5IGNhbGwgY2hhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfZnJlZV9lcF9yZXFzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExMzg9c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYwLS8qIEZyZWUgYWxsb2NhdGVkIHJlcXVlc3RzICovXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExNjE6c3RhdGljIHZvaWQgZl9taWRpMl9mcmVlX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTExNjIte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIwMz1zdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjA2LVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjA3Olx0Zl9taWRpMl9mcmVlX2VwX3JlcXModXNiX2VwKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIwOC1cbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyMzk9c3RhdGljIHZvaWQgZl9taWRpMl9zdG9wX2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0My1cdGZfbWlkaTJfZHJvcF9yZXFzKGVwX291dCk7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDQ6XHRmX21pZGkyX2ZyZWVfZXBfcmVxcyhlcF9pbik7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDU6XHRmX21pZGkyX2ZyZWVfZXBfcmVxcyhlcF9vdXQpO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ2LX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk2MTUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2YgdGhpcy4KCioqVHJhY2luZyBNSURJIEVuZHBvaW50IE1hbmFnZW1lbnQqKgoKQWxyaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBNSURJIGRyaXZlciYjMzk7cyBlbmRwb2ludCAoRVApIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBTcGVjaWZpY2FsbHksIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2Agc2VlbXMgdG8gYmUgdGhlIGNydWNpYWwgY2xlYW51cCBmdW5jdGlvbiBjYWxsZWQgZnJvbSBib3RoIGBmX21pZGkyX2ZyZWVfZXBgIGFuZCBgZl9taWRpMl9zdG9wX2Vwc2AuICBJIGtub3cgdGhvc2UgYXJlIHRoZSB0d28gcHJpbWFyeSBwYXRod2F5cyB0byBkZWFsbG9jYXRlIHJlc291cmNlcy4gT24gdGhlIGZsaXAgc2lkZSwgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgaXMgaXRzIGNvdW50ZXJwYXJ0IOKAkyB0aGUgYWxsb2NhdGlvbiBmdW5jdGlvbiDigJMgYW5kIGl0JiMzOTtzIGNhbGxlZCBleGNsdXNpdmVseSBmcm9tIGBmX21pZGkyX3N0YXJ0X2Vwc2AsIHdoaWNoIG1ha2VzIHBlcmZlY3Qgc2Vuc2UuIEdpdmVuIHRoYXQsIHRyYWNpbmcgYGZfbWlkaTJfc3RhcnRfZXBzYCBhbmQgYGZfbWlkaTJfc3RvcF9lcHNgIHNlZW1zIGxpa2UgdGhlIGJlc3QgYXBwcm9hY2ggdG8gdW5kZXJzdGFuZCB0aGUgcmVzb3VyY2UgbGlmZWN5Y2xlIGZvciB0aGUgZW5kcG9pbnRzLiBVbmRlcnN0YW5kaW5nIHRoZXNlIGZ1bmN0aW9ucyBpbiBkZXRhaWwgd2lsbCByZXZlYWwgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBNSURJIGVuZHBvaW50IGFsbG9jYXRpb24sIGRlYWxsb2NhdGlvbiwgYW5kIHN0YXRlIHRyYW5zaXRpb25zLCB3aGljaCBpcyBrZXkuIEkmIzM5O2xsIGZvY3VzIG9uIHdoYXQgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgaW4gdGhlIHN0YXJ0IGZ1bmN0aW9uLCBhbmQgaG93IHRob3NlIHNhbWUgcmVzb3VyY2VzIGFyZSBmcmVlZCBpbiB0aGUgc3RvcCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Zl9taWRpMl9zdGFydF9lcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIzOT1zdGF0aWMgdm9pZCBmX21pZGkyX3N0b3BfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ4LS8qIHN0YXJ0L3F1ZXVlIGJvdGggSU4gYW5kIE9VVCBFUHMgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI0OTpzdGF0aWMgaW50IGZfbWlkaTJfc3RhcnRfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNTAtXHRcdFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dCxcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyNzQ9c3RhdGljIGludCBmX21pZGkyX3NldF9hbHQoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4sIHVuc2lnbmVkIGludCBpbnRmLFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwNC1cdGlmIChvcF9tb2RlID09IE1JRElfT1BfTU9ERV9NSURJMSlcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTMwNTpcdFx0cmV0dXJuIGZfbWlkaTJfc3RhcnRfZXBzKFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX2luLFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzA2LVx0XHRcdFx0XHQgXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfb3V0LCBmbik7XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzExLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzEyOlx0XHRcdGVyciA9IGZfbWlkaTJfc3RhcnRfZXBzKFx1MDAyNmVwLVx1MDAzZWVwX2luLCBcdTAwMjZlcC1cdTAwM2VlcF9vdXQsIGZuKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMxMy1cdFx0XHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQzMQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqRW5kcG9pbnQgSW5pdGlhbGl6YXRpb24gYW5kIFRlcm1pbmF0aW9uKioKCkFscmlnaHQsIHNvIGBmX21pZGkyX3NldF9hbHRgIGlzIHRoZSBkZXNpZ25hdGVkIHN0YXJ0aW5nIHBvaW50IGZvciBicmluZ2luZyB0aGUgTUlESSBlbmRwb2ludHMgb25saW5lLiBUaGF0JiMzOTtzIHRoZSBlbnRyeSBJJiMzOTtkIGV4cGVjdCB0byBzZWUuIE5vdywgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBsaWZlY3ljbGUsIGl0JiMzOTtzIG5hdHVyYWwgdG8gdHVybiBteSBhdHRlbnRpb24gdG8gdGhlIHRlcm1pbmF0aW9uIHNpZGUgb2YgdGhpbmdzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgdW5kZXJzdGFuZCB0aGUgc2h1dGRvd24gcHJvY2VzcyBjb21wbGV0ZWx5LiBMZXQmIzM5O3MgZGVsdmUgaW50byBgZl9taWRpMl9zdG9wX2Vwc2AgYW5kIHRyYWNlIGl0cyBiZWhhdmlvci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBlbmRwb2ludHMgYXJlIGNvcnJlY3RseSBzaHV0IGRvd24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfc3RvcF9lcHMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIxNj1zdGF0aWMgdm9pZCBmX21pZGkyX3F1ZXVlX291dF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIzOC0vKiBzdG9wIGJvdGggSU4gYW5kIE9VVCBFUHMgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIzOTpzdGF0aWMgdm9pZCBmX21pZGkyX3N0b3BfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDAtXHRcdFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyNzQ9c3RhdGljIGludCBmX21pZGkyX3NldF9hbHQoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4sIHVuc2lnbmVkIGludCBpbnRmLFxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI5NC1cdGlmIChvcF9tb2RlICE9IE1JRElfT1BfTU9ERV9NSURJMSlcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI5NTpcdFx0Zl9taWRpMl9zdG9wX2VwcyhcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMV9lcF9pbiwgXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI5Ni1cbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTktXHRcdFx0ZXAgPSBcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMl9lcHNbaV07XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMDA6XHRcdFx0Zl9taWRpMl9zdG9wX2VwcyhcdTAwMjZlcC1cdTAwM2VlcF9pbiwgXHUwMDI2ZXAtXHUwMDNlZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwMS1cdFx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTA5MQoJCQkJCQkJb3V0cHV0OiA0MwoJCQkJCQkJdGhvdWdodHM6IDM5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipBbmFseXppbmcgRW50cnkgUG9pbnRzIGluIE1JREkyIENvZGUqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW4uIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgc2VlbXMgdG8gYmUgcm9vdGVkIGluIGBmX21pZGkyX3NldF9hbHRgIOKAkyB0aGF0JiMzOTtzIHRoZSBtYWluIGVudHJ5IHBvaW50LCB0aGUgb25lIHRoYXQga2lja3MgZXZlcnl0aGluZyBvZmYuIE5vdywgYmVmb3JlIEkgcHJvY2VlZCB3aXRoIGFueSBkZWVwIGFuYWx5c2lzLCBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O3ZlIGdvdCBhIGNvbXByZWhlbnNpdmUgcGljdHVyZSBvZiB0aGUgZnVuY3Rpb24gY2FsbHMuIEkgc2hvdWxkIHRob3JvdWdobHkgaW52ZXN0aWdhdGUgaWYgdGhlcmUgYXJlIG90aGVyIGFjY2VzcyBwb2ludHMuIEkgc2hvdWxkIHNlZSBpZiBvdGhlciBmdW5jdGlvbnMgY291bGQgcG90ZW50aWFsbHkgaW50ZXJhY3Qgd2l0aCBgZl9taWRpMl9mcmVlX2VwYCwgYXMgdGhlIGNvbXBsZW1lbnRhcnkgZnVuY3Rpb25hbGl0eSB0byBgZl9taWRpMl9zZXRfYWx0YC4gS2VlcGluZyBhbiBleGhhdXN0aXZlIG1hcHBpbmcgb2YgZW50cnlwb2ludHMgdG8gdGhpcyBmdW5jdGlvbiBhbGxvd3MgbWUgdG8gaGF2ZSBiZXR0ZXIgY29udHJvbCBvbiB0aGlzIHBhcnQgb2YgdGhlIGNvZGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfZnJlZV9lcCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTM4PXN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTE2MC0vKiBGcmVlIGFsbG9jYXRlZCByZXF1ZXN0cyAqL1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMTYxOnN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYyLXtcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExNzQ9c3RhdGljIGludCBmX21pZGkyX2luaXRfZXAoc3RydWN0IGZfbWlkaTIgKm1pZGkyLCBzdHJ1Y3QgZl9taWRpMl9lcCAqZXAsXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjAyLS8qIEZyZWUgRVAgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIwMzpzdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDQte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIwNi1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIwNzpcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKHVzYl9lcCk7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDgtXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDMtXHRmX21pZGkyX2Ryb3BfcmVxcyhlcF9vdXQpO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ0Olx0Zl9taWRpMl9mcmVlX2VwX3JlcXMoZXBfaW4pO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ1Olx0Zl9taWRpMl9mcmVlX2VwX3JlcXMoZXBfb3V0KTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0Ni19XG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0yMDU3PXN0YXRpYyB2b2lkIGZfbWlkaTJfdW5iaW5kKHN0cnVjdCB1c2JfY29uZmlndXJhdGlvbiAqYywgc3RydWN0IHVzYl9mdW5jdGlvbiAqZilcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTIwNjMtXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjIwNjQ6XHRmX21pZGkyX2ZyZWVfZXAoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfaW4pO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyMDY1Olx0Zl9taWRpMl9mcmVlX2VwKFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX291dCk7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTIwNjYtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBtaWRpMi1cdTAwM2VudW1fZXBzOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyMDY3Olx0XHRmX21pZGkyX2ZyZWVfZXAoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTJfZXBzW2ldLmVwX2luKTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2ODpcdFx0Zl9taWRpMl9mcmVlX2VwKFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkyX2Vwc1tpXS5lcF9vdXQpO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yMDY5LVx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjI0MwoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDE5NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1JREkgR2FkZ2V0IERyaXZlciBFbnRyeSBQb2ludHMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgTUlESSBnYWRnZXQgZHJpdmVyIGNvZGUuIEl0IHNlZW1zIGxpa2UgdGhlIGNvcmUgZnVuY3Rpb25zIEkgbmVlZCB0byB1bmRlcnN0YW5kIGFyZSBgZl9taWRpMl91bmJpbmRgIGFuZCBgZl9taWRpMl9zZXRfYWx0YC4gU3BlY2lmaWNhbGx5LCBgZl9taWRpMl91bmJpbmRgIGRpcmVjdGx5IGNhbGxzIGBmX21pZGkyX2ZyZWVfZXBgLCB3aGljaCBpcyBpbnRlcmVzdGluZy4gVGhlbiwgYGZfbWlkaTJfc2V0X2FsdGAgaXMgYSBiaXQgbW9yZSBpbnZvbHZlZDsgaXQmIzM5O3MgY2FsbGluZyBib3RoIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gU3RhbmRhcmQgVVNCIGdhZGdldCBmdW5jdGlvbiBjYWxsYmFja3MsIGFzIGV4cGVjdGVkLgoKTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gY2hlY2sgaWYgYW55IG90aGVyIGVudHJ5IHBvaW50cyBtaWdodCB0cmlnZ2VyIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIG9yIHJlbGF0ZWQgZnVuY3Rpb25zIHRoYXQgbWlnaHQgYmUgb2YgaW50ZXJlc3QuIEl0IGxvb2tzIGxpa2UgdGhlIG9ubHkgZnVuY3Rpb24gdGhhdCBkb2VzIHRoYXQgaXMgYGZfbWlkaTJfc3RhcnRfZXBzYCwgYW5kIHRoYXQgb25lIGlzIG9ubHkgY2FsbGVkIGJ5IGBmX21pZGkyX3NldF9hbHRgLiBTbywgYGZfbWlkaTJfc2V0X2FsdGAgcmVhbGx5IHNlZW1zIGxpa2UgdGhlIGtleSBmdW5jdGlvbiBoZXJlIHRvIGFuYWx5emUgaW4gbW9yZSBkZXB0aC4KCkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgZl9taWRpMl9iaW5kYCBhcyB3ZWxsLiBQZXJoYXBzIGl0IGluaXRpYWxpemVzIHRoZSBlbmRwb2ludHMgb3IgY2FsbHMgYGZfbWlkaTJfaW5pdF9lcGAgaW4gc29tZSB3YXkuIEdvdHRhIG1ha2Ugc3VyZSBJIGRvbiYjMzk7dCBtaXNzIGFueXRoaW5nIG9idmlvdXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfYmluZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xOTExPXN0YXRpYyBpbnQgZl9taWRpMl9pbml0X21pZGkyX2VwX291dChzdHJ1Y3QgZl9taWRpMiAqbWlkaTIsIGludCBpbmRleClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE5MjctLyogZ2FkZ2V0IGZ1bmN0aW9uIGJpbmQgY2FsbGJhY2sgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTkyODpzdGF0aWMgaW50IGZfbWlkaTJfYmluZChzdHJ1Y3QgdXNiX2NvbmZpZ3VyYXRpb24gKmMsIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmYpXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE5Mjkte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTI4MzEtXHRtaWRpMi1cdTAwM2VmdW5jLm5hbWUgPSBcJiMzNDttaWRpMl9mdW5jXCYjMzQ7O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODMyOlx0bWlkaTItXHUwMDNlZnVuYy5iaW5kID0gZl9taWRpMl9iaW5kO1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODMzLVx0bWlkaTItXHUwMDNlZnVuYy51bmJpbmQgPSBmX21pZGkyX3VuYmluZDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjMwODQKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiA0NjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIE1JREkgMi4wIEdhZGdldCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIE1JREkgMi4wIGdhZGdldCBkcml2ZXIuIE15IGluaXRpYWwgZm9jdXMgaXMgb24gdGhlIG1haW4gZW50cnkgcG9pbnRzOiBgZl9taWRpMl9iaW5kYCwgYGZfbWlkaTJfdW5iaW5kYCwgYW5kIGBmX21pZGkyX3NldF9hbHRgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIGFwcGVhcnMgdG8gYmUgYSBidWcgZml4IHdpdGhpbiB0aGUgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AgZnVuY3Rpb25zLiBJdCBzZWVtcyBsaWtlIHRoZXJlIHdhcyBhbiBpbmNvcnJlY3QgdmFyaWFibGUgdXNlZCBmb3IgcmVxdWVzdCBjb3VudHMsIHVzaW5nIGBtaWRpMi0mZ3Q7aW5mby5udW1fcmVxc2AgaW5zdGVhZCBvZiBgdXNiX2VwLSZndDtudW1fcmVxc2AsIHdoaWNoIG1ha2VzIHNlbnNlIGJlY2F1c2UgZW5kcG9pbnQgcmVxdWVzdCBjb3VudHMgd291bGQgYmUgc3BlY2lmaWMgdG8gZWFjaCBlbmRwb2ludC4KClRoaXMgaXMgZGVmaW5pdGVseSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJJiMzOTttIHRoaW5raW5nIHRoaXMgaXMgcHJpbWUgZm9yIGZ1enppbmcuIFRvIGdldCB0aGF0IGdvaW5nLCBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHNldC4gSSBuZWVkOiBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBgU05EYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuCgpXYWl0IGEgbWludXRlLCBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHNvbWV0aGluZy4gYFVTQl9DT05GSUdGU2AgaXMgYSB0cmlzdGF0ZSwgd2hpbGUgYFVTQl9DT05GSUdGU19GX01JREkyYCBpcyBhIGJvb2wuIEp1c3QgdG8gYmUgc3VyZSwgSSYjMzk7bGwgY29uZmlybSB0aGF0IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgaW5kZWVkIGEgYm9vbC4uLiB5ZXAsICYjMzQ7TUlESSAyLjAgZnVuY3Rpb24mIzM0Oy4KCk9rYXksIHNvIGl0JiMzOTtzIGEgc3RyYWlnaHRmb3J3YXJkIGVuYWJsZW1lbnQgc2l0dWF0aW9uLCBJIGp1c3QgbmVlZCB0byBlbmFibGUgYFVTQl9DT05GSUdGU19GX01JREkyYC4gQWgsIGJ1dCBhIGRlcGVuZGVuY3kgY2hlY2s6IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQgYFNORGAuIEFuZCBzaW5jZSBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYCwgSSYjMzk7bGwgbmVlZCB0byBlbmFibGUgdGhhdCBvbmUgdG9vLiBTbyB0aGUgd2hvbGUgc2V0IHNob3VsZCBpbmNsdWRlIGBVU0JfR0FER0VUYCwgYFVTQl9DT05GSUdGU2AsIGBTTkRgLCBhbmQgYFVTQl9DT05GSUdGU19GX01JREkyYC4KCkkgc2hvdWxkIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncywgYW5kIGl0IGxvb2tzIGxpa2UgYFVTQl9GX01JREkyYCBpcyBzZWxlY3RlZCBieSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBUaGF0IGNvbmZpcm1zIG15IGluaXRpYWwgc3RyYXRlZ3ksIGFzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgc3VmZmljaWVudC4KCkp1c3QgdG8gYmUgZXhwbGljaXQsIGhlcmUmIzM5O3MgdGhlIGZpbmFsIGNvbmZpZyBsaXN0OgoKKiAgIGBVU0JfR0FER0VUYAoqICAgYFVTQl9DT05GSUdGU2AKKiAgIGBTTkRgCiogICBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgCgpBbmQgZm9yIHRhcmdldCBmdW5jdGlvbnMsIGJlc2lkZXMgdGhlIGVudHJ5IHBvaW50czoKCiogICBgZl9taWRpMl9zZXRfYWx0YAoqICAgYGZfbWlkaTJfYmluZGAKKiAgIGBmX21pZGkyX3VuYmluZGAKCmBmX21pZGkyX3NldF9hbHRgIGxvb2tzIGxpa2UgYSBnb29kIG9uZSB0byB0YXJnZXQsIGFuZCBzaW5jZSBJJiMzOTttIGhlcmUgSSBtaWdodCBhcyB3ZWxsIGNoZWNrIGBmX21pZGkyX3NldHVwYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40MC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Zl9taWRpMl9zZXR1cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMzQ2PXN0YXRpYyB2b2lkIGFzc2lnbl9ibG9ja19kZXNjcmlwdG9ycyhzdHJ1Y3QgZl9taWRpMiAqbWlkaTIsXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xNDA0LS8qIGdhZGdldCBmdW5jdGlvbiBzZXR1cCBjYWxsYmFjazogaGFuZGxlIEdUQiByZXF1ZXN0cyAqL1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxNDA1OnN0YXRpYyBpbnQgZl9taWRpMl9zZXR1cChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbixcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQwNi1cdFx0XHQgY29uc3Qgc3RydWN0IHVzYl9jdHJscmVxdWVzdCAqY3RybClcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTI4MDY9c3RhdGljIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZfbWlkaTJfYWxsb2Moc3RydWN0IHVzYl9mdW5jdGlvbl9pbnN0YW5jZSAqZmkpXG4tLVxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM1LVx0bWlkaTItXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODM2Olx0bWlkaTItXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTI4MzctXHRtaWRpMi1cdTAwM2VmdW5jLmRpc2FibGUgPSBmX21pZGkyX2Rpc2FibGU7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTM0CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKk5hdmlnYXRpbmcgdGhlIE1JREkgTGFuZHNjYXBlKioKClJpZ2h0LCBzbyBJJiMzOTttIHNlZWluZyB0aGF0IGBmX21pZGkyX2Rpc2FibGVgIGZ1bmN0aW9uIGFnYWluLiBJdCYjMzk7cyBhIGtleSBwaWVjZSwgaXNuJiMzOTt0IGl0PyBJdHMgcHJlc2VuY2UgaW1tZWRpYXRlbHkgdHJpZ2dlcnMgbXkgbWluZCB0byBjb25zaWRlciB0aGUgc3BlY2lmaWMgTUlESSBpbXBsZW1lbnRhdGlvbiB0aGlzIGNvZGUgaXMgZGVhbGluZyB3aXRoLiBUaGUgbmFtaW5nIGNvbnZlbnRpb24gc3VnZ2VzdHMgaXQgbWlnaHQgYmUgYSBmdW5jdGlvbiB0aGF0IHNlbGVjdGl2ZWx5IGRpc2FibGVzIGEgcGFydGljdWxhciBNSURJIGNvbXBvbmVudCBvciBmZWF0dXJlIHNldCwgcGVyaGFwcyBNSURJIDIuMCBmdW5jdGlvbmFsaXR5LCBvciBwZXJoYXBzIGEgc2Vjb25kIE1JREkgZGV2aWNlIGJlaW5nIGVtcGxveWVkIG9uIHRoZSBzeXN0ZW0uIFRoaW5raW5nIG1vcmUgYnJvYWRseSwgaXQgZmxhZ3MgdGhlIG5lZWQgdG8gZXZhbHVhdGUgaG93IE1JREkgY29tbXVuaWNhdGlvbiBpcyBiZWluZyBoYW5kbGVkIOKAkyBpcyB0aGVyZSBhbiBhdHRlbXB0IHRvIHN1cHBvcnQgbXVsdGlwbGUgTUlESSBzdHJlYW1zLCBvciBhcmUgd2UgaW50ZW50aW9uYWxseSBsaW1pdGluZyB0aGUgY29uZmlndXJhdGlvbj8gVGhpcyBsaWtlbHkgaGFzIHJhbWlmaWNhdGlvbnMgZm9yIHRoZSBvdmVyYWxsIGFyY2hpdGVjdHVyZSBhbmQgdGhlIGludGVuZGVkIHVzZSBjYXNlLiBUaGlzIHByb21wdHMgcXVlc3Rpb25zIGFib3V0IHRoZSB1bmRlcmx5aW5nIE1JREkgZnJhbWV3b3JrIOKAkyBpcyBpdCBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiwgb3IgYXJlIHdlIHVzaW5nIGEgc3RhbmRhcmQgbGlicmFyeT8gVGhpcyBhbHNvIGltcGFjdHMgb3VyIGRlYnVnZ2luZyBzdHJhdGVneS4gSXMgdGhlcmUgYW4gaXNzdWUsIG9yIHNpbXBseSBzb21ldGhpbmcgdGhhdCB0aGUgcHJvZ3JhbSBpcyBjb25maWd1cmVkIHRvIGRvPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcmVsYXRpb25zaGlwIHRvIGFueSBvdGhlciBNSURJLXJlbGF0ZWQgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IHRob3NlIGRlYWxpbmcgd2l0aCBpbml0aWFsaXphdGlvbiwgZGF0YSB0cmFuc21pc3Npb24sIGFuZCBldmVudCBoYW5kbGluZy4gSSBhbHNvIGhhdmUgdG8ga2VlcCBpbiBtaW5kIHRoZSBwb3RlbnRpYWwgaW1wbGljYXRpb25zIG9mIGRpc2FibGluZyBhIGNvbXBvbmVudDogQXJlIHRoZXJlIGRlcGVuZGVuY2llcyB0aGF0IG5vdyBuZWVkIHRvIGJlIGFkZHJlc3NlZD8gRG9lcyBpdCBpbXBhY3Qgb3RoZXIsIHVucmVsYXRlZCBtb2R1bGVzPyBJIG11c3Qgbm93IGxvb2sgbW9yZSBjbG9zZWx5IHRvIHNlZSB3aGVyZSB0aGlzIGRpc2FibGluZyBhY3Rpb24gdGFrZXMgcGxhY2Ugd2l0aGluIHRoZSBjb250cm9sIGZsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI5IDA5OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZfbWlkaTJfZGlzYWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xNDA1PXN0YXRpYyBpbnQgZl9taWRpMl9zZXR1cChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbixcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE0MzEtLyogZ2FkZ2V0IGZ1bmN0aW9uIGRpc2FibGUgY2FsbGJhY2sgKi9cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTQzMjpzdGF0aWMgdm9pZCBmX21pZGkyX2Rpc2FibGUoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4pXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTE0MzMte1xuLS1cbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcbi0tXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTI4MzYtXHRtaWRpMi1cdTAwM2VmdW5jLnNldHVwID0gZl9taWRpMl9zZXR1cDtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzNzpcdG1pZGkyLVx1MDAzZWZ1bmMuZGlzYWJsZSA9IGZfbWlkaTJfZGlzYWJsZTtcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzOC1cdG1pZGkyLVx1MDAzZWZ1bmMuZnJlZV9mdW5jID0gZl9taWRpMl9mcmVlO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTE4NAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDI2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEZWNvbnN0cnVjdGluZyB0aGUgTUlESTIgRGlzYWJsZSBGdW5jdGlvbioqCgpPa2F5LCBzbyBgZl9taWRpMl9kaXNhYmxlYC4gTXkgaW1tZWRpYXRlIGFzc3VtcHRpb24sIGJhc2VkIG9uIG5hbWluZyBjb252ZW50aW9ucywgaXMgdGhhdCB0aGlzIGZ1bmN0aW9uIGxpa2VseSBjYWxscyBgZl9taWRpMl9zdG9wX2Vwc2AuIFRoZSAmIzM0O2VwcyYjMzQ7IGxpa2VseSByZWZlcnMgdG8gJiMzNDtlbmRwb2ludHMmIzM0OywgYW5kICYjMzQ7c3RvcCYjMzQ7IHN1Z2dlc3RzIGEgc2h1dGRvd24gb3IgZGVhY3RpdmF0aW9uIG9mIHRoZSBlbmRwb2ludHMuIEl0JiMzOTtzIGEgcHJldHR5IHN0YW5kYXJkIHBhdHRlcm4uIE5vdywgdGhlIG5leHQgc3RlcCBpcyB0byBjb25maXJtIHRoYXQgdGhlIGNvZGUgYWN0dWFsbHkgYmVoYXZlcyBhcyBJIHN1c3BlY3QuIE5lZWQgdG8gZGlnIGluIGFuZCBzZWUgdGhlIGNvbnRyb2wgZmxvdy4gV2hhdCBhcmUgdGhlIHNwZWNpZmljIGltcGxpY2F0aW9ucyBvZiBkaXNhYmxpbmcgTUlESTI/IERvZXMgaXQganVzdCBzaHV0IGRvd24gdGhlIHN0cmVhbXMsIG9yIGFyZSB0aGVyZSBhbnkgaGFyZHdhcmUgcG93ZXItZG93bnMgb3Igc3RhdGUgcmVzZXRzIGludm9sdmVkPyBHb3R0YSBjaGVjayB0aGUgcmVnaXN0ZXIgc2V0dGluZ3MgYW5kIGVycm9yIGhhbmRsaW5nIHRvby4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTQzMiwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxNDMyOlx0c3RhdGljIHZvaWQgZl9taWRpMl9kaXNhYmxlKHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuKVxuMTQzMzpcdHtcbjE0MzQ6XHRcdHN0cnVjdCBmX21pZGkyICptaWRpMiA9IGZ1bmNfdG9fbWlkaTIoZm4pO1xuMTQzNTpcdFxuMTQzNjpcdFx0bWlkaTItXHUwMDNlb3BlcmF0aW9uX21vZGUgPSBNSURJX09QX01PREVfVU5TRVQ7XG4xNDM3Olx0fVxuMTQzODpcdFxuMTQzOTpcdC8qXG4xNDQwOlx0ICogQUxTQSBVTVAgb3BzOiBtb3N0IG9mIHRoZW0gYXJlIE5PUHMsIG9ubHkgdHJpZ2dlciBmb3Igd3JpdGUgaXMgbmVlZGVkXG4xNDQxOlx0ICovXG4xNDQyOlx0c3RhdGljIGludCBmX21pZGkyX3VtcF9vcGVuKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIpXG4xNDQzOlx0e1xuMTQ0NDpcdFx0cmV0dXJuIDA7XG4xNDQ1Olx0fVxuMTQ0NjpcdFxuMTQ0NzpcdHN0YXRpYyB2b2lkIGZfbWlkaTJfdW1wX2Nsb3NlKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIpXG4xNDQ4Olx0e1xuMTQ0OTpcdH1cbjE0NTA6XHRcbjE0NTE6XHRzdGF0aWMgdm9pZCBmX21pZGkyX3VtcF90cmlnZ2VyKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIsIGludCB1cClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjU3MjAKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4KCioqQW5hbHl6aW5nIE1JREkyIEVuZHBvaW50IENvbnRyb2wgRmxvdyoqCgpIbW0sIHdhaXQgYSBtaW51dGUuLi4gSSB3YXMgdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCBgZl9taWRpMl9kaXNhYmxlYCB3b3VsZCBhbHNvIGJlIHJlc3BvbnNpYmxlIGZvciBzdG9wcGluZyB0aGUgZW5kcG9pbnQgc3RyZWFtcy4gQnV0IGl0IGRvZXNuJiMzOTt0IGFjdHVhbGx5IGNhbGwgYGZfbWlkaTJfc3RvcF9lcHNgLiBUaGF0JiMzOTtzIGEgYml0IG9kZC4gU28sIHdoZXJlICppcyogYGZfbWlkaTJfc3RvcF9lcHNgIGdldHRpbmcgY2FsbGVkPyBBaCwgcmlnaHQhIEl0JiMzOTtzIHdpdGhpbiBgZl9taWRpMl9zZXRfYWx0YC4gT2theSwgdGhhdCBtYWtlcyBtb3JlIHNlbnNlIG5vdy4gU28sIGBmX21pZGkyX3NldF9hbHRgIGFwcGVhcnMgdG8gYmUgdGhlIHByaW1hcnkgZnVuY3Rpb24gZm9yIG1hbmFnaW5nIHRoZSBhbGxvY2F0aW9uIGFuZCBkZWFsbG9jYXRpb24gb2YgcmVxdWVzdHMgcmVsYXRlZCB0byB0aGUgTUlESTIgZW5kcG9pbnRzLiBHaXZlbiBpdHMgY2VudHJhbCByb2xlLCBJIHNob3VsZCBwcm9iYWJseSByZS1leGFtaW5lIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgZl9taWRpMl9zZXRfYWx0YCBtb3JlIGNsb3NlbHkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSByZXF1ZXN0IGxpZmVjeWNsZSBpbiB0aGF0IGZ1bmN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOSAwOTo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMjc0LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQ1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEyNzQ6XHRzdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXG4xMjc1Olx0XHRcdFx0ICAgdW5zaWduZWQgaW50IGFsdClcbjEyNzY6XHR7XG4xMjc3Olx0XHRzdHJ1Y3QgZl9taWRpMiAqbWlkaTIgPSBmdW5jX3RvX21pZGkyKGZuKTtcbjEyNzg6XHRcdHN0cnVjdCBmX21pZGkyX2VwICplcDtcbjEyNzk6XHRcdGludCBpLCBvcF9tb2RlLCBlcnI7XG4xMjgwOlx0XG4xMjgxOlx0XHRpZiAoaW50ZiAhPSBtaWRpMi1cdTAwM2VtaWRpX2lmIHx8IGFsdCBcdTAwM2UgMSlcbjEyODI6XHRcdFx0cmV0dXJuIDA7XG4xMjgzOlx0XG4xMjg0Olx0XHRpZiAoYWx0ID09IDApXG4xMjg1Olx0XHRcdG9wX21vZGUgPSBNSURJX09QX01PREVfTUlESTE7XG4xMjg2Olx0XHRlbHNlXG4xMjg3Olx0XHRcdG9wX21vZGUgPSBNSURJX09QX01PREVfTUlESTI7XG4xMjg4Olx0XG4xMjg5Olx0XHRpZiAobWlkaTItXHUwMDNlb3BlcmF0aW9uX21vZGUgPT0gb3BfbW9kZSlcbjEyOTA6XHRcdFx0cmV0dXJuIDA7XG4xMjkxOlx0XG4xMjkyOlx0XHRtaWRpMi1cdTAwM2VvcGVyYXRpb25fbW9kZSA9IG9wX21vZGU7XG4xMjkzOlx0XG4xMjk0Olx0XHRpZiAob3BfbW9kZSAhPSBNSURJX09QX01PREVfTUlESTEpXG4xMjk1Olx0XHRcdGZfbWlkaTJfc3RvcF9lcHMoXHUwMDI2bWlkaTItXHUwMDNlbWlkaTFfZXBfaW4sIFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX291dCk7XG4xMjk2Olx0XG4xMjk3Olx0XHRpZiAob3BfbW9kZSAhPSBNSURJX09QX01PREVfTUlESTIpIHtcbjEyOTg6XHRcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgbWlkaTItXHUwMDNlbnVtX2VwczsgaSYjNDM7JiM0MzspIHtcbjEyOTk6XHRcdFx0XHRlcCA9IFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkyX2Vwc1tpXTtcbjEzMDA6XHRcdFx0XHRmX21pZGkyX3N0b3BfZXBzKFx1MDAyNmVwLVx1MDAzZWVwX2luLCBcdTAwMjZlcC1cdTAwM2VlcF9vdXQpO1xuMTMwMTpcdFx0XHR9XG4xMzAyOlx0XHR9XG4xMzAzOlx0XG4xMzA0Olx0XHRpZiAob3BfbW9kZSA9PSBNSURJX09QX01PREVfTUlESTEpXG4xMzA1Olx0XHRcdHJldHVybiBmX21pZGkyX3N0YXJ0X2VwcyhcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMV9lcF9pbixcbjEzMDY6XHRcdFx0XHRcdFx0IFx1MDAyNm1pZGkyLVx1MDAzZW1pZGkxX2VwX291dCwgZm4pO1xuMTMwNzpcdFxuMTMwODpcdFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkyKSB7XG4xMzA5Olx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG1pZGkyLVx1MDAzZW51bV9lcHM7IGkmIzQzOyYjNDM7KSB7XG4xMzEwOlx0XHRcdFx0ZXAgPSBcdTAwMjZtaWRpMi1cdTAwM2VtaWRpMl9lcHNbaV07XG4xMzExOlx0XG4xMzEyOlx0XHRcdFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXHUwMDI2ZXAtXHUwMDNlZXBfaW4sIFx1MDAyNmVwLVx1MDAzZWVwX291dCwgZm4pO1xuMTMxMzpcdFx0XHRcdGlmIChlcnIpXG4xMzE0Olx0XHRcdFx0XHRyZXR1cm4gZXJyO1xuMTMxNTpcdFx0XHR9XG4xMzE2Olx0XHR9XG4xMzE3Olx0XG4xMzE4Olx0XHRyZXR1cm4gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY3NzYKCQkJCQkJCW91dHB1dDogMTczCgkJCQkJCQl0aG91Z2h0czogMzU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIE1JREkyIEdhZGdldCBSZXF1ZXN0IE1hbmFnZW1lbnQqKgoKT2theSwgc28gYGZfbWlkaTJfc2V0X2FsdGAgaXMgZGVmaW5pdGVseSB0aGUga2V5IGZ1bmN0aW9uLiBUaGF0JiMzOTtzIHRoZSBvbmUgdGhhdCBoYW5kbGVzIHJlcXVlc3QgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uLCBzbyBpdCYjMzk7cyBhIHByaW1hcnkgZm9jdXMuIEJleW9uZCB0aGF0LCBJIG5lZWQgdG8gaW5jbHVkZSBgZl9taWRpMl9iaW5kYCBhbmQgYGZfbWlkaTJfdW5iaW5kYCBzaW5jZSB0aGV5IHdvdWxkIGluZmx1ZW5jZSBob3cgcmVxdWVzdHMgYXJlIGhhbmRsZWQuCgpXYWl0IGEgbWludXRlLCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBpcyBhbHNvIGNhbGxlZCBmcm9tIGBmX21pZGkyX3N0YXJ0X2Vwc2AuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIgc2ltaWxhciBjYWxsIHNpdGVzLiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBvdGhlciBwb3RlbnRpYWwgY2FuZGlkYXRlcyBzdWNoIGFzIGBmX21pZGkyX2VwX2luX2NvbXBsZXRlYCBhbmQgYW55IHNpbWlsYXIgZnVuY3Rpb25zLiBTdGlsbCwgYGZfbWlkaTJfc2V0X2FsdGAgcmVtYWlucyB0aGUgY2VudHJhbCBmdW5jdGlvbi4KCk5vdywgbGV0JiMzOTtzIG5haWwgZG93biB0aGUgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMuIExldCYjMzk7cyBzZWUuLi4gYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBHb29kLiBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIHRoZSAqb25seSogcmVxdWlyZWQgb3B0aW9uLiBBaCwgeWVzLCBpdCBzZWxlY3RzIGBVU0JfRl9NSURJMmAsIHdoaWNoIGlzIHdoYXQgSSBleHBlY3QuCgpMZXQmIzM5O3MgdHJhY2UgdGhlc2UgZGVwZW5kZW5jaWVzLiBPa2F5LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYC4gQW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBib3RoIGBVU0JfQ09ORklHRlNgIGFuZCBgU05EYC4gU28sIG15IGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzIGFyZTogYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLgoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSB2ZXJpZnkgdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIGluZGVlZCB0aGUgY29ycmVjdCBLY29uZmlnIHN5bWJvbC4gWWVwLCBgY29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyYC4gUGVyZmVjdC4KCk9rYXksIEkmIzM5O20gY29uZmlkZW50IGluIHRoaXMgYW5hbHlzaXMuIEkmIzM5O2xsIHJldHVybiBgV29ydGhGdXp6aW5nPXRydWVgLCBhbG9uZyB3aXRoIHRoZSBpZGVudGlmaWVkIGZvY3VzIHN5bWJvbHMgYW5kIHRoZSBjb25maWd1cmF0aW9uIHJlcXVpcmVtZW50cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjkgMDk6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQl9HQURHRVQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTJiMzNDssCiAgICAmIzM0O1NORCYjMzQ7LAogICAgJiMzNDtVU0JfQ09ORklHRlNfRl9NSURJMiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2ZfbWlkaTJfc2V0X2FsdCYjMzQ7LAogICAgJiMzNDtmX21pZGkyX2JpbmQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl91bmJpbmQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb2YgVVNCIGVuZHBvaW50IHJlcXVlc3RzIGluIHRoZSBNSURJIDIuMCBnYWRnZXQgZnVuY3Rpb24gZHJpdmVyLiBJdCBjaGFuZ2VzIHRoZSBsb29wIGJvdW5kIGZyb20gYG1pZGkyLVx1MDAzZWluZm8ubnVtX3JlcXNgIHRvIGB1c2JfZXAtXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JfR0FER0VUJiMzNDssCiAgICAmIzM0O1VTQl9DT05GSUdGUyYjMzQ7LAogICAgJiMzNDtTTkQmIzM0OywKICAgICYjMzQ7VVNCX0NPTkZJR0ZTX0ZfTUlESTImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtmX21pZGkyX3NldF9hbHQmIzM0OywKICAgICYjMzQ7Zl9taWRpMl9iaW5kJiMzNDssCiAgICAmIzM0O2ZfbWlkaTJfdW5iaW5kJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciBtZW1vcnkgbGVha3MuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIFVTQiBnYWRnZXQgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJuYXRlIHNldHRpbmcgY2hhbmdlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ0OjM5LjY4MTA1Nzg2N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3MDE0Nzg2Nzc3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JfR0FER0VUXCIsXG4gICAgXCJVU0JfQ09ORklHRlNcIixcbiAgICBcIlNORFwiLFxuICAgIFwiVVNCX0NPTkZJR0ZTX0ZfTUlESTJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJmX21pZGkyX3NldF9hbHRcIixcbiAgICBcImZfbWlkaTJfYmluZFwiLFxuICAgIFwiZl9taWRpMl91bmJpbmRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgYWxsb2NhdGlvbiBhbmQgZnJlZWluZyBvZiBVU0IgZW5kcG9pbnQgcmVxdWVzdHMgaW4gdGhlIE1JREkgMi4wIGdhZGdldCBmdW5jdGlvbiBkcml2ZXIuIEl0IGNoYW5nZXMgdGhlIGxvb3AgYm91bmQgZnJvbSBgbWlkaTItXFx1MDAzZWluZm8ubnVtX3JlcXNgIHRvIGB1c2JfZXAtXFx1MDAzZW51bV9yZXFzYCwgd2hpY2ggaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIGFjY2VzcyBvciBtZW1vcnkgbGVha3MuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgdmlhIFVTQiBnYWRnZXQgY29uZmlndXJhdGlvbiBhbmQgYWx0ZXJuYXRlIHNldHRpbmcgY2hhbmdlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDQ6MzkuNjgxMDY0MDk2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTc0NjAwMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAzNGViOTYyZDI1YzhhNTljNDFlMzRlMDVjMzJmZDliNTBiNGUwMzdlXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDI5IDA5OjQ0OjM4IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXFxuaW5kZXggMTlmZGFjMDI0MzQzOS4uNWU1NGNmOTk0NzA3YSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXFxuKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xcbkBAIC0xMTQ1LDcgKzExNDUsNyBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcXG4gXFx0aWYgKCF1c2JfZXAtXFx1MDAzZXJlcXMpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXG4tXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG1pZGkyLVxcdTAwM2VpbmZvLm51bV9yZXFzOyBpKyspIHtcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIHVzYl9lcC1cXHUwMDNlbnVtX3JlcXM7IGkrKykge1xcbiBcXHRcXHRpZiAodXNiX2VwLVxcdTAwM2VyZXFzW2ldLnJlcSlcXG4gXFx0XFx0XFx0Y29udGludWU7XFxuIFxcdFxcdHVzYl9lcC1cXHUwMDNlcmVxc1tpXS5yZXEgPSBhbGxvY19lcF9yZXEodXNiX2VwLVxcdTAwM2V1c2JfZXAsXFxuQEAgLTExNjAsMTAgKzExNjAsOSBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcXG4gLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi9cXG4gc3RhdGljIHZvaWQgZl9taWRpMl9mcmVlX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuIHtcXG4tXFx0c3RydWN0IGZfbWlkaTIgKm1pZGkyID0gdXNiX2VwLVxcdTAwM2VjYXJkO1xcbiBcXHRpbnQgaTtcXG4gXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBtaWRpMi1cXHUwMDNlaW5mby5udW1fcmVxczsgaSsrKSB7XFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyB1c2JfZXAtXFx1MDAzZW51bV9yZXFzOyBpKyspIHtcXG4gXFx0XFx0aWYgKCF1c2JfZXAtXFx1MDAzZXJlcXNbaV0ucmVxKVxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFx0XFx0ZnJlZV9lcF9yZXEodXNiX2VwLVxcdTAwM2V1c2JfZXAsIHVzYl9lcC1cXHUwMDNlcmVxc1tpXS5yZXEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0MC4xNzkzNTg3MTRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxNjk2NDk1NDIxOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCX0dBREdFVFwiLFxuICAgIFwiVVNCX0NPTkZJR0ZTXCIsXG4gICAgXCJTTkRcIixcbiAgICBcIlVTQl9DT05GSUdGU19GX01JREkyXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZl9taWRpMl9zZXRfYWx0XCIsXG4gICAgXCJmX21pZGkyX2JpbmRcIixcbiAgICBcImZfbWlkaTJfdW5iaW5kXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBidWcgaW4gdGhlIGFsbG9jYXRpb24gYW5kIGZyZWVpbmcgb2YgVVNCIGVuZHBvaW50IHJlcXVlc3RzIGluIHRoZSBNSURJIDIuMCBnYWRnZXQgZnVuY3Rpb24gZHJpdmVyLiBJdCBjaGFuZ2VzIHRoZSBsb29wIGJvdW5kIGZyb20gYG1pZGkyLVxcdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVxcdTAwM2VudW1fcmVxc2AsIHdoaWNoIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb3IgbWVtb3J5IGxlYWtzLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIHZpYSBVU0IgZ2FkZ2V0IGNvbmZpZ3VyYXRpb24gYW5kIGFsdGVybmF0ZSBzZXR0aW5nIGNoYW5nZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM0ZWI5NjJkMjVjOGE1OWM0MWUzNGUwNWMzMmZkOWI1MGI0ZTAzN2VcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAyOSAwOTo0NDozOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXG5pbmRleCAxOWZkYWMwMjQzNDM5Li41ZTU0Y2Y5OTQ3MDdhIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1xuQEAgLTExNDUsNyArMTE0NSw3IEBAIHN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuIFx0aWYgKCF1c2JfZXAtXHUwMDNlcmVxcylcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzOyBpKyspIHtcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHVzYl9lcC1cdTAwM2VudW1fcmVxczsgaSsrKSB7XG4gXHRcdGlmICh1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpXG4gXHRcdFx0Y29udGludWU7XG4gXHRcdHVzYl9lcC1cdTAwM2VyZXFzW2ldLnJlcSA9IGFsbG9jX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLFxuQEAgLTExNjAsMTAgKzExNjAsOSBAQCBzdGF0aWMgaW50IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKnVzYl9lcClcbiAvKiBGcmVlIGFsbG9jYXRlZCByZXF1ZXN0cyAqL1xuIHN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxuIHtcbi1cdHN0cnVjdCBmX21pZGkyICptaWRpMiA9IHVzYl9lcC1cdTAwM2VjYXJkO1xuIFx0aW50IGk7XG4gXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzOyBpKyspIHtcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIHVzYl9lcC1cdTAwM2VudW1fcmVxczsgaSsrKSB7XG4gXHRcdGlmICghdXNiX2VwLVx1MDAzZXJlcXNbaV0ucmVxKVxuIFx0XHRcdGNvbnRpbnVlO1xuIFx0XHRmcmVlX2VwX3JlcSh1c2JfZXAtXHUwMDNldXNiX2VwLCB1c2JfZXAtXHUwMDNlcmVxc1tpXS5yZXEpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDQ6NDAuMTc5MzYwMjE0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTM1NjU5MTQ5MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1JREkyIFVTQiBHYWRnZXQgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXQncyBwb2tpbmcgYXJvdW5kIGluIGBkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jYC4gU2VlbXMgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCBmaXgsIGJ1dCBsZXQncyBkaXZlIGluLiBJdCdzIGNoYW5naW5nIGBtaWRpMi1cdTAwM2VpbmZvLm51bV9yZXFzYCB0byBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCBpbiB0aGUgYWxsb2NhdGlvbiBhbmQgZnJlZWluZyBvZiBlbmRwb2ludCByZXF1ZXN0IHJlc291cmNlcywgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AgZnVuY3Rpb25zLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBpcyBhIGdvb2QgY2F0Y2ggLSBsb29rcyBsaWtlIHdlJ3JlIGFkZHJlc3NpbmcgYSBwb3RlbnRpYWwgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb3IgYW4gaXNzdWUgd2l0aCBpbmNvcnJlY3QgbG9vcCBib3VuZHMsIHdoaWNoLCBpbiB0aGUgVVNCIHdvcmxkLCBjYW4gYmUgbmFzdHkuXG5cbkdpdmVuIHRoZSBuYXR1cmUgb2YgVVNCIGRldmljZSBkcml2ZXJzIGFuZCB0aGUgc2Vuc2l0aXZpdHkgb2YgZW5kcG9pbnQgbWFuYWdlbWVudCwgSSB3YW50IHRvIGNvbmZpcm0gdGhlIGNvbnRleHQgb2YgdGhlc2UgY2hhbmdlcy4gSSdsbCBuZWVkIHRvIG9wZW4gdXAgYGZfbWlkaTIuY2AgYW5kIHRha2UgYSBsb29rIGF0IHRoZSBzdXJyb3VuZGluZyBjb2RlIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkLiBJIG5lZWQgdG8ga25vdyB0aGUgcG90ZW50aWFsIGltcGFjdCBvbiBkaWZmZXJlbnQgTUlESTIgVVNCIGdhZGdldCBpbXBsZW1lbnRhdGlvbnMuIEFyZSB0aGVyZSBhbnkgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb3Igb3RoZXIgc2V0dGluZ3MgdGhhdCBhZmZlY3QgdGhlIG51bWJlciBvciBiZWhhdmlvciBvZiB0aGVzZSByZXF1ZXN0cz8gSSdsbCBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hhbmdlIGlzIGluZGVlZCBmdW5jdGlvbmFsbHkgY29ycmVjdCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IHJlZ3Jlc3Npb25zIGFjcm9zcyB2YXJpb3VzIE1JREkyIGNvbmZpZ3VyYXRpb25zIGFuZCBoYXJkd2FyZSBzZXR1cHMuIFRpbWUgdG8gZ2V0IHRvIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMjQsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjgsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0NS41MzU5NTQ1NTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc4NzE4NDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9hbGxvY19lcF9yZXFzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTIyPXN0YXRpYyB2b2lkIGZfbWlkaTJfZHJvcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTM3LS8qIEFsbG9jYXRlIHJlcXVlc3RzIGZvciB0aGUgZ2l2ZW4gRVAgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExMzg6c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTM5LXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI0OT1zdGF0aWMgaW50IGZfbWlkaTJfc3RhcnRfZXBzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfaW4sXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNjEtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjYyOlxcdGVyciA9IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhlcF9pbik7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjYzLVxcdGlmIChlcnIpXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjY0LVxcdFxcdHJldHVybiBlcnI7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjY1OlxcdGVyciA9IGZfbWlkaTJfYWxsb2NfZXBfcmVxcyhlcF9vdXQpO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI2Ni1cXHRpZiAoZXJyKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0NS41ODM4MzI5ODNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODgxMjAzMjQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCB3ZSBoYXZlIGhlcmUuXG5cbioqQW5hbHl6aW5nIE1JREkgRW5kcG9pbnQgUmVxdWVzdCBBbGxvY2F0aW9uKipcblxuUmlnaHQsIHNvIHRoZXNlIGZ1bmN0aW9ucywgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2AgYW5kIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AsIGFyZSBzdGF0aWMuIFRoYXQncyBhIGtleSBkZXRhaWwgdG8gc3RhcnQgd2l0aC4gTm93IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZWlyIHNjb3BlIGFuZCB1c2FnZS4gSSBzaG91bGQgY2hlY2sgd2hlcmUgdGhleSdyZSBhY3R1YWxseSBiZWluZyBpbnZva2VkLiBGaXJzdCwgbGV0J3MgbG9vayBhdCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYC4gQWgsIGl0J3MgY2FsbGVkIHdpdGhpbiBgZl9taWRpMl9zdGFydF9lcHNgLiBUaGF0IG1ha2VzIHNlbnNlOyBpdCdzIGxpa2VseSBpbnZvbHZlZCBpbiBpbml0aWFsaXppbmcgb3Igc2V0dGluZyB1cCB0aGUgZW5kcG9pbnQgcmVxdWVzdHMuIE9rYXksIG5vdyB0byBmdWxseSB1bmRlcnN0YW5kIHRoZSBmbG93LCBJIG5lZWQgdG8ga25vdyB0aGUgY2FsbGluZyBjb250ZXh0IGZvciBgZl9taWRpMl9zdGFydF9lcHNgLiBXaGVyZSBpcyAqaXQqIGNhbGxlZD8gVGhhdCB3aWxsIGdpdmUgbWUgdGhlIGJyb2FkZXIgcGljdHVyZSBvZiBob3cgdGhlIGVuZHBvaW50IHJlcXVlc3RzIGFyZSBtYW5hZ2VkLiBLbm93aW5nIHRoaXMgY29udGV4dCB3aWxsIGFsbG93IG1lIHRvIHVuZGVyc3RhbmQgdGhlIHB1cnBvc2Ugb2YgdGhvc2UgZW5kcG9pbnQgcmVxdWVzdHMgYW5kIHBvdGVudGlhbCBpc3N1ZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxOTAsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NDo0OS40NjUwMzg4ODlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDY4MDc3OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9zdGFydF9lcHNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyMzk9c3RhdGljIHZvaWQgZl9taWRpMl9zdG9wX2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ4LS8qIHN0YXJ0L3F1ZXVlIGJvdGggSU4gYW5kIE9VVCBFUHMgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDk6c3RhdGljIGludCBmX21pZGkyX3N0YXJ0X2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI1MC1cXHRcXHRcXHQgICAgIHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqZXBfb3V0LFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjc0PXN0YXRpYyBpbnQgZl9taWRpMl9zZXRfYWx0KHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuLCB1bnNpZ25lZCBpbnQgaW50ZixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwNC1cXHRpZiAob3BfbW9kZSA9PSBNSURJX09QX01PREVfTUlESTEpXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzA1OlxcdFxcdHJldHVybiBmX21pZGkyX3N0YXJ0X2VwcyhcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkxX2VwX2luLFxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMwNi1cXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9vdXQsIGZuKTtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTMxMS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMTI6XFx0XFx0XFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXFx1MDAyNmVwLVxcdTAwM2VlcF9pbiwgXFx1MDAyNmVwLVxcdTAwM2VlcF9vdXQsIGZuKTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMTMtXFx0XFx0XFx0aWYgKGVycilcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDQ6NDkuNTExODUyMTY4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY0NjU1NDM5MjIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgcHJlc2VudGVkIGFzIGEgZmlyc3QtcGVyc29uIGV4cGVydCBzdW1tYXJ5OlxuXG4qKkRpZ2dpbmcgaW50byBmX21pZGkyX3NldF9hbHQqKlxuXG5IbW0sIHNvIGBmX21pZGkyX3NldF9hbHRgLi4uaXMgdGhhdCBmdW5jdGlvbiBkZWNsYXJlZCBhcyBhIG5vbi1zdGF0aWMgZnVuY3Rpb24/IE9yIGlzIGl0IGJlaW5nIHVzZWQgYXMgYSBjYWxsYmFjaywgd2hpY2ggd291bGQgbWFrZSBtZSB0aGluayBkaWZmZXJlbnRseSBhYm91dCBob3cgaXRzIGludGVybmFsIHN0YXRlIGlzIGhhbmRsZWQ/IEl0J3MgYSBrZXkgZnVuY3Rpb24gaW4gdGhpcyBtaWRpIGltcGxlbWVudGF0aW9uLCB3aGljaCBtZWFucyBJIHNob3VsZCBub3QgbWFrZSBhbnkgYXNzdW1wdGlvbnMuIExldCBtZSBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGUgY29kZSBkZWZpbml0aW9uIG9mIGBmX21pZGkyX3NldF9hbHRgIHRvIGNsYXJpZnkgaXRzIHNjb3BlIGFuZCBwdXJwb3NlLCBhbmQgcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIGNvZGluZyBzdHlsZS4gS25vd2luZyB0aGF0IHdpbGwgaW1wYWN0IHRoZSBhc3N1bXB0aW9ucyBJIGNhbiBtYWtlIGFib3V0IGl0cyByb2xlIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggb3RoZXIgcGFydHMgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzk3NiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjI1Ljk3NzM5ODg3WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjE3MTY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmX21pZGkyX3NldF9hbHRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyNDk9c3RhdGljIGludCBmX21pZGkyX3N0YXJ0X2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjczLS8qIGdhZGdldCBmdW5jdGlvbiBzZXRfYWx0IGNhbGxiYWNrICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjc0OnN0YXRpYyBpbnQgZl9taWRpMl9zZXRfYWx0KHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuLCB1bnNpZ25lZCBpbnQgaW50ZixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNzUtXFx0XFx0XFx0ICAgdW5zaWduZWQgaW50IGFsdClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNC1cXHRtaWRpMi1cXHUwMDNlZnVuYy5nZXRfYWx0ID0gZl9taWRpMl9nZXRfYWx0O1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzNTpcXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNi1cXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjI2LjQxMzU3Nzc0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTY2NzcwODY5NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqRGVjb2RpbmcgdGhlIENhbGxiYWNrKipcblxuQWxyaWdodCwgYSBjYWxsYmFjaywgKnRoYXQqIGZhbWlsaWFyIHBocmFzZS4gTXkgYnJhaW4gaW1tZWRpYXRlbHkganVtcHMgaW50byB0cmlhZ2UgbW9kZS4gVGhlIGZpcnN0IHF1ZXN0aW9uIGlzIGFsd2F5czogd2hlcmUgZG9lcyB0aGlzIGNhbGxiYWNrICpsaXZlKj8gQW5kIHRoZSBpbW1lZGlhdGUgbmVlZCBub3cgaXMgdG8gbG9jYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzIGFzc29jaWF0ZWQgd2l0aCBgZl9taWRpMi5jYC4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29udGV4dCwgdGhlIHBhcmFtZXRlcnMgaXQncyBleHBlY3RpbmcsIGFuZCBob3cgaXQncyBpbnRlZ3JhdGVkIHdpdGggdGhlIGxhcmdlciBzeXN0ZW0uIFRoaXMgaXNuJ3QganVzdCBhYm91dCBmaW5kaW5nIHRoZSBmaWxlOyBpdCdzIGFib3V0IHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRyb2wgZmxvdyBhbmQgcG90ZW50aWFsIGltcGFjdCBvZiB0aGlzIGNhbGxiYWNrIHdpdGhpbiB0aGUgYGZfbWlkaTIuY2AgZnJhbWV3b3JrLiBUaW1lIHRvIGRpZyBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU1MSwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjQzLjA5MDY2ODQ2NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzUzODI1NDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfbWlkaTJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL01ha2VmaWxlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZT01MD1vYmotJChDT05GSUdfVVNCX0ZfTUlESSlcXHQrPSB1c2JfZl9taWRpLm9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vTWFrZWZpbGU6NTE6dXNiX2ZfbWlkaTIteVxcdFxcdFxcdDo9IGZfbWlkaTIub1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZTo1MjpvYmotJChDT05GSUdfVVNCX0ZfTUlESTIpXFx0Kz0gdXNiX2ZfbWlkaTIub1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9NYWtlZmlsZS01My11c2JfZl9oaWQteVxcdFxcdFxcdDo9IGZfaGlkLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDU6NDMuNDQ0NTAyNDg1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NTYwOTk5ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGl0IGlzOlxuXG4qKkV4YW1pbmluZyBNSURJMiBVU0IgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBzeXN0ZW0gaXMgY29uZmlndXJlZCB0byB1c2UgYENPTkZJR19VU0JfRl9NSURJMmAuIE15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gS2NvbmZpZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCB0aGlzIGNvbmZpZyBvcHRpb24gKmFjdHVhbGx5KiBtZWFucyBpbiB0aGUgY29udGV4dCBvZiB0aGUgbGFyZ2VyIHN5c3RlbS4gSSdtIGdvaW5nIHRvIGhlYWQgc3RyYWlnaHQgb3ZlciB0byBLY29uZmlnIHRvIHNlZSB3aGF0J3MgZGVmaW5lZCBmb3IgYENPTkZJR19VU0JfRl9NSURJMmAuIFdoYXQgYXJlIHRoZSBkZXBlbmRlbmNpZXM/IFdoYXQgYXJlIHRoZSBpbXBsaWNhdGlvbnMgZm9yIHRoZSByZXN0IG9mIHRoZSBVU0Igc3RhY2sgYW5kLCBieSBleHRlbnNpb24sIGF1ZGlvIHByb2Nlc3Npbmc/IEkgbmVlZCB0aGUgZnVsbCBwaWN0dXJlIHRvIHVuZGVyc3RhbmQgdGhpcyBzaW5nbGUgc2V0dGluZy4gVGhpcyBpcyBnb2luZyB0byBiZSBpbnRlcmVzdGluZy4gTGV0J3Mgc2VlIHdoYXQgS2NvbmZpZyBoYXMgdG8gc2F5LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0OTA0LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDU6NDcuMjAwNjA1OTI0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzQ4MjQ1Njg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfRl9NSURJMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnPTIwOT1jb25maWcgVVNCX0ZfTUlESVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjExLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjIxMjpjb25maWcgVVNCX0ZfTUlESTJcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yMTMtXFx0dHJpc3RhdGVcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDU6NDguOTQ4ODU3NDIyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzMjY3MjgzOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyBhIFRyaXN0YXRlJ3MgQ29udHJvbCoqXG5cblJpZ2h0LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgdHJpc3RhdGUgZGV2aWNlLCBsaWtlbHkgaW4gYSBsYXJnZXIgY2lyY3VpdC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiVGhpcyBpc24ndCBqdXN0IGZsb2F0aW5nIGhlcmUgZm9yIGZ1bi5cIiBJdCdzIGJlaW5nICpjb250cm9sbGVkKi4gVGhlIGtleSBxdWVzdGlvbiBub3cgYmVjb21lcywgd2hhdCdzIGRyaXZpbmcgdGhhdCBjb250cm9sPyBUaGUgdHJpc3RhdGUgZnVuY3Rpb25hbGl0eSBzdHJvbmdseSBzdWdnZXN0cyBpdCdzIGJlaW5nIHVzZWQgdG8gbXVsdGlwbGV4IHNvbWV0aGluZyDigJMgbWF5YmUgZGF0YSwgbWF5YmUgYW4gYWRkcmVzcyBidXMsIHBvdGVudGlhbGx5IGVuYWJsaW5nIG9yIGRpc2FibGluZyBhIGZ1bmN0aW9uYWwgYmxvY2sgd2l0aGluIGEgbGFyZ2VyIHN5c3RlbS4gSSBuZWVkIHRvIHRyYWNlIGJhY2sgdGhlIHNpZ25hbCB0aGF0J3MgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIHRoaXMuIEkgd2FudCB0byBzZWUgd2hhdCB0aGF0IHNpZ25hbCBpcyBjb25uZWN0ZWQgdG8gYW5kIHdoYXQgbG9naWMgZ2F0ZXMgb3Igb3RoZXIgY29tcG9uZW50cyBhcmUgaW52b2x2ZWQgaW4gaXRzIGdlbmVyYXRpb24uIFVuZGVyc3RhbmRpbmcgdGhlIHNlbGVjdGlvbiBsb2dpYyBpcyBnb2luZyB0byBiZSBjcnVjaWFsIHRvIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgY2lyY3VpdCBiZWhhdmlvci4gVGltZSB0byBkZWx2ZSBpbnRvIHRoZSBzY2hlbWF0aWMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUyMTEsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NTo1Mi4yNzU1ODgwN1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTA3Njc5MTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2VsZWN0IFVTQl9GX01JREkyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc9NDQ1PWNvbmZpZyBVU0JfQ09ORklHRlNfRl9NSURJMlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDQ5LVxcdHNlbGVjdCBVU0JfTElCQ09NUE9TSVRFXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDUwOlxcdHNlbGVjdCBVU0JfRl9NSURJMlxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ1MS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjUyLjMyNjM1OTk5OVoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI3MDAzMzEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGVidWdnaW5nIHRoZSBNSURJIDIuMCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgc28gSSBuZWVkIHRvIGVuYWJsZSBNSURJIDIuMCBzdXBwb3J0IHZpYSBjb25maWdmcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBuZWVkIHRvIGVuc3VyZSB0aGUgY29ycmVjdCBLY29uZmlnIG9wdGlvbiBpcyBzZWxlY3RlZCwgYW5kIEknbSBwcmV0dHkgc3VyZSBpdCdzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuIE5vdyBJIHdhbnQgdG8gcXVpY2tseSB2ZXJpZnkgdGhpcyBpbiB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGUgcmVsZXZhbnQgVVNCIGNvbmZpZ3VyYXRpb24uIE5vIHBvaW50IGluIHdhc3RpbmcgdGltZSBpZiBJJ3ZlIGdvdCB0aGUgd3Jvbmcgb3B0aW9uLiBMZXQgbWUganVtcCBpbnRvIHRoZSByZWxldmFudCBLY29uZmlnIGFuZCBkb3VibGUgY2hlY2sgdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIHByb3Blcmx5IGRlZmluZWQgYW5kIGhhcyB0aGUgZGVwZW5kZW5jaWVzIEkgZXhwZWN0LCBhbmQgYWxzbyBtYWtlIHN1cmUgaXQncyBleHBvc2VkIHByb3Blcmx5LiBJdCdzIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGJ1dCBhIHZpdGFsIHN0ZXAgdG8gYXZvaWQgYW55IHJhYmJpdCBob2xlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTU0OSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU2LjM1MzM2Njg2MloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ1NzQxMTY5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfQ09ORklHRlNfRl9NSURJMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnPTQzMT1jb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDQ0LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ0NTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00NDYtXFx0Ym9vbCBcXFwiTUlESSAyLjAgZnVuY3Rpb25cXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU2Ljc5OTExMjM2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NzgwMDAwMDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyBNSURJIDIuMCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYFVTQl9DT05GSUdGU19GX01JREkyYCB0aGluZy4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byBmaWd1cmUgb3V0IHdoYXQgcHJlLXJlcXVpc2l0ZXMgb3IgZGVwZW5kZW5jaWVzIGl0IGhhcy4gV2hhdCBvdGhlciBtb2R1bGVzIG9yIGZsYWdzIGFyZSBuZWNlc3NhcnkgdG8gZW5hYmxlIHRoaXMgTUlESSAyLjAgc3VwcG9ydCB3aXRoaW4gdGhlIENvbmZpZ0ZTIGZyYW1ld29yaz8gSXMgaXQgZGVwZW5kZW50IG9uIGNvcmUgVVNCIGRldmljZSBmdW5jdGlvbmFsaXR5LCBjZXJ0YWluIGhhcmR3YXJlIGRyaXZlcnMsIHNwZWNpZmljIENvbmZpZ0ZTIHN1YnN5c3RlbXMsIG9yIHBhcnRpY3VsYXIga2VybmVsIHZlcnNpb25zPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYnVpbGRpbmcgYmxvY2tzIGJlZm9yZSBJIGNhbiBldmVuIGJlZ2luIHRvIGZ1bGx5IGdyYXNwIGhvdyB0aGlzIHRoaW5nIGZ1bmN0aW9ucyBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgYnJvYWRlciBwaWN0dXJlLiBNeSBpbW1lZGlhdGUgdGFzayBpcyB0byBpZGVudGlmeSBhbmQgZGVsaW5lYXRlIHRob3NlIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTkwMywiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU5Ljc3NzExNDg2OFoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTMzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA0NDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA0NDA6XFx0XFx0ICBpbnB1dCBhbmQgb25lIE1JREkgb3V0cHV0LiBUaGVzZSBNSURJIGphY2tzIGFwcGVhciBhc1xcbiA0NDE6XFx0XFx0ICBhIHNvdW5kIFxcXCJjYXJkXFxcIiBpbiB0aGUgQUxTQSBzb3VuZCBzeXN0ZW0uIE90aGVyIE1JRElcXG4gNDQyOlxcdFxcdCAgY29ubmVjdGlvbnMgY2FuIHRoZW4gYmUgbWFkZSBvbiB0aGUgZ2FkZ2V0IHN5c3RlbSwgdXNpbmdcXG4gNDQzOlxcdFxcdCAgQUxTQSdzIGFjb25uZWN0IHV0aWxpdHkgZXRjLlxcbiA0NDQ6XFx0XFxuIDQ0NTpcXHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJcXG4gNDQ2OlxcdFxcdGJvb2wgXFxcIk1JREkgMi4wIGZ1bmN0aW9uXFxcIlxcbiA0NDc6XFx0XFx0ZGVwZW5kcyBvbiBVU0JfQ09ORklHRlNcXG4gNDQ4OlxcdFxcdGRlcGVuZHMgb24gU05EXFxuIDQ0OTpcXHRcXHRzZWxlY3QgVVNCX0xJQkNPTVBPU0lURVxcbiA0NTA6XFx0XFx0c2VsZWN0IFVTQl9GX01JREkyXFxuIDQ1MTpcXHRcXHRoZWxwXFxuIDQ1MjpcXHRcXHQgIFRoZSBNSURJIDIuMCBmdW5jdGlvbiBkcml2ZXIgcHJvdmlkZXMgdGhlIGdlbmVyaWMgZW11bGF0ZWRcXG4gNDUzOlxcdFxcdCAgVVNCIE1JREkgMi4wIGludGVyZmFjZSwgbG9vcGVkIGJhY2sgdG8gQUxTQSBVTVAgcmF3bWlkaVxcbiA0NTQ6XFx0XFx0ICBkZXZpY2Ugb24gdGhlIGdhZGdldCBob3N0LiBJdCBzdXBwb3J0cyBVTVAgMS4xIHNwZWMgYW5kXFxuIDQ1NTpcXHRcXHQgIHJlc3BvbmRzIFVNUCBTdHJlYW0gbWVzc2FnZXMgZm9yIFVNUCBFbmRwb2ludCBhbmQgRnVuY3Rpb25cXG4gNDU2OlxcdFxcdCAgQmxvY2sgaW5mb3JtYXRpb24gLyBjb25maWd1cmF0aW9uLlxcbiA0NTc6XFx0XFxuIDQ1ODpcXHRjb25maWcgVVNCX0NPTkZJR0ZTX0ZfSElEXFxuIDQ1OTpcXHRcXHRib29sIFxcXCJISUQgZnVuY3Rpb25cXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ1OjU5Ljc3NzE4ODIwOFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTc3MDE5MzAzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkV4YW1pbmluZyB0aGUgVVNCIENvbmZpZ3VyYXRpb24gT3B0aW9ucyoqXG5cbk9rYXksIHNvIHRoZSBzZXR1cCBoZXJlIGhpbmdlcyBvbiBgVVNCX0NPTkZJR0ZTYCBhbmQsIGJ5IGV4dGVuc2lvbiwgYFNORGAuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkZXBlbmRlbmNpZXMsIGFuZCBhbnkgb3RoZXIgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMgYXQgcGxheS4gTGV0IG1lIHNlZS4uLiBgVVNCX0dBREdFVGAgc2VlbXMgbGlrZSBhbm90aGVyIGtleSBwbGF5ZXIgaW4gdGhpcy4gQWgsIHJpZ2h0LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYCwgc28gdGhhdCdzIGEgZGlyZWN0IHJlbGF0aW9uc2hpcCB0byBjb25zaWRlci4gTm93LCB0byBnZXQgYSBjbGVhciBwaWN0dXJlLCBJIG5lZWQgdG8gZGlnIGludG8gdGhlIGBVU0JfQ09ORklHRlNgIGNvbmZpZ3VyYXRpb24gaXRzZWxmIHdpdGhpbiBLY29uZmlnLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBwaWVjZXMgZml0IHRvZ2V0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDMyLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjowMy4zNTQyMDk1OTFaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NDc1NzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBVU0JfQ09ORklHRlNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZz0yMjM9Y29uZmlnIFVTQl9GX1RDTVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjI3LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjIyODpjb25maWcgVVNCX0NPTkZJR0ZTXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjI5LVxcdHRyaXN0YXRlIFxcXCJVU0IgR2FkZ2V0IGZ1bmN0aW9ucyBjb25maWd1cmFibGUgdGhyb3VnaCBjb25maWdmc1xcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTIzOS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzoyNDA6Y29uZmlnIFVTQl9DT05GSUdGU19TRVJJQUxcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNDEtXFx0Ym9vbCBcXFwiR2VuZXJpYyBzZXJpYWwgYnVsayBpbi9vdXRcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNDgtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjQ5OmNvbmZpZyBVU0JfQ09ORklHRlNfQUNNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjUwLVxcdGJvb2wgXFxcIkFic3RyYWN0IENvbnRyb2wgTW9kZWwgKENEQyBBQ00pXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjU4LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjI1OTpjb25maWcgVVNCX0NPTkZJR0ZTX09CRVhcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNjAtXFx0Ym9vbCBcXFwiT2JqZWN0IEV4Y2hhbmdlIE1vZGVsIChDREMgT0JFWClcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yNjgtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjY5OmNvbmZpZyBVU0JfQ09ORklHRlNfTkNNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjcwLVxcdGJvb2wgXFxcIk5ldHdvcmsgQ29udHJvbCBNb2RlbCAoQ0RDIE5DTSlcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yODAtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MjgxOmNvbmZpZyBVU0JfQ09ORklHRlNfRUNNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjgyLVxcdGJvb2wgXFxcIkV0aGVybmV0IENvbnRyb2wgTW9kZWwgKENEQyBFQ00pXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMjkyLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjI5Mzpjb25maWcgVVNCX0NPTkZJR0ZTX0VDTV9TVUJTRVRcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0yOTQtXFx0Ym9vbCBcXFwiRXRoZXJuZXQgQ29udHJvbCBNb2RlbCAoQ0RDIEVDTSkgc3Vic2V0XFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzAyLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMwMzpjb25maWcgVVNCX0NPTkZJR0ZTX1JORElTXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzA0LVxcdGJvb2wgXFxcIlJORElTXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzE4LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjMxOTpjb25maWcgVVNCX0NPTkZJR0ZTX0VFTVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTMyMC1cXHRib29sIFxcXCJFdGhlcm5ldCBFbXVsYXRpb24gTW9kZWwgKEVFTSlcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zMzQtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6MzM1OmNvbmZpZyBVU0JfQ09ORklHRlNfUEhPTkVUXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzM2LVxcdGJvb2wgXFxcIlBob25ldCBwcm90b2NvbFxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM0NC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozNDU6Y29uZmlnIFVTQl9DT05GSUdGU19NQVNTX1NUT1JBR0VcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zNDYtXFx0Ym9vbCBcXFwiTWFzcyBzdG9yYWdlXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzU1LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjM1Njpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTEJfU1NcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zNTctXFx0Ym9vbCBcXFwiTG9vcGJhY2sgYW5kIHNvdXJjZXNpbmsgZnVuY3Rpb24gKGZvciB0ZXN0aW5nKVxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM2OC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzozNjk6Y29uZmlnIFVTQl9DT05GSUdGU19GX0ZTXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzcwLVxcdGJvb2wgXFxcIkZ1bmN0aW9uIGZpbGVzeXN0ZW0gKEZ1bmN0aW9uRlMpXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctMzgwLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjM4MTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVUFDMVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTM4Mi1cXHRib29sIFxcXCJBdWRpbyBDbGFzcyAxLjBcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy0zOTgtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6Mzk5OmNvbmZpZyBVU0JfQ09ORklHRlNfRl9VQUMxX0xFR0FDWVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQwMC1cXHRib29sIFxcXCJBdWRpbyBDbGFzcyAxLjAgKGxlZ2FjeSBpbXBsZW1lbnRhdGlvbilcXFwiXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MTEtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWc6NDEyOmNvbmZpZyBVU0JfQ09ORklHRlNfRl9VQUMyXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDEzLVxcdGJvb2wgXFxcIkF1ZGlvIENsYXNzIDIuMFxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQzMC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0MzE6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JRElcXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZy00MzItXFx0Ym9vbCBcXFwiTUlESSBmdW5jdGlvblxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ0NC1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0NDU6Y29uZmlnIFVTQl9DT05GSUdGU19GX01JREkyXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDQ2LVxcdGJvb2wgXFxcIk1JREkgMi4wIGZ1bmN0aW9uXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDU3LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ1ODpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfSElEXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDU5LVxcdGJvb2wgXFxcIkhJRCBmdW5jdGlvblxcXCJcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ2Ny1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZzo0Njg6Y29uZmlnIFVTQl9DT05GSUdGU19GX1VWQ1xcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ2OS1cXHRib29sIFxcXCJVU0IgV2ViY2FtIGZ1bmN0aW9uXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDgwLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ4MTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfUFJJTlRFUlxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnLTQ4Mi1cXHRib29sIFxcXCJQcmludGVyIGZ1bmN0aW9uXFxcIlxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDk0LVxcbmRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnOjQ5NTpjb25maWcgVVNCX0NPTkZJR0ZTX0ZfVENNXFxuZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWctNDk2LVxcdGJvb2wgXFxcIlVTQiBHYWRnZXQgVGFyZ2V0IEZhYnJpY1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MDMuNDAyNjg4OThaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA5MTk3NjY0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3Mgb24gdGhpczpcblxuKipDaGVja2luZyBgVVNCX0NPTkZJR0ZTYCBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBgVVNCX0NPTkZJR0ZTYC4gSSBrbm93IGl0J3MgYSBrZXkgcGllY2Ugb2YgdGhlIHB1enpsZSBmb3IgYSBsb3Qgb2YgVVNCLXJlbGF0ZWQgY29uZmlndXJhdGlvbnMsIGVzcGVjaWFsbHkgZm9yIG1vcmUgYWR2YW5jZWQgb3IgY3VzdG9tIHNldHVwcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIHNjb3BlLiBJIG5lZWQgdG8gZXN0YWJsaXNoIGEgYmFzZSBsYXllciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkZXBlbmRlbmNpZXMgb2YgYFVTQl9DT05GSUdGU2AuIFdoYXQgb3RoZXIga2VybmVsIG1vZHVsZXMgb3IgY29tcG9uZW50cyBkb2VzIGl0IGxlYW4gb24/IEFyZSB0aGVyZSBzcGVjaWZpYyBkcml2ZXJzIGl0IHJlcXVpcmVzPyBEb2VzIGl0IHJlbHkgb24gcGFydGljdWxhciBoYXJkd2FyZSBmZWF0dXJlcz9cblxuSSBuZWVkIHRvIHF1aWNrbHkgYXNzZXNzIHRoaXMsIGJlY2F1c2UgdW5kZXJzdGFuZGluZyB0aGUgdW5kZXJseWluZyBkZXBlbmRlbmNpZXMgaXMgYWJzb2x1dGVseSBjcml0aWNhbCBiZWZvcmUgSSBjYW4gZXZlbiBjb25zaWRlciBtb2RpZnlpbmcgaXQsIGNvbmZpZ3VyaW5nIGl0LCBvciB0cm91Ymxlc2hvb3RpbmcgYW55IHBvdGVudGlhbCBpc3N1ZXMgd2l0aCBpdC4gS25vd2luZyB0aGUgZGVwZW5kZW5jaWVzIGhlbHBzIG1lIHRvIHVuZGVyc3RhbmQgcG90ZW50aWFsIGZhaWx1cmUgcG9pbnRzIGFuZCB0byBwbGFuIGEgc3lzdGVtIGNvbmZpZ3VyYXRpb24gYXBwcm9wcmlhdGVseS4gVGhpcyB3aWxsIGhlbHAgdG8gc3RyZWFtbGluZSBhbnkgZnVydGhlciBzdGVwcy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODEzOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjA2LjQ5NDY2ODg0NVoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjY2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMjgsXG4gIFwiTGluZUNvdW50XCI6IDE1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMjg6XFx0Y29uZmlnIFVTQl9DT05GSUdGU1xcbiAyMjk6XFx0XFx0dHJpc3RhdGUgXFxcIlVTQiBHYWRnZXQgZnVuY3Rpb25zIGNvbmZpZ3VyYWJsZSB0aHJvdWdoIGNvbmZpZ2ZzXFxcIlxcbiAyMzA6XFx0XFx0c2VsZWN0IFVTQl9MSUJDT01QT1NJVEVcXG4gMjMxOlxcdFxcdGhlbHBcXG4gMjMyOlxcdFxcdCAgQSBMaW51eCBVU0IgXFxcImdhZGdldFxcXCIgY2FuIGJlIHNldCB1cCB0aHJvdWdoIGNvbmZpZ2ZzLlxcbiAyMzM6XFx0XFx0ICBJZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGUgVVNCIGZ1bmN0aW9ucyAod2hpY2ggZnJvbSB0aGUgaG9zdCdzXFxuIDIzNDpcXHRcXHQgIHBlcnNwZWN0aXZlIGFyZSBzZWVuIGFzIGludGVyZmFjZXMpIGFuZCBjb25maWd1cmF0aW9ucyBhcmVcXG4gMjM1OlxcdFxcdCAgc3BlY2lmaWVkIHNpbXBseSBieSBjcmVhdGluZyBhcHByb3ByaWF0ZSBkaXJlY3RvcmllcyBpbiBjb25maWdmcy5cXG4gMjM2OlxcdFxcdCAgQXNzb2NpYXRpbmcgZnVuY3Rpb25zIHdpdGggY29uZmlndXJhdGlvbnMgaXMgZG9uZSBieSBjcmVhdGluZ1xcbiAyMzc6XFx0XFx0ICBhcHByb3ByaWF0ZSBzeW1ib2xpYyBsaW5rcy5cXG4gMjM4OlxcdFxcdCAgRm9yIG1vcmUgaW5mb3JtYXRpb24gc2VlIERvY3VtZW50YXRpb24vdXNiL2dhZGdldF9jb25maWdmcy5yc3QuXFxuIDIzOTpcXHRcXG4gMjQwOlxcdGNvbmZpZyBVU0JfQ09ORklHRlNfU0VSSUFMXFxuIDI0MTpcXHRcXHRib29sIFxcXCJHZW5lcmljIHNlcmlhbCBidWxrIGluL291dFxcXCJcXG4gMjQyOlxcdFxcdGRlcGVuZHMgb24gVVNCX0NPTkZJR0ZTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjA2LjQ5NDc2Mzk1NVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDUxMzg4ODcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKk5hdmlnYXRpbmcgdGhlIFVTQiBHYWRnZXQgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5IbW0sIHRoaXMgbG9va3MgZmFtaWxpYXIsIGJ1dCBpdCdzIGEgYml0IG9kZC4gSSBkb24ndCBzZWUgYW55IGRpcmVjdCBkZXBlbmRlbmN5IG9uIGBVU0JfR0FER0VUYCBpbiB0aGlzIHBhcnRpY3VsYXIgY29kZSBzbmlwcGV0LiBIb3dldmVyLCB0aGUgY29udGV4dCBmZWVscyAqdmVyeSogcmVsYXRlZCB0byBpdCwgZG9lc24ndCBpdD8gSXQncyBhbG1vc3QgY2VydGFpbmx5IG5lc3RlZCB3aXRoaW4gdGhlIGBtZW51Y29uZmlnIFVTQl9HQURHRVRgIHN0cnVjdHVyZSwgb3IgcGVyaGFwcyBzb21ldGhpbmcgZXF1YWxseSBzcGVjaWZpYyB3aXRoaW4gdGhlIGJ1aWxkIHN5c3RlbS4gSeKAmW0gdGhpbmtpbmcgdGhlcmUgbWlnaHQgYmUgc29tZSBpbXBsaWNpdCBsaW5raW5nIG9yIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIGdvaW5nIG9uLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGFuZCB0byBxdWlja2x5IGdyYXNwIHRoZSBzdXJyb3VuZGluZyBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcywgbGV0J3MganVzdCBnbyBzdHJhaWdodCB0byB0aGUgc291cmNlLiBUaGUgYmVzdCBhcHByb2FjaCBpcyB0byBjaGVjayB0aGUgYGRyaXZlcnMvdXNiL2dhZGdldC9LY29uZmlnYCBmaWxlIGF0IHRoZSB2ZXJ5IHRvcC4gVGhhdCdzIHVzdWFsbHkgdGhlIGF1dGhvcml0YXRpdmUgZGVjbGFyYXRpb24gb2YgdGhlIG1vZHVsZSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgd2lkZXIgVVNCIGdhZGdldCBzdWJzeXN0ZW0gYW5kIGFsbCBvZiBpdHMgZGVwZW5kZW5jaWVzLiBUaGF0IGZpbGUgaXMgZ29pbmcgdG8gbWFrZSBpdCBjcnlzdGFsIGNsZWFyIGV4YWN0bHkgd2hhdCdzIGdvaW5nIG9uIHdpdGggYWxsIHRoZXNlIG9wdGlvbnMgYW5kIGNvbmRpdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg2MzEsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjEwLjU0NjE1NTcwNloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzQyNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjXFxuICAgMzpcXHQjIFVTQiBHYWRnZXQgc3VwcG9ydCBvbiBhIHN5c3RlbSBpbnZvbHZlc1xcbiAgIDQ6XFx0IyAgICAoYSkgYSBwZXJpcGhlcmFsIGNvbnRyb2xsZXIsIGFuZFxcbiAgIDU6XFx0IyAgICAoYikgdGhlIGdhZGdldCBkcml2ZXIgdXNpbmcgaXQuXFxuICAgNjpcXHQjXFxuICAgNzpcXHQjIE5PVEU6ICBHYWRnZXQgc3VwcG9ydCAqKiBET0VTIE5PVCAqKiBkZXBlbmQgb24gaG9zdC1zaWRlIENPTkZJR19VU0IgISFcXG4gICA4OlxcdCNcXG4gICA5OlxcdCMgIC0gSG9zdCBzeXN0ZW1zIChsaWtlIFBDcykgbmVlZCBDT05GSUdfVVNCICh3aXRoIFxcXCJBXFxcIiBqYWNrcykuXFxuICAxMDpcXHQjICAtIFBlcmlwaGVyYWxzIChsaWtlIFBEQXMpIG5lZWQgQ09ORklHX1VTQl9HQURHRVQgKHdpdGggXFxcIkJcXFwiIGphY2tzKS5cXG4gIDExOlxcdCMgIC0gU29tZSBzeXN0ZW1zIGhhdmUgYm90aCBraW5kcyBvZiBjb250cm9sbGVycy5cXG4gIDEyOlxcdCNcXG4gIDEzOlxcdCMgV2l0aCBoZWxwIGZyb20gYSBzcGVjaWFsIHRyYW5zY2VpdmVyIGFuZCBhIFxcXCJNaW5pLUFCXFxcIiBqYWNrLCBzeXN0ZW1zIHdpdGhcXG4gIDE0OlxcdCMgYm90aCBraW5kcyBvZiBjb250cm9sbGVyIGNhbiBhbHNvIHN1cHBvcnQgXFxcIlVTQiBPbi10aGUtR29cXFwiIChDT05GSUdfVVNCX09URykuXFxuICAxNTpcXHQjXFxuICAxNjpcXHRcXG4gIDE3OlxcdG1lbnVjb25maWcgVVNCX0dBREdFVFxcbiAgMTg6XFx0XFx0dHJpc3RhdGUgXFxcIlVTQiBHYWRnZXQgU3VwcG9ydFxcXCJcXG4gIDE5OlxcdFxcdHNlbGVjdCBVU0JfQ09NTU9OXFxuICAyMDpcXHRcXHRzZWxlY3QgTkxTXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjEwLjU0NjQ5MjEwNloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODc1NjM2NzM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IENvbmZpZ3VyYXRpb24gUXVlc3QqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIHRvIGdldCB0aGlzIHNldHVwIHdvcmtpbmcsIEknbSB0aGlua2luZyBJJ2xsIG5lZWQgYFVTQl9HQURHRVRgLCBkZWZpbml0ZWx5LCBhbG9uZyB3aXRoIGBVU0JfQ09ORklHRlNgIGZvciB0aGUgZmxleGliaWxpdHkuIEFuZCBzaW5jZSB3ZSdyZSBkZWFsaW5nIHdpdGggYXVkaW8sIGBTTkRgIHNlZW1zIGNydWNpYWwuIEFoLCBhbmQgaGVyZSB3ZSBhcmUsIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgdGhlIG1hZ2ljIGJ1dHRvbiBmb3IgdGhlIE1JREkgMi4wIGNvbmZpZ3VyYXRpb24uIE5vdywgYSBsaXR0bGUgbWVudGFsIGNoZWNrOiBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIHNlZW1zIHRvIGJyaW5nIGluIGBVU0JfRl9NSURJMmAuIEdvb2QuIEJ1dCBiZWZvcmUgSSBnZXQgdG9vIGZhciBkb3duIHRoaXMgcm9hZCwgSSBzaG91bGQganVzdCBxdWlja2x5IGRvdWJsZSBjaGVjayBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHN1cHBvcnRpbmcgbW9kdWxlcyBvciBkZXBlbmRlbmNpZXMgdGhhdCBgVVNCX0ZfTUlESTJgIHB1bGxzIGluLiBCZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5IHdoZW4gY29uZmlndXJpbmcgYSBzeXN0ZW0hIEkgbmVlZCBhIGNsZWFuIGFuZCBzdGFibGUgYnVpbGQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjkyNTUsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjE0LjQyMjEzMjQ4MloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MTc3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMDAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyMDA6XFx0XFx0dHJpc3RhdGVcXG4gMjAxOlxcdFxcbiAyMDI6XFx0Y29uZmlnIFVTQl9GX1VBQzJcXG4gMjAzOlxcdFxcdHRyaXN0YXRlXFxuIDIwNDpcXHRcXG4gMjA1OlxcdGNvbmZpZyBVU0JfRl9VVkNcXG4gMjA2OlxcdFxcdHRyaXN0YXRlXFxuIDIwNzpcXHRcXHRzZWxlY3QgVVZDX0NPTU1PTlxcbiAyMDg6XFx0XFxuIDIwOTpcXHRjb25maWcgVVNCX0ZfTUlESVxcbiAyMTA6XFx0XFx0dHJpc3RhdGVcXG4gMjExOlxcdFxcbiAyMTI6XFx0Y29uZmlnIFVTQl9GX01JREkyXFxuIDIxMzpcXHRcXHR0cmlzdGF0ZVxcbiAyMTQ6XFx0XFx0c2VsZWN0IFNORF9VTVBcXG4gMjE1OlxcdFxcdHNlbGVjdCBTTkRfVU1QX0xFR0FDWV9SQVdNSURJXFxuIDIxNjpcXHRcXG4gMjE3OlxcdGNvbmZpZyBVU0JfRl9ISURcXG4gMjE4OlxcdFxcdHRyaXN0YXRlXFxuIDIxOTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MTQuNDIyMjI1NjIyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5NzQ5NjgxNjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgS2NvbmZpZyBBdWRpdCBUcmFpbCoqXG5cbk9rYXksIHNvIEknbSBzZWVpbmcgYFVTQl9GX01JREkyYCB0cmlnZ2VyaW5nIGJvdGggYFNORF9VTVBgIGFuZCBgU05EX1VNUF9MRUdBQ1lfUkFXTUlESWAuIFJpZ2h0LCB0aGF0IG1ha2VzIHNlbnNlIGZvciB0aGUgbW9kZXJuIE1JREkgMi4wIHN0dWZmLCBhbmQgdGhlIGxlZ2FjeSByYXcgTUlESSBzdXBwb3J0LiBCdXQgaGFuZyBvbi4uLiBpdCBhbHNvIHNlZW1zIGxpa2UgYFNORGAgaXMgYSBkZXBlbmRlbmN5IGhlcmUsIHdoaWNoIGlzIGludGVyZXN0aW5nLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBMZXQgbWUgcXVpY2tseSBqdW1wIG92ZXIgdG8gYHNvdW5kL0tjb25maWdgIGFuZCB0YWtlIGEgbG9vayBhdCB0aGUgYXVkaW8gY29yZSBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgYFNORGAgaXMgaW5kZWVkIGJlaW5nIGJyb3VnaHQgaW4gYnkgdGhpcyBzZWxlY3Rpb24sIGFuZCB1bmRlcnN0YW5kIHRoZSBpbXBsaWNhdGlvbnMgZnVsbHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk3NzAsIk91dHB1dFRva2VucyI6MjQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjE3LjM5NzE5NzM4WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY5MTc1OTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNORFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJzb3VuZC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1Mjg0IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5zb3VuZC9LY29uZmlnPTQwPXNvdXJjZSBcXFwic291bmQvb3NzL2RtYXNvdW5kL0tjb25maWdcXFwiXFxuc291bmQvS2NvbmZpZy00MS1cXG5zb3VuZC9LY29uZmlnOjQyOm1lbnVjb25maWcgU05EXFxuc291bmQvS2NvbmZpZy00My1cXHR0cmlzdGF0ZSBcXFwiQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlXFxcIlxcbi0tXFxuc291bmQvYW9hL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9hb2EvS2NvbmZpZzoyOm1lbnVjb25maWcgU05EX0FPQVxcbnNvdW5kL2FvYS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkFwcGxlIE9uYm9hcmQgQXVkaW8gZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnOjI6Y29uZmlnIFNORF9BT0FfT05ZWFxcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJzdXBwb3J0IE9ueXggY2hpcFxcXCJcXG4tLVxcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0xMC1cXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWc6MTE6Y29uZmlnIFNORF9BT0FfVEFTXFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnLTEyLVxcdHRyaXN0YXRlIFxcXCJzdXBwb3J0IFRBUyBjaGlwc1xcXCJcXG4tLVxcbnNvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZy0xOS1cXG5zb3VuZC9hb2EvY29kZWNzL0tjb25maWc6MjA6Y29uZmlnIFNORF9BT0FfVE9PTklFXFxuc291bmQvYW9hL2NvZGVjcy9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJzdXBwb3J0IFRvb25pZSBjaGlwXFxcIlxcbi0tXFxuc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbnNvdW5kL2FvYS9mYWJyaWNzL0tjb25maWc6Mjpjb25maWcgU05EX0FPQV9GQUJSSUNfTEFZT1VUXFxuc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJsYXlvdXQtaWQgZmFicmljXFxcIlxcbi0tXFxuc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9hb2Evc291bmRidXMvS2NvbmZpZzoyOmNvbmZpZyBTTkRfQU9BX1NPVU5EQlVTXFxuc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiQXBwbGUgU291bmRidXMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEwLVxcbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnOjExOmNvbmZpZyBTTkRfQU9BX1NPVU5EQlVTX0kyU1xcbnNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnLTEyLVxcdHRyaXN0YXRlIFxcXCJJMlMgYnVzIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9hcm0vS2NvbmZpZy0zLVxcbnNvdW5kL2FybS9LY29uZmlnOjQ6bWVudWNvbmZpZyBTTkRfQVJNXFxuc291bmQvYXJtL0tjb25maWctNS1cXHRib29sIFxcXCJBUk0gc291bmQgZGV2aWNlc1xcXCJcXG4tLVxcbnNvdW5kL2FybS9LY29uZmlnPTEzPWlmIFNORF9BUk1cXG5zb3VuZC9hcm0vS2NvbmZpZy0xNC1cXG5zb3VuZC9hcm0vS2NvbmZpZzoxNTpjb25maWcgU05EX0FSTUFBQ0lcXG5zb3VuZC9hcm0vS2NvbmZpZy0xNi1cXHR0cmlzdGF0ZSBcXFwiQVJNIFByaW1lQ2VsbCBQTDA0MSBBQyBMaW5rIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9hdG1lbC9LY29uZmlnPTI9bWVudSBcXFwiQXRtZWwgZGV2aWNlcyAoQVQ5MSlcXFwiXFxuLS1cXG5zb3VuZC9hdG1lbC9LY29uZmlnLTQtXFxuc291bmQvYXRtZWwvS2NvbmZpZzo1OmNvbmZpZyBTTkRfQVRNRUxfQUM5N0NcXG5zb3VuZC9hdG1lbC9LY29uZmlnLTYtXFx0dHJpc3RhdGUgXFxcIkF0bWVsIEFDOTcgQ29udHJvbGxlciAoQUM5N0MpIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yLSMgQUxTQSBzb3VuZGNhcmQtY29uZmlndXJhdGlvblxcbnNvdW5kL2NvcmUvS2NvbmZpZzozOmNvbmZpZyBTTkRfVElNRVJcXG5zb3VuZC9jb3JlL0tjb25maWctNC1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvS2NvbmZpZy01LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBTTkRfUENNXFxuc291bmQvY29yZS9LY29uZmlnLTctXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy05LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxMDpjb25maWcgU05EX1BDTV9FTERcXG5zb3VuZC9jb3JlL0tjb25maWctMTEtXFx0Ym9vbFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMi1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTM6Y29uZmlnIFNORF9QQ01fSUVDOTU4XFxuc291bmQvY29yZS9LY29uZmlnLTE0LVxcdGJvb2xcXG5zb3VuZC9jb3JlL0tjb25maWctMTUtXFxuc291bmQvY29yZS9LY29uZmlnOjE2OmNvbmZpZyBTTkRfRE1BRU5HSU5FX1BDTVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTk6Y29uZmlnIFNORF9IV0RFUFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMC1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMS1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjI6Y29uZmlnIFNORF9TRVFfREVWSUNFXFxuc291bmQvY29yZS9LY29uZmlnLTIzLVxcdHRyaXN0YXRlXFxuc291bmQvY29yZS9LY29uZmlnLTI0LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoyNTpjb25maWcgU05EX1JBV01JRElcXG5zb3VuZC9jb3JlL0tjb25maWctMjYtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yOC1cXG5zb3VuZC9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIFNORF9VTVBcXG5zb3VuZC9jb3JlL0tjb25maWctMzAtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0zMi1cXG5zb3VuZC9jb3JlL0tjb25maWc6MzM6Y29uZmlnIFNORF9VTVBfTEVHQUNZX1JBV01JRElcXG5zb3VuZC9jb3JlL0tjb25maWctMzQtXFx0Ym9vbCBcXFwiTGVnYWN5IHJhdyBNSURJIHN1cHBvcnQgZm9yIFVNUCBzdHJlYW1zXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTQxLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo0Mjpjb25maWcgU05EX0NPUkVfVEVTVFxcbnNvdW5kL2NvcmUvS2NvbmZpZy00My1cXHR0cmlzdGF0ZSBcXFwiU291bmQgY29yZSBLVW5pdCB0ZXN0XFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTU4LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo1OTpjb25maWcgU05EX0NPTVBSRVNTX09GRkxPQURcXG5zb3VuZC9jb3JlL0tjb25maWctNjAtXFx0dHJpc3RhdGVcXG5zb3VuZC9jb3JlL0tjb25maWctNjEtXFxuc291bmQvY29yZS9LY29uZmlnOjYyOmNvbmZpZyBTTkRfQ09NUFJFU1NfQUNDRUxcXG5zb3VuZC9jb3JlL0tjb25maWctNjMtXFx0Ym9vbFxcbnNvdW5kL2NvcmUvS2NvbmZpZy02NC1cXG5zb3VuZC9jb3JlL0tjb25maWc6NjU6Y29uZmlnIFNORF9KQUNLXFxuc291bmQvY29yZS9LY29uZmlnLTY2LVxcdGJvb2xcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy02OC0jIGVuYWJsZSBpbnB1dCBkZXZpY2Ugc3VwcG9ydCBpbiBqYWNrIGxheWVyXFxuc291bmQvY29yZS9LY29uZmlnOjY5OmNvbmZpZyBTTkRfSkFDS19JTlBVVF9ERVZcXG5zb3VuZC9jb3JlL0tjb25maWctNzAtXFx0Ym9vbFxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTczLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo3NDpjb25maWcgU05EX09TU0VNVUxcXG5zb3VuZC9jb3JlL0tjb25maWctNzUtXFx0Ym9vbCBcXFwiRW5hYmxlIE9TUyBFbXVsYXRpb25cXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctNzktXFxuc291bmQvY29yZS9LY29uZmlnOjgwOmNvbmZpZyBTTkRfTUlYRVJfT1NTXFxuc291bmQvY29yZS9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJPU1MgTWl4ZXIgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTkxLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzo5Mjpjb25maWcgU05EX1BDTV9PU1NcXG5zb3VuZC9jb3JlL0tjb25maWctOTMtXFx0dHJpc3RhdGUgXFxcIk9TUyBQQ00gKGRpZ2l0YWwgYXVkaW8pIEFQSVxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMDQtXFxuc291bmQvY29yZS9LY29uZmlnOjEwNTpjb25maWcgU05EX1BDTV9PU1NfUExVR0lOU1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMDYtXFx0Ym9vbCBcXFwiT1NTIFBDTSAoZGlnaXRhbCBhdWRpbykgQVBJIC0gSW5jbHVkZSBwbHVnaW4gc3lzdGVtXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTExMy1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTE0OmNvbmZpZyBTTkRfUENNX1RJTUVSXFxuc291bmQvY29yZS9LY29uZmlnLTExNS1cXHRib29sIFxcXCJQQ00gdGltZXIgaW50ZXJmYWNlXFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMjQtXFxuc291bmQvY29yZS9LY29uZmlnOjEyNTpjb25maWcgU05EX0hSVElNRVJcXG5zb3VuZC9jb3JlL0tjb25maWctMTI2LVxcdHRyaXN0YXRlIFxcXCJIUi10aW1lciBiYWNrZW5kIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTM2LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIFNORF9EWU5BTUlDX01JTk9SU1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xMzgtXFx0Ym9vbCBcXFwiRHluYW1pYyBkZXZpY2UgZmlsZSBtaW5vciBudW1iZXJzXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTE0Ni1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTQ3OmNvbmZpZyBTTkRfTUFYX0NBUkRTXFxuc291bmQvY29yZS9LY29uZmlnLTE0OC1cXHRpbnQgXFxcIk1heCBudW1iZXIgb2Ygc291bmQgY2FyZHNcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTU1LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxNTY6Y29uZmlnIFNORF9TVVBQT1JUX09MRF9BUElcXG5zb3VuZC9jb3JlL0tjb25maWctMTU3LVxcdGJvb2wgXFxcIlN1cHBvcnQgb2xkIEFMU0EgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTE2Mi1cXG5zb3VuZC9jb3JlL0tjb25maWc6MTYzOmNvbmZpZyBTTkRfUFJPQ19GU1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNjQtXFx0Ym9vbCBcXFwiU291bmQgUHJvYyBGUyBTdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xNzEtXFxuc291bmQvY29yZS9LY29uZmlnOjE3Mjpjb25maWcgU05EX1ZFUkJPU0VfUFJPQ0ZTXFxuc291bmQvY29yZS9LY29uZmlnLTE3My1cXHRib29sIFxcXCJWZXJib3NlIHByb2NmcyBjb250ZW50c1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xODAtXFxuc291bmQvY29yZS9LY29uZmlnOjE4MTpjb25maWcgU05EX0NUTF9GQVNUX0xPT0tVUFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0xODItXFx0Ym9vbCBcXFwiRmFzdCBsb29rdXAgb2YgY29udHJvbCBlbGVtZW50c1xcXCIgaWYgRVhQRVJUXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTkwLVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTE6Y29uZmlnIFNORF9ERUJVR1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0xOTItXFx0Ym9vbCBcXFwiRGVidWdcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMTk1LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoxOTY6Y29uZmlnIFNORF9ERUJVR19WRVJCT1NFXFxuc291bmQvY29yZS9LY29uZmlnLTE5Ny1cXHRib29sIFxcXCJNb3JlIHZlcmJvc2UgZGVidWdcXFwiXFxuLS1cXG5zb3VuZC9jb3JlL0tjb25maWctMjA0LVxcbnNvdW5kL2NvcmUvS2NvbmZpZzoyMDU6Y29uZmlnIFNORF9QQ01fWFJVTl9ERUJVR1xcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMDYtXFx0Ym9vbCBcXFwiRW5hYmxlIFBDTSByaW5nIGJ1ZmZlciBvdmVycnVuL3VuZGVycnVuIGRlYnVnZ2luZ1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yMTQtXFxuc291bmQvY29yZS9LY29uZmlnOjIxNTpjb25maWcgU05EX0NUTF9JTlBVVF9WQUxJREFUSU9OXFxuc291bmQvY29yZS9LY29uZmlnLTIxNi1cXHRib29sIFxcXCJWYWxpZGF0ZSBpbnB1dCBkYXRhIHRvIGNvbnRyb2wgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTIyNC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjI1OmNvbmZpZyBTTkRfQ1RMX0RFQlVHXFxuc291bmQvY29yZS9LY29uZmlnLTIyNi1cXHRib29sIFxcXCJFbmFibGUgZGVidWdnaW5nIGZlYXR1cmUgZm9yIGNvbnRyb2wgQVBJXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTIzOC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjM5OmNvbmZpZyBTTkRfSkFDS19JTkpFQ1RJT05fREVCVUdcXG5zb3VuZC9jb3JlL0tjb25maWctMjQwLVxcdGJvb2wgXFxcIlNvdW5kIGphY2sgaW5qZWN0aW9uIGludGVyZmFjZSB2aWEgZGVidWdmc1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNDctXFxuc291bmQvY29yZS9LY29uZmlnOjI0ODpjb25maWcgU05EX1VUSU1FUlxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNDktXFx0Ym9vbCBcXFwiRW5hYmxlIHN1cHBvcnQgZm9yIHVzZXJzcGFjZS1jb250cm9sbGVkIHZpcnR1YWwgdGltZXJzXFxcIlxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTI1Ny1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjU4OmNvbmZpZyBTTkRfVk1BU1RFUlxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNTktXFx0Ym9vbFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjAtXFxuc291bmQvY29yZS9LY29uZmlnOjI2MTpjb25maWcgU05EX0RNQV9TR0JVRlxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjItXFx0ZGVmX2Jvb2wgeVxcbi0tXFxuc291bmQvY29yZS9LY29uZmlnLTI2NC1cXG5zb3VuZC9jb3JlL0tjb25maWc6MjY1OmNvbmZpZyBTTkRfQ1RMX0xFRFxcbnNvdW5kL2NvcmUvS2NvbmZpZy0yNjYtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjI6Y29uZmlnIFNORF9TRVFVRU5DRVJcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNlcXVlbmNlciBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZz0xND1pZiBTTkRfU0VRVUVOQ0VSXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy0xNS1cXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjE2OmNvbmZpZyBTTkRfU0VRX0RVTU1ZXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZSBcXFwiU2VxdWVuY2VyIGR1bW15IGNsaWVudFxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctMjgtXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzoyOTpjb25maWcgU05EX1NFUVVFTkNFUl9PU1NcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTMwLVxcdHRyaXN0YXRlIFxcXCJPU1MgU2VxdWVuY2VyIEFQSVxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNDEtXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo0Mjpjb25maWcgU05EX1NFUV9IUlRJTUVSX0RFRkFVTFRcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTQzLVxcdGJvb2wgXFxcIlVzZSBIUi10aW1lciBhcyBkZWZhdWx0IHNlcXVlbmNlciB0aW1lclxcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNDktXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1MDpjb25maWcgU05EX1NFUV9NSURJX0VWRU5UXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01MS1cXHR0cmlzdGF0ZVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNTItXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1Mzpjb25maWcgU05EX1NFUV9NSURJXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01NC1cXHRkZWZfdHJpc3RhdGUgU05EX1JBV01JRElcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNTYtXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo1Nzpjb25maWcgU05EX1NFUV9NSURJX0VNVUxcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTU4LVxcdHRyaXN0YXRlXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy01OS1cXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjYwOmNvbmZpZyBTTkRfU0VRX1ZJUk1JRElcXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnLTYxLVxcdHRyaXN0YXRlXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy02Mi1cXG5zb3VuZC9jb3JlL3NlcS9LY29uZmlnOjYzOmNvbmZpZyBTTkRfU0VRX1VNUFxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNjQtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgVU1QIGV2ZW50c1xcXCJcXG4tLVxcbnNvdW5kL2NvcmUvc2VxL0tjb25maWctNzItXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZzo3Mzpjb25maWcgU05EX1NFUV9VTVBfQ0xJRU5UXFxuc291bmQvY29yZS9zZXEvS2NvbmZpZy03NC1cXHRkZWZfdHJpc3RhdGUgU05EX1VNUCBcXHUwMDI2XFx1MDAyNiBTTkRfU0VRX1VNUFxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuc291bmQvZHJpdmVycy9LY29uZmlnOjI6Y29uZmlnIFNORF9NUFU0MDFfVUFSVFxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0zLVxcdHRyaXN0YXRlXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctNS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6Njpjb25maWcgU05EX09QTDNfTElCXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTctXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTI6Y29uZmlnIFNORF9PUEw0X0xJQlxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMy1cXHR0cmlzdGF0ZVxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE4LSMgc2VsZWN0IFNFUSBzdHVmZiB0byBtaW4oU05EX1NFUVVFTkNFUixTTkRfWFhYKVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxOTpjb25maWcgU05EX09QTDNfTElCX1NFUVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMC1cXHRkZWZfdHJpc3RhdGUgU05EX1NFUVVFTkNFUiBcXHUwMDI2XFx1MDAyNiBTTkRfT1BMM19MSUJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMy1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MjQ6Y29uZmlnIFNORF9PUEw0X0xJQl9TRVFcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjUtXFx0ZGVmX3RyaXN0YXRlIFNORF9TRVFVRU5DRVIgXFx1MDAyNlxcdTAwMjYgU05EX09QTDRfTElCXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjgtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjI5OmNvbmZpZyBTTkRfVlhfTElCXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTMwLVxcdHRyaXN0YXRlXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMzQtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjM1OmNvbmZpZyBTTkRfQUM5N19DT0RFQ1xcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0zNi1cXHR0cmlzdGF0ZVxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTQwLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo0MTptZW51Y29uZmlnIFNORF9EUklWRVJTXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTQyLVxcdGJvb2wgXFxcIkdlbmVyaWMgc291bmQgZGV2aWNlc1xcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZz00Nz1pZiBTTkRfRFJJVkVSU1xcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy00OC1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6NDk6Y29uZmlnIFNORF9QQ1NQXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTUwLVxcdHRyaXN0YXRlIFxcXCJQQy1TcGVha2VyIHN1cHBvcnQgKFJFQUQgSEVMUCEpXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTc4LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzo3OTpjb25maWcgU05EX0RVTU1ZXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTgwLVxcdHRyaXN0YXRlIFxcXCJEdW1teSAoL2Rldi9udWxsKSBzb3VuZGNhcmRcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctOTEtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjkyOmNvbmZpZyBTTkRfQUxPT1BcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctOTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgbG9vcGJhY2sgZHJpdmVyIChQQ00pXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTExMS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTEyOmNvbmZpZyBTTkRfUENNVEVTVFxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgUENNIHRlc3QgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTEyOC1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTI5OmNvbmZpZyBTTkRfVklSTUlESVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xMzAtXFx0dHJpc3RhdGUgXFxcIlZpcnR1YWwgTUlESSBzb3VuZGNhcmRcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTQ1LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoxNDY6Y29uZmlnIFNORF9NVFBBVlxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNDctXFx0dHJpc3RhdGUgXFxcIk1PVFUgTWlkaVRpbWVQaWVjZSBBViBtdWx0aXBvcnQgTUlESVxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNTctXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjE1ODpjb25maWcgU05EX01UUzY0XFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE1OS1cXHR0cmlzdGF0ZSBcXFwiRVNJIE1pZGl0ZXJtaW5hbCA0MTQwIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0xNzAtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjE3MTpjb25maWcgU05EX1NFUklBTF9VMTY1NTBcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTcyLVxcdHRyaXN0YXRlIFxcXCJVQVJUMTY1NTAgc2VyaWFsIE1JREkgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvZHJpdmVycy9LY29uZmlnLTE4Ni1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWc6MTg3OmNvbmZpZyBTTkRfU0VSSUFMX0dFTkVSSUNcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMTg4LVxcdHRyaXN0YXRlIFxcXCJHZW5lcmljIHNlcmlhbCBNSURJIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMDQtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjIwNTpjb25maWcgU05EX01QVTQwMVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMDYtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgTVBVLTQwMSBVQVJUIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yMTUtXFxuc291bmQvZHJpdmVycy9LY29uZmlnOjIxNjpjb25maWcgU05EX1BPUlRNQU4yWDRcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjE3LVxcdHRyaXN0YXRlIFxcXCJQb3J0bWFuIDJ4NCBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjI2LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyMjc6Y29uZmlnIFNORF9BQzk3X1BPV0VSX1NBVkVcXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjI4LVxcdGJvb2wgXFxcIkFDOTcgUG93ZXItU2F2aW5nIE1vZGVcXFwiXFxuLS1cXG5zb3VuZC9kcml2ZXJzL0tjb25maWctMjU1LVxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZzoyNTY6Y29uZmlnIFNORF9BQzk3X1BPV0VSX1NBVkVfREVGQVVMVFxcbnNvdW5kL2RyaXZlcnMvS2NvbmZpZy0yNTctXFx0aW50IFxcXCJEZWZhdWx0IHRpbWUtb3V0IGZvciBBQzk3IHBvd2VyLXNhdmUgbW9kZVxcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjI6bWVudWNvbmZpZyBTTkRfRklSRVdJUkVcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTMtXFx0Ym9vbCBcXFwiRmlyZVdpcmUgc291bmQgZGV2aWNlc1xcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc9OT1pZiBTTkRfRklSRVdJUkUgXFx1MDAyNlxcdTAwMjYgRklSRVdJUkVcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEwLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTE6Y29uZmlnIFNORF9GSVJFV0lSRV9MSUJcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEyLVxcdHRyaXN0YXRlXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE1LVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTY6Y29uZmlnIFNORF9ESUNFXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy0xNy1cXHR0cmlzdGF0ZSBcXFwiRElDRS1iYXNlZCBEQUNzIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTQzLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6NDQ6Y29uZmlnIFNORF9PWEZXXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy00NS1cXHR0cmlzdGF0ZSBcXFwiT3hmb3JkIFNlbWljb25kdWN0b3IgRlc5NzAvOTcxIGNoaXBzZXQgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNjYtXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZzo2Nzpjb25maWcgU05EX0lTSUdIVFxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctNjgtXFx0dHJpc3RhdGUgXFxcIkFwcGxlIGlTaWdodCBtaWNyb3Bob25lXFxcIlxcbi0tXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy03Ni1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjc3OmNvbmZpZyBTTkRfRklSRVdPUktTXFxuc291bmQvZmlyZXdpcmUvS2NvbmZpZy03OC1cXHR0cmlzdGF0ZSBcXFwiRWNobyBGaXJld29ya3MgYm9hcmQgbW9kdWxlIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTkyLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6OTM6Y29uZmlnIFNORF9CRUJPQlxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctOTQtXFx0dHJpc3RhdGUgXFxcIkJyaWRnZUNvIERNMTAwMC9ETTExMDAvRE0xNTAwIHdpdGggQmVCb0IgZmlybXdhcmVcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEzNC1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjEzNTpjb25maWcgU05EX0ZJUkVXSVJFX0RJR0kwMFhcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTEzNi1cXHR0cmlzdGF0ZSBcXFwiRGlnaWRlc2lnbiBEaWdpIDAwMi8wMDMgZmFtaWx5IHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE0OS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE1MDpjb25maWcgU05EX0ZJUkVXSVJFX1RBU0NBTVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMTUxLVxcdHRyaXN0YXRlIFxcXCJUQVNDQU0gRmlyZVdpcmUgc2VyaWVzIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE2Mi1cXG5zb3VuZC9maXJld2lyZS9LY29uZmlnOjE2Mzpjb25maWcgU05EX0ZJUkVXSVJFX01PVFVcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE2NC1cXHR0cmlzdGF0ZSBcXFwiTWFyayBvZiB0aGUgdW5pY29ybiBGaXJlV2lyZSBzZXJpZXMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWctMTg5LVxcbnNvdW5kL2ZpcmV3aXJlL0tjb25maWc6MTkwOmNvbmZpZyBTTkRfRklSRUZBQ0VcXG5zb3VuZC9maXJld2lyZS9LY29uZmlnLTE5MS1cXHR0cmlzdGF0ZSBcXFwiUk1FIEZpcmVmYWNlIHNlcmllcyBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnPTI9aWYgU05EX0hEQVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZzo0OmNvbmZpZyBTTkRfSERBX0dFTkVSSUNfTEVEU1xcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy01LSAgICAgICBib29sXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYtXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjc6Y29uZmlnIFNORF9IREFfQ09ERUNfQU5BTE9HXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTgtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIEFuYWxvZyBEZXZpY2VzIEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTQ9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTYtXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjE3OmNvbmZpZyBTTkRfSERBX0NPREVDX1NJR01BVEVMXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTE4LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBJRFQvU2lnbWF0ZWwgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0yNT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0yNy1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6Mjg6Y29uZmlnIFNORF9IREFfQ09ERUNfVklBXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTI5LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBWSUEgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz0zNT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0zNy1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6Mzg6Y29uZmlnIFNORF9IREFfQ09ERUNfQ09ORVhBTlRcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMzktXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIENvbmV4YW50IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9NDY9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNDgtXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjQ5OmNvbmZpZyBTTkRfSERBX0NPREVDX1NFTkFSWVRFQ0hcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNTAtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIFNlbmFyeXRlY2ggSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZz01Nz1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy01OS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6NjA6Y29uZmlnIFNORF9IREFfQ09ERUNfQ0EwMTEwXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTYxLVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDcmVhdGl2ZSBDQTAxMTAtSUJHIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9Njc9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNjktXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjcwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDEzMlxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy03MS1cXHR0cmlzdGF0ZSBcXFwiQnVpbGQgQ3JlYXRpdmUgQ0EwMTMyIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9Nzc9Y29tbWVudCBcXFwiU2V0IHRvIFkgaWYgeW91IHdhbnQgYXV0by1sb2FkaW5nIHRoZSBjb2RlYyBkcml2ZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctNzktXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnOjgwOmNvbmZpZyBTTkRfSERBX0NPREVDX0NBMDEzMl9EU1BcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctODEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBuZXcgRFNQIGNvZGUgZm9yIENBMDEzMiBjb2RlY1xcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy05Mi1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6OTM6Y29uZmlnIFNORF9IREFfQ09ERUNfQ01FRElBXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTk0LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDLU1lZGlhIEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTAwPWNvbW1lbnQgXFxcIlNldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEwMi1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTAzOmNvbmZpZyBTTkRfSERBX0NPREVDX0NNOTgyNVxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMDQtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIEMtTWVkaWEgQ005ODI1IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTEwPWNvbW1lbnQgXFxcIlNldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTExMi1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTEzOmNvbmZpZyBTTkRfSERBX0NPREVDX1NJMzA1NFxcbnNvdW5kL2hkYS9jb2RlY3MvS2NvbmZpZy0xMTQtXFx0dHJpc3RhdGUgXFxcIkJ1aWxkIFNpbGljb24gTGFicyAzMDU0IEhELW1vZGVtIGNvZGVjIHN1cHBvcnRcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc9MTE5PWNvbW1lbnQgXFxcIlNldCB0byBZIGlmIHlvdSB3YW50IGF1dG8tbG9hZGluZyB0aGUgY29kZWMgZHJpdmVyXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9LY29uZmlnLTEyMS1cXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWc6MTIyOmNvbmZpZyBTTkRfSERBX0dFTkVSSUNcXG5zb3VuZC9oZGEvY29kZWNzL0tjb25maWctMTIzLVxcdHRyaXN0YXRlIFxcXCJFbmFibGUgZ2VuZXJpYyBIRC1hdWRpbyBjb2RlYyBwYXJzZXJcXFwiXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTItXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19DSVJSVVNcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcIkNpcnJ1cyBMb2dpYyBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0xMj1pZiBTTkRfSERBX0NPREVDX0NJUlJVU1xcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMTMtXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzoxNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzQyMFhcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTE1LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDaXJydXMgTG9naWMgQ1M0MjB4IGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0yMT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMjMtXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzoyNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzQyMVhcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTI1LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDaXJydXMgTG9naWMgQ1M0MjF4IGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZz0zMT1jb21tZW50IFxcXCJTZXQgdG8gWSBpZiB5b3Ugd2FudCBhdXRvLWxvYWRpbmcgdGhlIGNvZGVjIGRyaXZlclxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvY2lycnVzL0tjb25maWctMzMtXFxuc291bmQvaGRhL2NvZGVjcy9jaXJydXMvS2NvbmZpZzozNDpjb25maWcgU05EX0hEQV9DT0RFQ19DUzg0MDlcXG5zb3VuZC9oZGEvY29kZWNzL2NpcnJ1cy9LY29uZmlnLTM1LVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBDaXJydXMgTG9naWMgSERBIGJyaWRnZSBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMi1cXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzozOm1lbnVjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNC1cXHR0cmlzdGF0ZSBcXFwiSEQtYXVkaW8gSERNSSBjb2RlYyBzdXBwb3J0XFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc9MTI9aWYgU05EX0hEQV9DT0RFQ19IRE1JXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMTMtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6MTQ6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9HRU5FUklDXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMTUtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTI1LVxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnOjI2OmNvbmZpZyBTTkRfSERBX0NPREVDX0hETUlfU0lNUExFXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMjctXFx0dHJpc3RhdGUgXFxcIlNpbXBsZSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctMzItXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6MzM6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9JTlRFTFxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTM0LVxcdHRyaXN0YXRlIFxcXCJJbnRlbCBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNDAtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NDE6Y29uZmlnIFNORF9IREFfSU5URUxfSERNSV9TSUxFTlRfU1RSRUFNXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNDItXFx0Ym9vbCBcXFwiRW5hYmxlIFNpbGVudCBTdHJlYW0gYWx3YXlzIGZvciBIRE1JXFxcIlxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNTUtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NTY6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9BVElcXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy01Ny1cXHR0cmlzdGF0ZSBcXFwiQU1EL0FUSSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNjMtXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6NjQ6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9OVklESUFcXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy02NS1cXHR0cmlzdGF0ZSBcXFwiTnZpZGlhIEhETUkvRGlzcGxheVBvcnQgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCIgaWYgRVhQRVJUXFxuLS1cXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy03MS1cXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZzo3Mjpjb25maWcgU05EX0hEQV9DT0RFQ19IRE1JX05WSURJQV9NQ1BcXG5zb3VuZC9oZGEvY29kZWNzL2hkbWkvS2NvbmZpZy03My1cXHR0cmlzdGF0ZSBcXFwiTGVnYWN5IE52aWRpYSBIRE1JL0Rpc3BsYXlQb3J0IEhELWF1ZGlvIGNvZGVjIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcbi0tXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWctNzktXFxuc291bmQvaGRhL2NvZGVjcy9oZG1pL0tjb25maWc6ODA6Y29uZmlnIFNORF9IREFfQ09ERUNfSERNSV9URUdSQVxcbnNvdW5kL2hkYS9jb2RlY3MvaGRtaS9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJOdmlkaWEgVGVncmEgSERNSS9EaXNwbGF5UG9ydCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTItXFxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWc6MzptZW51Y29uZmlnIFNORF9IREFfQ09ERUNfUkVBTFRFS1xcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTQtXFx0dHJpc3RhdGUgXFxcIlJlYWx0ZWsgSEQtYXVkaW8gY29kZWMgc3VwcG9ydFxcXCJcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnPTEyPWlmIFNORF9IREFfQ09ERUNfUkVBTFRFS1xcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTEzLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjE0OmNvbmZpZyBTTkRfSERBX0NPREVDX1JFQUxURUtfTElCXFxuc291bmQvaGRhL2NvZGVjcy9yZWFsdGVrL0tjb25maWctMTUtXFx0dHJpc3RhdGVcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTE5LVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjIwOmNvbmZpZyBTTkRfSERBX0NPREVDX0FMQzI2MFxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTIxLVxcdHRyaXN0YXRlIFxcXCJCdWlsZCBSZWFsdGVrIEFMQzI2MCBIRC1hdWRpbyBjb2RlYyBzdXBwb3J0XFxcIiBpZiBFWFBFUlRcXG4tLVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnLTI3LVxcbnNvdW5kL2hkYS9jb2RlY3MvcmVhbHRlay9LY29uZmlnOjI4OmNvbmZpZyBTTkRfSERBX0NPREVDX0FMQzI2MlxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjoxNy45NzQxMjA0MjZaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODIxNjE0ODE4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEFMU0EgYW5kIFVTQiBNSURJMiBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBwcmltYXJ5IGZvY3VzIGlzIHRoZSBBTFNBIGNvbmZpZ3VyYXRpb24sIHNwZWNpZmljYWxseSBgU05EYC4gSSBuZWVkIHRvIGVuc3VyZSBpdCdzIGVuYWJsZWQgc2luY2UgaXQgc2VlbXMgdG8gYmUgdGhlIGNvcmUgZGVwZW5kZW5jeSBoZXJlLiBPa2F5LCBgU05EYCBpcyB0cmlzdGF0ZSwgZ29vZC4gTm93LCBsb29raW5nIGF0IHRoZSBiaWdnZXIgcGljdHVyZSwgaXQncyBjbGVhciB3ZSdyZSBkZWFsaW5nIHdpdGggYSBjaGFpbiBvZiBkZXBlbmRlbmNpZXM6IGBTTkRgLCBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBhbmQgYFVTQl9DT05GSUdGU19GX01JREkyYC5cblxuYFVTQl9DT05GSUdGU19GX01JREkyYCBzZWVtcyBrZXksIGFzIGl0IHNlbGVjdHMgYFVTQl9GX01JREkyYC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGF0IHNlbGVjdGlvbiDigJMgWWVwLCBjb25maXJtZWQuIE5vdywgbGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgZGlyZWN0IGRlcGVuZGVuY2llcy4gQWgsIGBVU0JfRl9NSURJMmAgc2VsZWN0cyBgU05EX1VNUGAgYW5kIGBTTkRfVU1QX0xFR0FDWV9SQVdNSURJYC4gQnV0IHNpbmNlIGl0ICpzZWxlY3RzKiB0aGVtLCBpdCBtZWFucyB0aGV5IGRvbid0IGhhdmUgdG8gYmUgZXhwbGljaXRseSBlbmFibGVkIGlmIGBVU0JfRl9NSURJMmAgaXMuXG5cbk9rYXksIGxldCBtZSByZXZpZXcgd2hhdCB3ZSBoYXZlLCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGRlcGVuZHMgb24gYFVTQl9DT05GSUdGU2AgYW5kIGBTTkRgLiBXaGljaCBtZWFucyB0byBoYXZlIGl0LCB3ZSBuZWVkOlxuXG4qICAgYFVTQl9HQURHRVRgXG4qICAgYFVTQl9DT05GSUdGU2BcbiogICBgU05EYFxuKiAgIGBVU0JfQ09ORklHRlNfRl9NSURJMmBcblxuVGhlIGltcG9ydGFudCBxdWVzdGlvbiBub3cgaXMsIGRvZXMgZW5hYmxpbmcgYFVTQl9DT05GSUdGU19GX01JREkyYCBjb21waWxlIHRoZSBgZl9taWRpMi5jYCBmaWxlPyBMb29raW5nIGF0IHRoZSBgTWFrZWZpbGVgIGluIHRoZSBnYWRnZXQgZnVuY3Rpb24gZGlyZWN0b3J5OiBgb2JqLSQoQ09ORklHX1VTQl9GX01JREkyKSArPSB1c2JfZl9taWRpMi5vYCBhbmQgYHVzYl9mX21pZGkyLXkgOj0gZl9taWRpMi5vYC4gVGhlIHZhcmlhYmxlIGlzLCBvZiBjb3Vyc2UsIGRlcml2ZWQgZnJvbSBgVVNCX0ZfTUlESTJgIHdoaWNoIGlzIHNlbGVjdGVkIGJ5IGBVU0JfQ09ORklHRlNfRl9NSURJMmAuIFNvIHllcywgc2V0dGluZyBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGRvZXMgZW5zdXJlIHRoZSBjb21waWxhdGlvbiBvZiBgZl9taWRpMi5jYC5cblxuTGV0J3Mgc2hpZnQgZm9jdXMgdG8gdGhlIGFjdHVhbCBjb2RlIG5vdyBhbmQgdW5kZXJzdGFuZCB3aGF0IHRoaXMgaXMgYWxsIGFib3V0LiBUaGlzIHBhdGNoIG1vZGlmaWVzIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIGFuZCBgZl9taWRpMl9mcmVlX2VwX3JlcXNgLiBUaGVzZSBhcmUgc3RhdGljIGZ1bmN0aW9ucywgc28gcHJvYmFibHkgaW50ZXJuYWwgdG8gdGhlIG1vZHVsZSwgYW5kIHRoZXkgYXJlIGNhbGxlZCBmcm9tIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gTGV0J3MgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIGBmX21pZGkyX2ZyZWVfZXBfcmVxc2AuIE9rYXksIHRoYXQncyB0aGUgbGlrZWx5IGNhbGwgY2hhaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4MDE2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjI2LjE5MDI3MjAxNloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUzOTgxMTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9mcmVlX2VwX3JlcXNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExMzg9c3RhdGljIGludCBmX21pZGkyX2FsbG9jX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTExNjAtLyogRnJlZSBhbGxvY2F0ZWQgcmVxdWVzdHMgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjExNjE6c3RhdGljIHZvaWQgZl9taWRpMl9mcmVlX2VwX3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYyLXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTIwMz1zdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDYtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjA3OlxcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKHVzYl9lcCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjA4LVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0My1cXHRmX21pZGkyX2Ryb3BfcmVxcyhlcF9vdXQpO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI0NDpcXHRmX21pZGkyX2ZyZWVfZXBfcmVxcyhlcF9pbik7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ1OlxcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKGVwX291dCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQ2LX1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MjYuMjM1Njc0NjE1WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1MzMxMjc4MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBicmVha2Rvd24gb2YgdGhpcy5cblxuKipUcmFjaW5nIE1JREkgRW5kcG9pbnQgTWFuYWdlbWVudCoqXG5cbkFscmlnaHQsIHNvIEknbSBsb29raW5nIGF0IHRoZSBNSURJIGRyaXZlcidzIGVuZHBvaW50IChFUCkgbWFuYWdlbWVudCBmdW5jdGlvbnMuIFNwZWNpZmljYWxseSwgYGZfbWlkaTJfZnJlZV9lcF9yZXFzYCBzZWVtcyB0byBiZSB0aGUgY3J1Y2lhbCBjbGVhbnVwIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGJvdGggYGZfbWlkaTJfZnJlZV9lcGAgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gIEkga25vdyB0aG9zZSBhcmUgdGhlIHR3byBwcmltYXJ5IHBhdGh3YXlzIHRvIGRlYWxsb2NhdGUgcmVzb3VyY2VzLiBPbiB0aGUgZmxpcCBzaWRlLCBgZl9taWRpMl9hbGxvY19lcF9yZXFzYCBpcyBpdHMgY291bnRlcnBhcnQg4oCTIHRoZSBhbGxvY2F0aW9uIGZ1bmN0aW9uIOKAkyBhbmQgaXQncyBjYWxsZWQgZXhjbHVzaXZlbHkgZnJvbSBgZl9taWRpMl9zdGFydF9lcHNgLCB3aGljaCBtYWtlcyBwZXJmZWN0IHNlbnNlLiBHaXZlbiB0aGF0LCB0cmFjaW5nIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYCBzZWVtcyBsaWtlIHRoZSBiZXN0IGFwcHJvYWNoIHRvIHVuZGVyc3RhbmQgdGhlIHJlc291cmNlIGxpZmVjeWNsZSBmb3IgdGhlIGVuZHBvaW50cy4gVW5kZXJzdGFuZGluZyB0aGVzZSBmdW5jdGlvbnMgaW4gZGV0YWlsIHdpbGwgcmV2ZWFsIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgTUlESSBlbmRwb2ludCBhbGxvY2F0aW9uLCBkZWFsbG9jYXRpb24sIGFuZCBzdGF0ZSB0cmFuc2l0aW9ucywgd2hpY2ggaXMga2V5LiBJJ2xsIGZvY3VzIG9uIHdoYXQgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgaW4gdGhlIHN0YXJ0IGZ1bmN0aW9uLCBhbmQgaG93IHRob3NlIHNhbWUgcmVzb3VyY2VzIGFyZSBmcmVlZCBpbiB0aGUgc3RvcCBmdW5jdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTk2MTUsIk91dHB1dFRva2VucyI6NDMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjozMS43Njg4MDQ5NzFaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1OTExOTQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfbWlkaTJfc3RhcnRfZXBzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjM5PXN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTI0OC0vKiBzdGFydC9xdWV1ZSBib3RoIElOIGFuZCBPVVQgRVBzICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ5OnN0YXRpYyBpbnQgZl9taWRpMl9zdGFydF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNTAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dCxcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI3ND1zdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMDQtXFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkxKVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTMwNTpcXHRcXHRyZXR1cm4gZl9taWRpMl9zdGFydF9lcHMoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9pbixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMDYtXFx0XFx0XFx0XFx0XFx0IFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfb3V0LCBmbik7XFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEzMTEtXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMzEyOlxcdFxcdFxcdGVyciA9IGZfbWlkaTJfc3RhcnRfZXBzKFxcdTAwMjZlcC1cXHUwMDNlZXBfaW4sIFxcdTAwMjZlcC1cXHUwMDNlZXBfb3V0LCBmbik7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzEzLVxcdFxcdFxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjMxLjgxNDcyMzE5WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2NzcxMjg3NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipFbmRwb2ludCBJbml0aWFsaXphdGlvbiBhbmQgVGVybWluYXRpb24qKlxuXG5BbHJpZ2h0LCBzbyBgZl9taWRpMl9zZXRfYWx0YCBpcyB0aGUgZGVzaWduYXRlZCBzdGFydGluZyBwb2ludCBmb3IgYnJpbmdpbmcgdGhlIE1JREkgZW5kcG9pbnRzIG9ubGluZS4gVGhhdCdzIHRoZSBlbnRyeSBJJ2QgZXhwZWN0IHRvIHNlZS4gTm93LCB0byB1bmRlcnN0YW5kIHRoZSBmdWxsIGxpZmVjeWNsZSwgaXQncyBuYXR1cmFsIHRvIHR1cm4gbXkgYXR0ZW50aW9uIHRvIHRoZSB0ZXJtaW5hdGlvbiBzaWRlIG9mIHRoaW5ncy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIHNodXRkb3duIHByb2Nlc3MgY29tcGxldGVseS4gTGV0J3MgZGVsdmUgaW50byBgZl9taWRpMl9zdG9wX2Vwc2AgYW5kIHRyYWNlIGl0cyBiZWhhdmlvci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBlbmRwb2ludHMgYXJlIGNvcnJlY3RseSBzaHV0IGRvd24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDMxLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MzUuNDkxODU1NjUxWiIsIlNlcSI6MzQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTExOTg5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmX21pZGkyX3N0b3BfZXBzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMjE2PXN0YXRpYyB2b2lkIGZfbWlkaTJfcXVldWVfb3V0X3JlcXMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMzgtLyogc3RvcCBib3RoIElOIGFuZCBPVVQgRVBzICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjM5OnN0YXRpYyB2b2lkIGZfbWlkaTJfc3RvcF9lcHMoc3RydWN0IGZfbWlkaTJfdXNiX2VwICplcF9pbixcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDAtXFx0XFx0XFx0ICAgICBzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX291dClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MTI3ND1zdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTQtXFx0aWYgKG9wX21vZGUgIT0gTUlESV9PUF9NT0RFX01JREkxKVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTI5NTpcXHRcXHRmX21pZGkyX3N0b3BfZXBzKFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfaW4sIFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfb3V0KTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTYtXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyOTktXFx0XFx0XFx0ZXAgPSBcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkyX2Vwc1tpXTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEzMDA6XFx0XFx0XFx0Zl9taWRpMl9zdG9wX2VwcyhcXHUwMDI2ZXAtXFx1MDAzZWVwX2luLCBcXHUwMDI2ZXAtXFx1MDAzZWVwX291dCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMzAxLVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6MzUuNTM2OTg1MjU5WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5NzE0MjM3MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkFuYWx5emluZyBFbnRyeSBQb2ludHMgaW4gTUlESTIgQ29kZSoqXG5cbkFscmlnaHQsIGxldCdzIGRpdmUgaW4uIFRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgc2VlbXMgdG8gYmUgcm9vdGVkIGluIGBmX21pZGkyX3NldF9hbHRgIOKAkyB0aGF0J3MgdGhlIG1haW4gZW50cnkgcG9pbnQsIHRoZSBvbmUgdGhhdCBraWNrcyBldmVyeXRoaW5nIG9mZi4gTm93LCBiZWZvcmUgSSBwcm9jZWVkIHdpdGggYW55IGRlZXAgYW5hbHlzaXMsIEkgbmVlZCB0byBtYWtlIHN1cmUgSSd2ZSBnb3QgYSBjb21wcmVoZW5zaXZlIHBpY3R1cmUgb2YgdGhlIGZ1bmN0aW9uIGNhbGxzLiBJIHNob3VsZCB0aG9yb3VnaGx5IGludmVzdGlnYXRlIGlmIHRoZXJlIGFyZSBvdGhlciBhY2Nlc3MgcG9pbnRzLiBJIHNob3VsZCBzZWUgaWYgb3RoZXIgZnVuY3Rpb25zIGNvdWxkIHBvdGVudGlhbGx5IGludGVyYWN0IHdpdGggYGZfbWlkaTJfZnJlZV9lcGAsIGFzIHRoZSBjb21wbGVtZW50YXJ5IGZ1bmN0aW9uYWxpdHkgdG8gYGZfbWlkaTJfc2V0X2FsdGAuIEtlZXBpbmcgYW4gZXhoYXVzdGl2ZSBtYXBwaW5nIG9mIGVudHJ5cG9pbnRzIHRvIHRoaXMgZnVuY3Rpb24gYWxsb3dzIG1lIHRvIGhhdmUgYmV0dGVyIGNvbnRyb2wgb24gdGhpcyBwYXJ0IG9mIHRoZSBjb2RlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTA5MSwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjM5LjUwODQxMjc4M1oiLCJTZXEiOjM2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ4MjkyNzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9mcmVlX2VwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xMTM4PXN0YXRpYyBpbnQgZl9taWRpMl9hbGxvY19lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMTYwLS8qIEZyZWUgYWxsb2NhdGVkIHJlcXVlc3RzICovXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMTYxOnN0YXRpYyB2b2lkIGZfbWlkaTJfZnJlZV9lcF9yZXFzKHN0cnVjdCBmX21pZGkyX3VzYl9lcCAqdXNiX2VwKVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTE2Mi17XFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTExNzQ9c3RhdGljIGludCBmX21pZGkyX2luaXRfZXAoc3RydWN0IGZfbWlkaTIgKm1pZGkyLCBzdHJ1Y3QgZl9taWRpMl9lcCAqZXAsXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDItLyogRnJlZSBFUCAqL1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTIwMzpzdGF0aWMgdm9pZCBmX21pZGkyX2ZyZWVfZXAoc3RydWN0IGZfbWlkaTJfdXNiX2VwICp1c2JfZXApXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjA0LXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTIwNi1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyMDc6XFx0Zl9taWRpMl9mcmVlX2VwX3JlcXModXNiX2VwKTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyMDgtXFxuLS1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEyMzk9c3RhdGljIHZvaWQgZl9taWRpMl9zdG9wX2VwcyhzdHJ1Y3QgZl9taWRpMl91c2JfZXAgKmVwX2luLFxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xMjQzLVxcdGZfbWlkaTJfZHJvcF9yZXFzKGVwX291dCk7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoxMjQ0OlxcdGZfbWlkaTJfZnJlZV9lcF9yZXFzKGVwX2luKTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjEyNDU6XFx0Zl9taWRpMl9mcmVlX2VwX3JlcXMoZXBfb3V0KTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTEyNDYtfVxcbi0tXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0yMDU3PXN0YXRpYyB2b2lkIGZfbWlkaTJfdW5iaW5kKHN0cnVjdCB1c2JfY29uZmlndXJhdGlvbiAqYywgc3RydWN0IHVzYl9mdW5jdGlvbiAqZilcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjA2My1cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjIwNjQ6XFx0Zl9taWRpMl9mcmVlX2VwKFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfaW4pO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2NTpcXHRmX21pZGkyX2ZyZWVfZXAoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9vdXQpO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjA2Ni1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbWlkaTItXFx1MDAzZW51bV9lcHM7IGkrKykge1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2NzpcXHRcXHRmX21pZGkyX2ZyZWVfZXAoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMl9lcHNbaV0uZXBfaW4pO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjA2ODpcXHRcXHRmX21pZGkyX2ZyZWVfZXAoXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMl9lcHNbaV0uZXBfb3V0KTtcXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jLTIwNjktXFx0fVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NjozOS41NTMyNDc2MDJaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjU1ODY0MTE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE1JREkgR2FkZ2V0IERyaXZlciBFbnRyeSBQb2ludHMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIE1JREkgZ2FkZ2V0IGRyaXZlciBjb2RlLiBJdCBzZWVtcyBsaWtlIHRoZSBjb3JlIGZ1bmN0aW9ucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBhcmUgYGZfbWlkaTJfdW5iaW5kYCBhbmQgYGZfbWlkaTJfc2V0X2FsdGAuIFNwZWNpZmljYWxseSwgYGZfbWlkaTJfdW5iaW5kYCBkaXJlY3RseSBjYWxscyBgZl9taWRpMl9mcmVlX2VwYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZW4sIGBmX21pZGkyX3NldF9hbHRgIGlzIGEgYml0IG1vcmUgaW52b2x2ZWQ7IGl0J3MgY2FsbGluZyBib3RoIGBmX21pZGkyX3N0YXJ0X2Vwc2AgYW5kIGBmX21pZGkyX3N0b3BfZXBzYC4gU3RhbmRhcmQgVVNCIGdhZGdldCBmdW5jdGlvbiBjYWxsYmFja3MsIGFzIGV4cGVjdGVkLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBjaGVjayBpZiBhbnkgb3RoZXIgZW50cnkgcG9pbnRzIG1pZ2h0IHRyaWdnZXIgYGZfbWlkaTJfYWxsb2NfZXBfcmVxc2Agb3IgcmVsYXRlZCBmdW5jdGlvbnMgdGhhdCBtaWdodCBiZSBvZiBpbnRlcmVzdC4gSXQgbG9va3MgbGlrZSB0aGUgb25seSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhhdCBpcyBgZl9taWRpMl9zdGFydF9lcHNgLCBhbmQgdGhhdCBvbmUgaXMgb25seSBjYWxsZWQgYnkgYGZfbWlkaTJfc2V0X2FsdGAuIFNvLCBgZl9taWRpMl9zZXRfYWx0YCByZWFsbHkgc2VlbXMgbGlrZSB0aGUga2V5IGZ1bmN0aW9uIGhlcmUgdG8gYW5hbHl6ZSBpbiBtb3JlIGRlcHRoLlxuXG5KdXN0IHRvIGJlIHRob3JvdWdoLCBJJ20gZ29pbmcgdG8gcXVpY2tseSBjaGVjayBgZl9taWRpMl9iaW5kYCBhcyB3ZWxsLiBQZXJoYXBzIGl0IGluaXRpYWxpemVzIHRoZSBlbmRwb2ludHMgb3IgY2FsbHMgYGZfbWlkaTJfaW5pdF9lcGAgaW4gc29tZSB3YXkuIEdvdHRhIG1ha2Ugc3VyZSBJIGRvbid0IG1pc3MgYW55dGhpbmcgb2J2aW91cy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjIyNDMsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6NDYuMTExODkyOTQyWiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODc2NDM0ODMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9iaW5kXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xOTExPXN0YXRpYyBpbnQgZl9taWRpMl9pbml0X21pZGkyX2VwX291dChzdHJ1Y3QgZl9taWRpMiAqbWlkaTIsIGludCBpbmRleClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTkyNy0vKiBnYWRnZXQgZnVuY3Rpb24gYmluZCBjYWxsYmFjayAqL1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTkyODpzdGF0aWMgaW50IGZfbWlkaTJfYmluZChzdHJ1Y3QgdXNiX2NvbmZpZ3VyYXRpb24gKmMsIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmYpXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xOTI5LXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzMS1cXHRtaWRpMi1cXHUwMDNlZnVuYy5uYW1lID0gXFxcIm1pZGkyX2Z1bmNcXFwiO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzMjpcXHRtaWRpMi1cXHUwMDNlZnVuYy5iaW5kID0gZl9taWRpMl9iaW5kO1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzMy1cXHRtaWRpMi1cXHUwMDNlZnVuYy51bmJpbmQgPSBmX21pZGkyX3VuYmluZDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6NDYuMzk5NTQxNzg1WiIsIlNlcSI6MzksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkwNzc3NTgzMjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIE1JREkgMi4wIEdhZGdldCBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBNSURJIDIuMCBnYWRnZXQgZHJpdmVyLiBNeSBpbml0aWFsIGZvY3VzIGlzIG9uIHRoZSBtYWluIGVudHJ5IHBvaW50czogYGZfbWlkaTJfYmluZGAsIGBmX21pZGkyX3VuYmluZGAsIGFuZCBgZl9taWRpMl9zZXRfYWx0YC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBhcHBlYXJzIHRvIGJlIGEgYnVnIGZpeCB3aXRoaW4gdGhlIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIGFuZCBgZl9taWRpMl9mcmVlX2VwX3JlcXNgIGZ1bmN0aW9ucy4gSXQgc2VlbXMgbGlrZSB0aGVyZSB3YXMgYW4gaW5jb3JyZWN0IHZhcmlhYmxlIHVzZWQgZm9yIHJlcXVlc3QgY291bnRzLCB1c2luZyBgbWlkaTItXHUwMDNlaW5mby5udW1fcmVxc2AgaW5zdGVhZCBvZiBgdXNiX2VwLVx1MDAzZW51bV9yZXFzYCwgd2hpY2ggbWFrZXMgc2Vuc2UgYmVjYXVzZSBlbmRwb2ludCByZXF1ZXN0IGNvdW50cyB3b3VsZCBiZSBzcGVjaWZpYyB0byBlYWNoIGVuZHBvaW50LlxuXG5UaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSwgc28gSSdtIHRoaW5raW5nIHRoaXMgaXMgcHJpbWUgZm9yIGZ1enppbmcuIFRvIGdldCB0aGF0IGdvaW5nLCBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHNldC4gSSBuZWVkOiBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBgU05EYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuXG5cbldhaXQgYSBtaW51dGUsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgc29tZXRoaW5nLiBgVVNCX0NPTkZJR0ZTYCBpcyBhIHRyaXN0YXRlLCB3aGlsZSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIGEgYm9vbC4gSnVzdCB0byBiZSBzdXJlLCBJJ2xsIGNvbmZpcm0gdGhhdCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgIGlzIGluZGVlZCBhIGJvb2wuLi4geWVwLCBcIk1JREkgMi4wIGZ1bmN0aW9uXCIuXG5cbk9rYXksIHNvIGl0J3MgYSBzdHJhaWdodGZvcndhcmQgZW5hYmxlbWVudCBzaXR1YXRpb24sIEkganVzdCBuZWVkIHRvIGVuYWJsZSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBBaCwgYnV0IGEgZGVwZW5kZW5jeSBjaGVjazogYFVTQl9DT05GSUdGU19GX01JREkyYCBkZXBlbmRzIG9uIGBVU0JfQ09ORklHRlNgIGFuZCBgU05EYC4gQW5kIHNpbmNlIGBVU0JfQ09ORklHRlNgIGRlcGVuZHMgb24gYFVTQl9HQURHRVRgLCBJJ2xsIG5lZWQgdG8gZW5hYmxlIHRoYXQgb25lIHRvby4gU28gdGhlIHdob2xlIHNldCBzaG91bGQgaW5jbHVkZSBgVVNCX0dBREdFVGAsIGBVU0JfQ09ORklHRlNgLCBgU05EYCwgYW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAuXG5cbkkgc2hvdWxkIHNlZSBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHJlbGF0ZWQgY29uZmlncywgYW5kIGl0IGxvb2tzIGxpa2UgYFVTQl9GX01JREkyYCBpcyBzZWxlY3RlZCBieSBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBUaGF0IGNvbmZpcm1zIG15IGluaXRpYWwgc3RyYXRlZ3ksIGFzIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgc3VmZmljaWVudC5cblxuSnVzdCB0byBiZSBleHBsaWNpdCwgaGVyZSdzIHRoZSBmaW5hbCBjb25maWcgbGlzdDpcblxuKiAgIGBVU0JfR0FER0VUYFxuKiAgIGBVU0JfQ09ORklHRlNgXG4qICAgYFNORGBcbiogICBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgXG5cbkFuZCBmb3IgdGFyZ2V0IGZ1bmN0aW9ucywgYmVzaWRlcyB0aGUgZW50cnkgcG9pbnRzOlxuXG4qICAgYGZfbWlkaTJfc2V0X2FsdGBcbiogICBgZl9taWRpMl9iaW5kYFxuKiAgIGBmX21pZGkyX3VuYmluZGBcblxuYGZfbWlkaTJfc2V0X2FsdGAgbG9va3MgbGlrZSBhIGdvb2Qgb25lIHRvIHRhcmdldCwgYW5kIHNpbmNlIEknbSBoZXJlIEkgbWlnaHQgYXMgd2VsbCBjaGVjayBgZl9taWRpMl9zZXR1cGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDg0LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDY1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjU1LjQ3NzMwMjgyNFoiLCJTZXEiOjQwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA0MDA2NTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImZfbWlkaTJfc2V0dXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jPTEzNDY9c3RhdGljIHZvaWQgYXNzaWduX2Jsb2NrX2Rlc2NyaXB0b3JzKHN0cnVjdCBmX21pZGkyICptaWRpMixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQwNC0vKiBnYWRnZXQgZnVuY3Rpb24gc2V0dXAgY2FsbGJhY2s6IGhhbmRsZSBHVEIgcmVxdWVzdHMgKi9cXG5kcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jOjE0MDU6c3RhdGljIGludCBmX21pZGkyX3NldHVwKHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuLFxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQwNi1cXHRcXHRcXHQgY29uc3Qgc3RydWN0IHVzYl9jdHJscmVxdWVzdCAqY3RybClcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNS1cXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXRfYWx0ID0gZl9taWRpMl9zZXRfYWx0O1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MjgzNjpcXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM3LVxcdG1pZGkyLVxcdTAwM2VmdW5jLmRpc2FibGUgPSBmX21pZGkyX2Rpc2FibGU7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjU1LjY4MTMxNzk5OVoiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzI4NDEyNDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgTUlESSBMYW5kc2NhcGUqKlxuXG5SaWdodCwgc28gSSdtIHNlZWluZyB0aGF0IGBmX21pZGkyX2Rpc2FibGVgIGZ1bmN0aW9uIGFnYWluLiBJdCdzIGEga2V5IHBpZWNlLCBpc24ndCBpdD8gSXRzIHByZXNlbmNlIGltbWVkaWF0ZWx5IHRyaWdnZXJzIG15IG1pbmQgdG8gY29uc2lkZXIgdGhlIHNwZWNpZmljIE1JREkgaW1wbGVtZW50YXRpb24gdGhpcyBjb2RlIGlzIGRlYWxpbmcgd2l0aC4gVGhlIG5hbWluZyBjb252ZW50aW9uIHN1Z2dlc3RzIGl0IG1pZ2h0IGJlIGEgZnVuY3Rpb24gdGhhdCBzZWxlY3RpdmVseSBkaXNhYmxlcyBhIHBhcnRpY3VsYXIgTUlESSBjb21wb25lbnQgb3IgZmVhdHVyZSBzZXQsIHBlcmhhcHMgTUlESSAyLjAgZnVuY3Rpb25hbGl0eSwgb3IgcGVyaGFwcyBhIHNlY29uZCBNSURJIGRldmljZSBiZWluZyBlbXBsb3llZCBvbiB0aGUgc3lzdGVtLiBUaGlua2luZyBtb3JlIGJyb2FkbHksIGl0IGZsYWdzIHRoZSBuZWVkIHRvIGV2YWx1YXRlIGhvdyBNSURJIGNvbW11bmljYXRpb24gaXMgYmVpbmcgaGFuZGxlZCDigJMgaXMgdGhlcmUgYW4gYXR0ZW1wdCB0byBzdXBwb3J0IG11bHRpcGxlIE1JREkgc3RyZWFtcywgb3IgYXJlIHdlIGludGVudGlvbmFsbHkgbGltaXRpbmcgdGhlIGNvbmZpZ3VyYXRpb24/IFRoaXMgbGlrZWx5IGhhcyByYW1pZmljYXRpb25zIGZvciB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUgYW5kIHRoZSBpbnRlbmRlZCB1c2UgY2FzZS4gVGhpcyBwcm9tcHRzIHF1ZXN0aW9ucyBhYm91dCB0aGUgdW5kZXJseWluZyBNSURJIGZyYW1ld29yayDigJMgaXMgaXQgYSBjdXN0b20gaW1wbGVtZW50YXRpb24sIG9yIGFyZSB3ZSB1c2luZyBhIHN0YW5kYXJkIGxpYnJhcnk/IFRoaXMgYWxzbyBpbXBhY3RzIG91ciBkZWJ1Z2dpbmcgc3RyYXRlZ3kuIElzIHRoZXJlIGFuIGlzc3VlLCBvciBzaW1wbHkgc29tZXRoaW5nIHRoYXQgdGhlIHByb2dyYW0gaXMgY29uZmlndXJlZCB0byBkbz8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJlbGF0aW9uc2hpcCB0byBhbnkgb3RoZXIgTUlESS1yZWxhdGVkIGZ1bmN0aW9ucywgZXNwZWNpYWxseSB0aG9zZSBkZWFsaW5nIHdpdGggaW5pdGlhbGl6YXRpb24sIGRhdGEgdHJhbnNtaXNzaW9uLCBhbmQgZXZlbnQgaGFuZGxpbmcuIEkgYWxzbyBoYXZlIHRvIGtlZXAgaW4gbWluZCB0aGUgcG90ZW50aWFsIGltcGxpY2F0aW9ucyBvZiBkaXNhYmxpbmcgYSBjb21wb25lbnQ6IEFyZSB0aGVyZSBkZXBlbmRlbmNpZXMgdGhhdCBub3cgbmVlZCB0byBiZSBhZGRyZXNzZWQ/IERvZXMgaXQgaW1wYWN0IG90aGVyLCB1bnJlbGF0ZWQgbW9kdWxlcz8gSSBtdXN0IG5vdyBsb29rIG1vcmUgY2xvc2VseSB0byBzZWUgd2hlcmUgdGhpcyBkaXNhYmxpbmcgYWN0aW9uIHRha2VzIHBsYWNlIHdpdGhpbiB0aGUgY29udHJvbCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDUzNCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI5VDA5OjQ2OjU5LjQwOTczMzQ1OVoiLCJTZXEiOjQyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODUzNTc5OTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZl9taWRpMl9kaXNhYmxlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYz0xNDA1PXN0YXRpYyBpbnQgZl9taWRpMl9zZXR1cChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbixcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMTQzMS0vKiBnYWRnZXQgZnVuY3Rpb24gZGlzYWJsZSBjYWxsYmFjayAqL1xcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM6MTQzMjpzdGF0aWMgdm9pZCBmX21pZGkyX2Rpc2FibGUoc3RydWN0IHVzYl9mdW5jdGlvbiAqZm4pXFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0xNDMzLXtcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmM9MjgwNj1zdGF0aWMgc3RydWN0IHVzYl9mdW5jdGlvbiAqZl9taWRpMl9hbGxvYyhzdHJ1Y3QgdXNiX2Z1bmN0aW9uX2luc3RhbmNlICpmaSlcXG4tLVxcbmRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmMtMjgzNi1cXHRtaWRpMi1cXHUwMDNlZnVuYy5zZXR1cCA9IGZfbWlkaTJfc2V0dXA7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYzoyODM3OlxcdG1pZGkyLVxcdTAwM2VmdW5jLmRpc2FibGUgPSBmX21pZGkyX2Rpc2FibGU7XFxuZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfbWlkaTIuYy0yODM4LVxcdG1pZGkyLVxcdTAwM2VmdW5jLmZyZWVfZnVuYyA9IGZfbWlkaTJfZnJlZTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDY6NTkuNDk1MDk3MzE3WiIsIlNlcSI6NDMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk3MjIyNzM1MDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipEZWNvbnN0cnVjdGluZyB0aGUgTUlESTIgRGlzYWJsZSBGdW5jdGlvbioqXG5cbk9rYXksIHNvIGBmX21pZGkyX2Rpc2FibGVgLiBNeSBpbW1lZGlhdGUgYXNzdW1wdGlvbiwgYmFzZWQgb24gbmFtaW5nIGNvbnZlbnRpb25zLCBpcyB0aGF0IHRoaXMgZnVuY3Rpb24gbGlrZWx5IGNhbGxzIGBmX21pZGkyX3N0b3BfZXBzYC4gVGhlIFwiZXBzXCIgbGlrZWx5IHJlZmVycyB0byBcImVuZHBvaW50c1wiLCBhbmQgXCJzdG9wXCIgc3VnZ2VzdHMgYSBzaHV0ZG93biBvciBkZWFjdGl2YXRpb24gb2YgdGhlIGVuZHBvaW50cy4gSXQncyBhIHByZXR0eSBzdGFuZGFyZCBwYXR0ZXJuLiBOb3csIHRoZSBuZXh0IHN0ZXAgaXMgdG8gY29uZmlybSB0aGF0IHRoZSBjb2RlIGFjdHVhbGx5IGJlaGF2ZXMgYXMgSSBzdXNwZWN0LiBOZWVkIHRvIGRpZyBpbiBhbmQgc2VlIHRoZSBjb250cm9sIGZsb3cuIFdoYXQgYXJlIHRoZSBzcGVjaWZpYyBpbXBsaWNhdGlvbnMgb2YgZGlzYWJsaW5nIE1JREkyPyBEb2VzIGl0IGp1c3Qgc2h1dCBkb3duIHRoZSBzdHJlYW1zLCBvciBhcmUgdGhlcmUgYW55IGhhcmR3YXJlIHBvd2VyLWRvd25zIG9yIHN0YXRlIHJlc2V0cyBpbnZvbHZlZD8gR290dGEgY2hlY2sgdGhlIHJlZ2lzdGVyIHNldHRpbmdzIGFuZCBlcnJvciBoYW5kbGluZyB0b28uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MTg0LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDc6MDkuMjE3Mzc0MjQxWiIsIlNlcSI6NDQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5ODU0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9taWRpMi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDE0MzIsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjE0MzI6XFx0c3RhdGljIHZvaWQgZl9taWRpMl9kaXNhYmxlKHN0cnVjdCB1c2JfZnVuY3Rpb24gKmZuKVxcbjE0MzM6XFx0e1xcbjE0MzQ6XFx0XFx0c3RydWN0IGZfbWlkaTIgKm1pZGkyID0gZnVuY190b19taWRpMihmbik7XFxuMTQzNTpcXHRcXG4xNDM2OlxcdFxcdG1pZGkyLVxcdTAwM2VvcGVyYXRpb25fbW9kZSA9IE1JRElfT1BfTU9ERV9VTlNFVDtcXG4xNDM3OlxcdH1cXG4xNDM4OlxcdFxcbjE0Mzk6XFx0LypcXG4xNDQwOlxcdCAqIEFMU0EgVU1QIG9wczogbW9zdCBvZiB0aGVtIGFyZSBOT1BzLCBvbmx5IHRyaWdnZXIgZm9yIHdyaXRlIGlzIG5lZWRlZFxcbjE0NDE6XFx0ICovXFxuMTQ0MjpcXHRzdGF0aWMgaW50IGZfbWlkaTJfdW1wX29wZW4oc3RydWN0IHNuZF91bXBfZW5kcG9pbnQgKnVtcCwgaW50IGRpcilcXG4xNDQzOlxcdHtcXG4xNDQ0OlxcdFxcdHJldHVybiAwO1xcbjE0NDU6XFx0fVxcbjE0NDY6XFx0XFxuMTQ0NzpcXHRzdGF0aWMgdm9pZCBmX21pZGkyX3VtcF9jbG9zZShzdHJ1Y3Qgc25kX3VtcF9lbmRwb2ludCAqdW1wLCBpbnQgZGlyKVxcbjE0NDg6XFx0e1xcbjE0NDk6XFx0fVxcbjE0NTA6XFx0XFxuMTQ1MTpcXHRzdGF0aWMgdm9pZCBmX21pZGkyX3VtcF90cmlnZ2VyKHN0cnVjdCBzbmRfdW1wX2VuZHBvaW50ICp1bXAsIGludCBkaXIsIGludCB1cClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDc6MDkuMjE3Njc1NDcxWiIsIlNlcSI6NDUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTI2MjUzMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCBtZSB0aGluayB0aGlzIHRocm91Z2guXG5cbioqQW5hbHl6aW5nIE1JREkyIEVuZHBvaW50IENvbnRyb2wgRmxvdyoqXG5cbkhtbSwgd2FpdCBhIG1pbnV0ZS4uLiBJIHdhcyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGF0IGBmX21pZGkyX2Rpc2FibGVgIHdvdWxkIGFsc28gYmUgcmVzcG9uc2libGUgZm9yIHN0b3BwaW5nIHRoZSBlbmRwb2ludCBzdHJlYW1zLiBCdXQgaXQgZG9lc24ndCBhY3R1YWxseSBjYWxsIGBmX21pZGkyX3N0b3BfZXBzYC4gVGhhdCdzIGEgYml0IG9kZC4gU28sIHdoZXJlICppcyogYGZfbWlkaTJfc3RvcF9lcHNgIGdldHRpbmcgY2FsbGVkPyBBaCwgcmlnaHQhIEl0J3Mgd2l0aGluIGBmX21pZGkyX3NldF9hbHRgLiBPa2F5LCB0aGF0IG1ha2VzIG1vcmUgc2Vuc2Ugbm93LiBTbywgYGZfbWlkaTJfc2V0X2FsdGAgYXBwZWFycyB0byBiZSB0aGUgcHJpbWFyeSBmdW5jdGlvbiBmb3IgbWFuYWdpbmcgdGhlIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiBvZiByZXF1ZXN0cyByZWxhdGVkIHRvIHRoZSBNSURJMiBlbmRwb2ludHMuIEdpdmVuIGl0cyBjZW50cmFsIHJvbGUsIEkgc2hvdWxkIHByb2JhYmx5IHJlLWV4YW1pbmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBmX21pZGkyX3NldF9hbHRgIG1vcmUgY2xvc2VseS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIHJlcXVlc3QgbGlmZWN5Y2xlIGluIHRoYXQgZnVuY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NzIwLCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NzoxMy41MTAzMDQyNzZaIiwiU2VxIjo0NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQyMjUxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX21pZGkyLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTI3NCxcbiAgXCJMaW5lQ291bnRcIjogNDVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTI3NDpcXHRzdGF0aWMgaW50IGZfbWlkaTJfc2V0X2FsdChzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmbiwgdW5zaWduZWQgaW50IGludGYsXFxuMTI3NTpcXHRcXHRcXHRcXHQgICB1bnNpZ25lZCBpbnQgYWx0KVxcbjEyNzY6XFx0e1xcbjEyNzc6XFx0XFx0c3RydWN0IGZfbWlkaTIgKm1pZGkyID0gZnVuY190b19taWRpMihmbik7XFxuMTI3ODpcXHRcXHRzdHJ1Y3QgZl9taWRpMl9lcCAqZXA7XFxuMTI3OTpcXHRcXHRpbnQgaSwgb3BfbW9kZSwgZXJyO1xcbjEyODA6XFx0XFxuMTI4MTpcXHRcXHRpZiAoaW50ZiAhPSBtaWRpMi1cXHUwMDNlbWlkaV9pZiB8fCBhbHQgXFx1MDAzZSAxKVxcbjEyODI6XFx0XFx0XFx0cmV0dXJuIDA7XFxuMTI4MzpcXHRcXG4xMjg0OlxcdFxcdGlmIChhbHQgPT0gMClcXG4xMjg1OlxcdFxcdFxcdG9wX21vZGUgPSBNSURJX09QX01PREVfTUlESTE7XFxuMTI4NjpcXHRcXHRlbHNlXFxuMTI4NzpcXHRcXHRcXHRvcF9tb2RlID0gTUlESV9PUF9NT0RFX01JREkyO1xcbjEyODg6XFx0XFxuMTI4OTpcXHRcXHRpZiAobWlkaTItXFx1MDAzZW9wZXJhdGlvbl9tb2RlID09IG9wX21vZGUpXFxuMTI5MDpcXHRcXHRcXHRyZXR1cm4gMDtcXG4xMjkxOlxcdFxcbjEyOTI6XFx0XFx0bWlkaTItXFx1MDAzZW9wZXJhdGlvbl9tb2RlID0gb3BfbW9kZTtcXG4xMjkzOlxcdFxcbjEyOTQ6XFx0XFx0aWYgKG9wX21vZGUgIT0gTUlESV9PUF9NT0RFX01JREkxKVxcbjEyOTU6XFx0XFx0XFx0Zl9taWRpMl9zdG9wX2VwcyhcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkxX2VwX2luLCBcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkxX2VwX291dCk7XFxuMTI5NjpcXHRcXG4xMjk3OlxcdFxcdGlmIChvcF9tb2RlICE9IE1JRElfT1BfTU9ERV9NSURJMikge1xcbjEyOTg6XFx0XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG1pZGkyLVxcdTAwM2VudW1fZXBzOyBpKyspIHtcXG4xMjk5OlxcdFxcdFxcdFxcdGVwID0gXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMl9lcHNbaV07XFxuMTMwMDpcXHRcXHRcXHRcXHRmX21pZGkyX3N0b3BfZXBzKFxcdTAwMjZlcC1cXHUwMDNlZXBfaW4sIFxcdTAwMjZlcC1cXHUwMDNlZXBfb3V0KTtcXG4xMzAxOlxcdFxcdFxcdH1cXG4xMzAyOlxcdFxcdH1cXG4xMzAzOlxcdFxcbjEzMDQ6XFx0XFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkxKVxcbjEzMDU6XFx0XFx0XFx0cmV0dXJuIGZfbWlkaTJfc3RhcnRfZXBzKFxcdTAwMjZtaWRpMi1cXHUwMDNlbWlkaTFfZXBfaW4sXFxuMTMwNjpcXHRcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm1pZGkyLVxcdTAwM2VtaWRpMV9lcF9vdXQsIGZuKTtcXG4xMzA3OlxcdFxcbjEzMDg6XFx0XFx0aWYgKG9wX21vZGUgPT0gTUlESV9PUF9NT0RFX01JREkyKSB7XFxuMTMwOTpcXHRcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbWlkaTItXFx1MDAzZW51bV9lcHM7IGkrKykge1xcbjEzMTA6XFx0XFx0XFx0XFx0ZXAgPSBcXHUwMDI2bWlkaTItXFx1MDAzZW1pZGkyX2Vwc1tpXTtcXG4xMzExOlxcdFxcbjEzMTI6XFx0XFx0XFx0XFx0ZXJyID0gZl9taWRpMl9zdGFydF9lcHMoXFx1MDAyNmVwLVxcdTAwM2VlcF9pbiwgXFx1MDAyNmVwLVxcdTAwM2VlcF9vdXQsIGZuKTtcXG4xMzEzOlxcdFxcdFxcdFxcdGlmIChlcnIpXFxuMTMxNDpcXHRcXHRcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjEzMTU6XFx0XFx0XFx0fVxcbjEzMTY6XFx0XFx0fVxcbjEzMTc6XFx0XFxuMTMxODpcXHRcXHRyZXR1cm4gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjlUMDk6NDc6MTMuNTEwNDQ3OTY3WiIsIlNlcSI6NDcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE2MTk4Mzc4Nzc3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIE1JREkyIEdhZGdldCBSZXF1ZXN0IE1hbmFnZW1lbnQqKlxuXG5Pa2F5LCBzbyBgZl9taWRpMl9zZXRfYWx0YCBpcyBkZWZpbml0ZWx5IHRoZSBrZXkgZnVuY3Rpb24uIFRoYXQncyB0aGUgb25lIHRoYXQgaGFuZGxlcyByZXF1ZXN0IGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbiwgc28gaXQncyBhIHByaW1hcnkgZm9jdXMuIEJleW9uZCB0aGF0LCBJIG5lZWQgdG8gaW5jbHVkZSBgZl9taWRpMl9iaW5kYCBhbmQgYGZfbWlkaTJfdW5iaW5kYCBzaW5jZSB0aGV5IHdvdWxkIGluZmx1ZW5jZSBob3cgcmVxdWVzdHMgYXJlIGhhbmRsZWQuXG5cbldhaXQgYSBtaW51dGUsIGBmX21pZGkyX2FsbG9jX2VwX3JlcXNgIGlzIGFsc28gY2FsbGVkIGZyb20gYGZfbWlkaTJfc3RhcnRfZXBzYC4gSSBuZWVkIHRvIGVuc3VyZSB0aGF0IEkgaGF2ZW4ndCBtaXNzZWQgYW55IG90aGVyIHNpbWlsYXIgY2FsbCBzaXRlcy4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBvdGhlciBwb3RlbnRpYWwgY2FuZGlkYXRlcyBzdWNoIGFzIGBmX21pZGkyX2VwX2luX2NvbXBsZXRlYCBhbmQgYW55IHNpbWlsYXIgZnVuY3Rpb25zLiBTdGlsbCwgYGZfbWlkaTJfc2V0X2FsdGAgcmVtYWlucyB0aGUgY2VudHJhbCBmdW5jdGlvbi5cblxuTm93LCBsZXQncyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLiBMZXQncyBzZWUuLi4gYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBHb29kLiBJJ2xsIGRvdWJsZS1jaGVjayB0aGF0IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgdGhlICpvbmx5KiByZXF1aXJlZCBvcHRpb24uIEFoLCB5ZXMsIGl0IHNlbGVjdHMgYFVTQl9GX01JREkyYCwgd2hpY2ggaXMgd2hhdCBJIGV4cGVjdC5cblxuTGV0J3MgdHJhY2UgdGhlc2UgZGVwZW5kZW5jaWVzLiBPa2F5LCBgVVNCX0NPTkZJR0ZTYCBkZXBlbmRzIG9uIGBVU0JfR0FER0VUYC4gQW5kIGBVU0JfQ09ORklHRlNfRl9NSURJMmAgZGVwZW5kcyBvbiBib3RoIGBVU0JfQ09ORklHRlNgIGFuZCBgU05EYC4gU28sIG15IGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzIGFyZTogYFVTQl9HQURHRVRgLCBgVVNCX0NPTkZJR0ZTYCwgYFNORGAsIGFuZCBgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0IG1lIHZlcmlmeSB0aGF0IGBVU0JfQ09ORklHRlNfRl9NSURJMmAgaXMgaW5kZWVkIHRoZSBjb3JyZWN0IEtjb25maWcgc3ltYm9sLiBZZXAsIGBjb25maWcgVVNCX0NPTkZJR0ZTX0ZfTUlESTJgLiBQZXJmZWN0LlxuXG5Pa2F5LCBJJ20gY29uZmlkZW50IGluIHRoaXMgYW5hbHlzaXMuIEknbGwgcmV0dXJuIGBXb3J0aEZ1enppbmc9dHJ1ZWAsIGFsb25nIHdpdGggdGhlIGlkZW50aWZpZWQgZm9jdXMgc3ltYm9scyBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjc3NiwiT3V0cHV0VG9rZW5zIjoxNzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOVQwOTo0NzoyOS43MDg4MzAyMjRaIiwiU2VxIjo0OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjAwNjU5NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9HQURHRVRcIixcbiAgICBcIlVTQl9DT05GSUdGU1wiLFxuICAgIFwiU05EXCIsXG4gICAgXCJVU0JfQ09ORklHRlNfRl9NSURJMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZfbWlkaTJfc2V0X2FsdFwiLFxuICAgIFwiZl9taWRpMl9iaW5kXCIsXG4gICAgXCJmX21pZGkyX3VuYmluZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cXHUwMDNlaW5mby5udW1fcmVxc2AgdG8gYHVzYl9lcC1cXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQl9HQURHRVRcIixcbiAgICBcIlVTQl9DT05GSUdGU1wiLFxuICAgIFwiU05EXCIsXG4gICAgXCJVU0JfQ09ORklHRlNfRl9NSURJMlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImZfbWlkaTJfc2V0X2FsdFwiLFxuICAgIFwiZl9taWRpMl9iaW5kXCIsXG4gICAgXCJmX21pZGkyX3VuYmluZFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBhbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIFVTQiBlbmRwb2ludCByZXF1ZXN0cyBpbiB0aGUgTUlESSAyLjAgZ2FkZ2V0IGZ1bmN0aW9uIGRyaXZlci4gSXQgY2hhbmdlcyB0aGUgbG9vcCBib3VuZCBmcm9tIGBtaWRpMi1cXHUwMDNlaW5mby5udW1fcmVxc2AgdG8gYHVzYl9lcC1cXHUwMDNlbnVtX3JlcXNgLCB3aGljaCBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIG91dC1vZi1ib3VuZHMgYWNjZXNzIG9yIG1lbW9yeSBsZWFrcy4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGdhZGdldCBjb25maWd1cmF0aW9uIGFuZCBhbHRlcm5hdGUgc2V0dGluZyBjaGFuZ2VzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },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-workflowbtgl7[1] Phase: Succeeded StartedAt: 2026-07-29 09:47:42 +0000 UTC FinishedAt: 2026-07-29 09:47:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-29 09:47:42 +0000 UTC FinishedAt: 2026-07-29 09:47:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2] Phase: Succeeded StartedAt: 2026-07-29 09:47:42 +0000 UTC FinishedAt: 2026-07-29 13:54:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-29 09:47:42 +0000 UTC FinishedAt: 2026-07-29 13:54:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-29 09:47:42 +0000 UTC FinishedAt: 2026-07-29 09:47:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-29 09:47:42 +0000 UTC FinishedAt: 2026-07-29 09:47:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowbtgl7/series-workflowbtgl7-convert-artifact-629778184/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-29 09:47:52 +0000 UTC FinishedAt: 2026-07-29 10:18:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-29 09:47:52 +0000 UTC FinishedAt: 2026-07-29 10:18:56 +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:*65076ed7-4c5b-42df-be53-ca42740ca524,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-workflowbtgl7/series-workflowbtgl7-convert-artifact-629778184/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": "532cdf82-82ea-4377-a8ed-3088acdfeee5", "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-workflowbtgl7/series-workflowbtgl7-build-action-3388178814/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-29 09:47:52 +0000 UTC FinishedAt: 2026-07-29 10:18: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:*65076ed7-4c5b-42df-be53-ca42740ca524,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-workflowbtgl7/series-workflowbtgl7-convert-artifact-629778184/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": "532cdf82-82ea-4377-a8ed-3088acdfeee5", "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-workflowbtgl7/series-workflowbtgl7-build-action-3388178814/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-29 10:18:56 +0000 UTC FinishedAt: 2026-07-29 10:18:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-29 10:18:56 +0000 UTC FinishedAt: 2026-07-29 10:18:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-29 10:18:56 +0000 UTC FinishedAt: 2026-07-29 10:19:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-29 10:18:56 +0000 UTC FinishedAt: 2026-07-29 10:19:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowbtgl7/series-workflowbtgl7-convert-artifact-613163503/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-29 10:19:06 +0000 UTC FinishedAt: 2026-07-29 10:21:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-29 10:19:06 +0000 UTC FinishedAt: 2026-07-29 10:21:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*532cdf82-82ea-4377-a8ed-3088acdfeee5,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-workflowbtgl7/series-workflowbtgl7-build-action-3388178814/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-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-29 10:21:13 +0000 UTC FinishedAt: 2026-07-29 10:21:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-29 10:21:13 +0000 UTC FinishedAt: 2026-07-29 10:21:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-29 10:21:13 +0000 UTC FinishedAt: 2026-07-29 10:48:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-29 10:21:13 +0000 UTC FinishedAt: 2026-07-29 10:48:22 +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:*65076ed7-4c5b-42df-be53-ca42740ca524,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-workflowbtgl7/series-workflowbtgl7-convert-artifact-613163503/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": "999b67fa-2bb8-485a-b38a-43cfbcd61396", "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-workflowbtgl7/series-workflowbtgl7-build-action-1907070339/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-29 10:21:13 +0000 UTC FinishedAt: 2026-07-29 10:48:12 +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:*65076ed7-4c5b-42df-be53-ca42740ca524,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-workflowbtgl7/series-workflowbtgl7-convert-artifact-613163503/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": "999b67fa-2bb8-485a-b38a-43cfbcd61396", "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-workflowbtgl7/series-workflowbtgl7-build-action-1907070339/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-29 10:48:22 +0000 UTC FinishedAt: 2026-07-29 10:48:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-29 10:48:22 +0000 UTC FinishedAt: 2026-07-29 10:48:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-29 10:48:22 +0000 UTC FinishedAt: 2026-07-29 10:50:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-29 10:48:22 +0000 UTC FinishedAt: 2026-07-29 10:50:14 +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:*999b67fa-2bb8-485a-b38a-43cfbcd61396,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-workflowbtgl7/series-workflowbtgl7-build-action-1907070339/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-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-29 10:50:24 +0000 UTC FinishedAt: 2026-07-29 13:54:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-29 10:50:24 +0000 UTC FinishedAt: 2026-07-29 13:54: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-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"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:*532cdf82-82ea-4377-a8ed-3088acdfeee5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*999b67fa-2bb8-485a-b38a-43cfbcd61396,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-workflowbtgl7/series-workflowbtgl7-build-action-3388178814/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-workflowbtgl7/series-workflowbtgl7-build-action-1907070339/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-29 10:50:24 +0000 UTC FinishedAt: 2026-07-29 10:50:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-29 10:50:24 +0000 UTC FinishedAt: 2026-07-29 10:50:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"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-workflowbtgl7/series-workflowbtgl7-convert-artifact-4089770408/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-29 10:50:24 +0000 UTC FinishedAt: 2026-07-29 10:50:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-29 10:50:24 +0000 UTC FinishedAt: 2026-07-29 10:50:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-29 10:50:24 +0000 UTC FinishedAt: 2026-07-29 10:50:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-29 10:50:34 +0000 UTC FinishedAt: 2026-07-29 13:54:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbtgl7[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["f_midi2_set_alt","f_midi2_bind","f_midi2_unbind"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"f5098b6bae761e346ebcd9da7f95622c04733cff","config_name":"upstream-apparmor-kasan.config","enable_configs":["USB_GADGET","USB_CONFIGFS","SND","USB_CONFIGFS_F_MIDI2"],"series_id":"49d7f060-4c70-4142-a1cd-7d30da545737","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-29 10:50:34 +0000 UTC FinishedAt: 2026-07-29 13:53:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*532cdf82-82ea-4377-a8ed-3088acdfeee5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*999b67fa-2bb8-485a-b38a-43cfbcd61396,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-workflowbtgl7/series-workflowbtgl7-build-action-3388178814/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-workflowbtgl7/series-workflowbtgl7-build-action-1907070339/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-workflowbtgl7/series-workflowbtgl7-convert-artifact-4089770408/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,}