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AAAAAIgPAAASAAAAAAAAAAAAAAAAAAAAAAAAAGcIAAASAAAAAAAAAAAAAAAAAAAAAAAAANcMAAASAAAAAAAAAAAAAAAAAAAAAAAAAEAJAAASAAAAAAAAAAAAAAAAAAAAAAAAAMgLAAASAAAAAAAAAAAAAAAAAAAAAAAAAI8QAAASAAAAAAAAAAAAAAAAAAAAAAAAAJsPAAASAAAAAAAAAAAAAAAAAAAAAAAAADkHAAASAAAAAAAAAAAAAAAAAAAAAAAAAKgKAAASAAAAAAAAAAAAAAAAAAAAAAAAAMEMAAASAAAAAAAAAAAAAAAAAAAAAAAAADgLAAASAAAAAAAAAAAAAAAAAAAAAAAAAIgIAAASAAAAAAAAAAAAAAAAAAAAAAAAADIOAAASAAAAAAAAAAAAAAAAAAAAAAAAAOYHAAASAAAAAAAAAAAAAAAAAAAAAAAAADgPAAASAAAAAAAAAAAAAAAAAAAAAAAAAEEKAAASAAAAAAAAAAAAAAAAAAAAAAAAAIMBAAASAAAAAAAAAAAAAAAAAAAAAAAAAN8PAAASAAAAAAAAAAAAAAAAAAAAAAAAAGYCAAASAAAAAAAAAAAAAAAAAAAAAAAAAIACAAARABkAwFVxAAAAAABgBAAAAAAAAIAQAAASAA4AcPZEAAAAAAARAAAAAAAAAEAGAAASAAAAAAAAAAAAAAAAAAAAAAAAAC4MAAASAAAAAAAAAAAAAAAAAAAAAAAAANoAAAASAAAAAAAAAAAAAAAAAAAAAAAAAN8OAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAASAAAAAAAAAAAAAAAAAAAAAAAAAJ8DAAASAAAAAAAAAAAAAAAAAAAAAAAAAJ0OAAASAAAAAAAAAAAAAAAAAAAAAAAAAG8OAAASAAAAAAAAAAAAAAAAAAAAAAAAAJEJAAASAAAAAAAAAAAAAAAAAAAAAAAAAH4PAAASAAAAAAAAAAAAAAAAAAAAAAAAAPcPAAASAA4AsPZEAAAAAAAkAQAAAAAAAPMOAAASAAAAAAAAAAAAAAAAAAAAAAAAAE8DAAASAAAAAAAAAAAAAAAAAAAAAAAAAJcDAAASAAAAAAAAAAAAAAAAAAAAAAAAACoAAAASAAAAAAAAAAAAAAAAAAAAAAAAAH0IAAASAAAAAAAAAAAAAAAAAAAAAAAAAJgEAAASAAAAAAAAAAAAAAAAAAAAAAAAAH4FAAASAAAA4FFAAAAAAAAAAAAAAAAAAO4GAAASAAAAAAAAAAAAAAAAAAAAAAAAAL8EAAASAAAAAAAAAAAAAAAAAAAAAAAAAN8JAAASAAAAAAAAAAAAAAAAAAAAAAAAAOUOAAASAAAAAAAAAAAAAAAAAAAAAAAAAJECAAASAAAAAAAAAAAAAAAAAAAAAAAAABAFAAASAAAAAAAAAAAAAAAAAAAAAAAAADMPAAASAAAAAAAAAAAAAAAAAAAAAAAAAAUDAAASAAAAwFFAAAAAAAAAAAAAAAAAAJQPAAASAAAAAAAAAAAAAAAAAAAAAAAAAM0BAAASAAAAAAAAAAAAAAAAAAAAAAAAAFUEAAASAAAAAAAAAAAAAAAAAAAAAAAAAJsKAAASAAAAAAAAAAAAAAAAAAAAAAAAADkFAAASAAAAAAAAAAAAAAAAAAAAAAAAAIcDAAASAAAAAAAAAAAAAAAAAAAAAAAAAHUBAAASAAAAAAAAAAAAAAAAAAAAAAAAAKAGAAASAAAAAAAAAAAAAAAAAAAAAAAAAG0MAAASAAAAAAAAAAAAAAAAAAAAAAAAAHsEAAASAAAAAAAAAAAAAAAAAAAAAAAAAHcAAAASAAAAAAAAAAAAAAAAAAAAAAAAAOYPAAASAA4AkPZEAAAAAAAVAAAAAAAAAEYQAAASAAAAAAAAAAAAAAAAAAAAAAAAADoBAAASAAAAAAAAAAAAAAAAAAAAAAAAAPELAAASAAAAAAAAAAAAAAAAAAAAAAAAABoJAAASAAAAAAAAAAAAAAAAAAAAAAAAABgLAAASAAAAAAAAAAAAAAAAAAAAAAAAAPAIAAASAAAAAAAAAAAAAAAAAAAAAAAAALgOAAASAAAAAAAAAAAAAAAAAAAAAAAAAD4QAAASAAAAAAAAAAAAAAAAAAAAAAAAAJ4QAAASAAAAAAAAAAAAAAAAAAAAAAAAAHcNAAASAAAAAAAAAAAAAAAAAAAAAAAAAHgJAAASAAAAAAAAAAAAAAAAAAAAAAAAAJoHAAASAAAA8FFAAAAAAAAAAAAAAAAAAJUKAAASAAsAkFFAAAAAAAAAAAAAAAAAANoNAAASAAAAAAAAAAAAAAAAAAAAAAAAANkDAAASAAAAAAAAAAAAAAAAAAAAAAAAAPQJAAASAAAAAAAAAAAAAAAAAAAAAAAAAFkKAAASAAAAAAAAAAAAAAAAAAAAAAAAACwPAAASAAAAAAAAAAAAAAAAAAAAAAAAACUJAAASAAAAAAAAAAAAAAAAAAAAAAAAACMHAAASAAAAAAAAAAAAAAAAAAAAAAAAAGAOAAASAAAAAAAAAAAAAAAAAAAAAAAAAJIKAAASAAAAAAAAAAAAAAAAAAAAAAAAABUPAAASAAAAAAAAAAAAAAAAAAAAAAAAAO8BAAASAAAAAAAAAAAAAAAAAAAAAAAAABAIAAASAAAAAAAAAAAAAAAAAAAAAAAAAFQBAAASAAAAAAAAAAAAAAAAAAAAAAAAADcGAAASAAAAAAAAAAAAAAAAAAAAAAAAAD8PAAASAAAAAAAAAAAAAAAAAAAAAAAAAJYIAAASAAAAAAAAAAAAAAAAAAAAAAAAAOQCAAASAAAAAAAAAAAAAAAAAAAAAAAAAAsIAAASAAAAAAAAAAAAAAAAAAAAAAAAABgMAAASAAAAAAAAAAAAAAAAAAAAAAAAAL0JAAASAAAAAAAAAAAAAAAAAAAAAAAAALEBAAASAAAAAAAAAAAAAAAAAAAAAAAAAE0QAAASAAAAAAAAAAAAAAAAAAAAAAAAABUOAAASAAAAAAAAAAAAAAAAAAAAAAAAAG0GAAASAAAAAAAAAAAAAAAAAAAAAAAAAD0AAAASAAAAAAAAAAAAAAAAAAAAAAAAAB0DAAASAAAAAAAAAAAAAAAAAAAAAAAAAPkAAAASAAAAAAAAAAAAAAAAAAAAAAAAAFgPAAASAAAAAAAAAAAAAAAAAAAAAAAAAAUOAAASAAAAAAAAAAAAAAAAAAAAAAAAAFkNAAASAAAAAAAAAAAAAAAAAAAAAAAAADsEAAASAAAAAAAAAAAAAAAAAAAAAAAAAKUOAAASAAAAAAAAAAAAAAAAAAAAAAAAADgFAAASAAAAAAAAAAAAAAAAAAAAAAAAAK4MAAASAAAAAAAAAAAAAAAAAAAAAAAAAMIDAAASAAAAAAAAAAAAAAAAAAAAAAAAAN0KAAASAAAAAAAAAAAAAAAAAAAAAAAAAF8IAAASAAAAAAAAAAAAAAAAAAAAAAAAAIcKAAASAAAAAAAAAAAAAAAAAAAAAAAAAE8MAAASAAAAAAAAAAAAAAAAAAAAAAAAAJMNAAASAAAAAAAAAAAAAAAAAAAAAAAAAG8DAAASAAAAAAAAAAAAAAAAAAAAAAAAADAIAAASAAAAAAAAAAAAAAAAAAAAAAAAAJgDAAASAAAAAAAAAAAAAAAAAAAAAAAAAK8DAAASAAAAAAAAAAAAAAAAAAAAAAAAAOQGAAASAAAAAAAAAAAAAAAAAAAAAAAAAIcOAAASAAAAAAAAAAAAAAAAAAAAAAAAANUFAAASAAAAAAAAAAAAAAAAAAAAAAAAAMsAAAASAAAAAAAAAAAAAAAAAAAAAAAAAH8FAAASAAAAAAAAAAAAAAAAAAAAAAAAAMwCAAASAAAAAAAAAAAAAAAAAAAAAAAAAEkAAAASAAAAAAAAAAAAAAAAAAAAAAAAANwIAAASAAAAAAAAAAAAAAAAAAAAAAAAADwNAAASAAAAAAAAAAAAAAAAAAAAAAAAAGsHAAASAAAAAAAAAAAAAAAAAAAAAAAAAJUOAAASAAAAAAAAAAAAAAAAAAAAAAAAANUOAAASAAAAAAAAAAAAAAAAAAAAAAAAALwPAAASAA4A4PdEAAAAAAAwAAAAAAAAAIkPAAASAAAAAAAAAAAAAAAAAAAAAAAAADkQAAASAAAAAAAAAAAAAAAAAAAAAAAAAB0EAAASAAAAAAAAAAAAAAAAAAAAAAAAANEPAAARABkAgFVxAAAAAAAIAAAAAAAAALYAAAASAAAAAAAAAAAAAAAAAAAAAAAAAM4QAAASAAAAAAAAAAAAAAAAAAAAAAAAAEcPAAASAAAAAAAAAAAAAAAAAAAAAAAAAF4JAAASAAAAAAAAAAAAAAAAAAAAAAAAAG0NAAASAAAAAAAAAAAAAAAAAAAAAAAAACgNAAASAAAAAAAAAAAAAAAAAAAAAAAAAMcQAAASAAAAAAAAAAAAAAAAAAAAAAAAADINAAASAAAAAAAAAAAAAAAAAAAAAAAAAHQFAAASAAAAAAAAAAAAAAAAAAAAAAAAAK4QAAASAAAAAAAAAAAAAAAAAAAAAAAAAO0OAAARABkAcFNxAAAAAAAIAAAAAAAAAIYFAAASAAAAAAAAAAAAAAAAAAAAAAAAADYDAAASAAAAAAAAAAAAAAAAAAAAAAAAAHAEAAASAAAAAAAAAAAAAAAAAAAAAAAAAEUQAAASAAAAAAAAAAAAAAAAAAAAAAAAABsGAAASAAAAAAAAAAAAAAAAAAAAAAAAAEwLAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAASAAAAAAAAAAAAAAAAAAAAAAAAAKUNAAASAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAASAAAAAAAAAAAAAAAAAAAAAAAAANMHAAASAAAAAAAAAAAAAAAAAAAAAAAAAOUMAAASAAAAAAAAAAAAAAAAAAAAAAAAAJMMAAASAAAAAAAAAAAAAAAAAAAAAAAAABYIAAASAAAAAAAAAAAAAAAAAAAAAAAAADgGAAASAAAAAAAAAAAAAAAAAAAAAAAAAKYLAAASAAAAAAAAAAAAAAAAAAAAAAAAAJEHAAASAAAAAAAAAAAAAAAAAAAAAAAAANgPAAARABkAoFtxAAAAAAAIAAAAAAAAAI0LAAASAAAAAAAAAAAAAAAAAAAAAAAAAGYAAAASAAAAAAAAAAAAAAAAAAAAAAAAAGUPAAASAAAAAAAAAAAAAAAAAAAAAAAAAHAQAAASAAAAAAAAAAAAAAAAAAAAAAAAACcCAAARABkAQFpxAAAAAAAEAAAAAAAAAJ0MAAASAAAA0FFAAAAAAAAAAAAAAAAAAAoCAAASAAAAAAAAAAAAAAAAAAAAAAAAAMYCAAASAA8AdPpEAAAAAAAAAAAAAAAAANUQAAASAAAAAAAAAAAAAAAAAAAAAAAAAEkJAAASAAAAAAAAAAAAAAAAAAAAAAAAAPgEAAASAAAAAAAAAAAAAAAAAAAAAAAAAA0NAAASAAAAAAAAAAAAAAAAAAAAAAAAAKkJAAASAAAAAAAAAAAAAAAAAAAAAAAAAI4PAAASAAAAAAAAAAAAAAAAAAAAAAAAAKoPAAASAAAAAAAAAAAAAAAAAAAAAAAAAMwKAAASAAAAAAAAAAAAAAAAAAAAAAAAABwQAAASAA4AkPhEAAAAAAAmAAAAAAAAAEMIAAASAAAAAAAAAAAAAAAAAAAAAAAAACgBAAASAAAAAAAAAAAAAAAAAAAAAAAAABUBAAASAAAAAAAAAAAAAAAAAAAAAAAAAMYOAAARABkAeFNxAAAAAAAEAAAAAAAAAA0MAAASAAAAAAAAAAAAAAAAAAAAAAAAABIEAAASAAAAAAAAAAAAAAAAAAAAAAAAAGgOAAASAAAAAAAAAAAAAAAAAAAAAAAAAAANAAASAAAAAAAAAAAAAAAAAAAAAAAAADsCAAARABkAgFNxAAAAAAAAAgAAAAAAAPgFAAASAAAAAAAAAAAAAAAAAAAAAAAAAE0HAAASAAAAAAAAAAAAAAAAAAAAAAAAAN8EAAASAAAAAAAAAAAAAAAAAAAAAAAAAKoCAAASAAAAAAAAAAAAAAAAAAAAAAAAAM8LAAASAAAAAAAAAAAAAAAAAAAAAAAAAO0FAAASAAAAAAAAAAAAAAAAAAAAAAAAAFUFAAASAAAAAAAAAAAAAAAAAAAAAAAAAIMHAAASAAAAAAAAAAAAAAAAAAAAAAAAAA4PAAASAAAAAAAAAAAAAAAAAAAAAAAAAL4OAAASAAAAAAAAAAAAAAAAAAAAAAAAALUPAAASAAAAAAAAAAAAAAAAAAAAAAAAAFMQAAARABgAMFNxAAAAAAAIAAAAAAAAALoHAAASAAAAAAAAAAAAAAAAAAAAAAAAAEgCAAASAAAAAAAAAAAAAAAAAAAAAAAAAAQRAAAQAPH/QFNxAAAAAAAAAAAAAAAAAKcQAAARABkAgFtxAAAAAAAEAAAAAAAAACUPAAASAAAAAAAAAAAAAAAAAAAAAAAAAAkQAAASAAAAAAAAAAAAAAAAAAAAAAAAALwGAAASAAAAAAAAAAAAAAAAAAAAAAAAAH8GAAASAAAAAAAAAAAAAAAAAAAAAAAAALkOAAASAAAAAAAAAAAAAAAAAAAAAAAAAB8PAAASAAAAAAAAAAAAAAAAAAAAAAAAABQKAAASAAAAAAAAAAAAAAAAAAAAAAAAAGoLAAASAAAAAAAAAAAAAAAAAAAAAAAAAI4OAAASAAAAAAAAAAAAAAAAAAAAAAAAAKIPAAASAAAAAAAAAAAAAAAAAAAAAAAAABARAAAQAPH/AHpxAAAAAAAAAAAAAAAAAJwJAAASAAAAAAAAAAAAAAAAAAAAAAAAAOsLAAASAAAAAAAAAAAAAAAAAAAAAAAAAL0KAAASAAAAAAAAAAAAAAAAAAAAAAAAAAoDAAASAAAAAAAAAAAAAAAAAAAAAAAAAGkKAAASAAAAAAAAAAAAAAAAAAAAAAAAABUQAAASAAAAAAAAAAAAAAAAAAAAAAAAAD4FAAASAAAAAAAAAAAAAAAAAAAAAAAAABoPAAASAAAAAAAAAAAAAAAAAAAAAAAAALYIAAASAAAAAAAAAAAAAAAAAAAAAAAAAPMNAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAASAAAAAAAAAAAAAAAAAAAAAAAAAOcLAAASAAAAAAAAAAAAAAAAAAAAAAAAAPMKAAASAAAAAAAAAAAAAAAAAAAAAAAAAABsaWJiZmQtMi4yNy4wLjIwMTcwMzE1LnNvAF9fZ21vbl9zdGFydF9fAGJmZF9wcmludGFibGVfbmFtZQBodGFiX2NyZWF0ZQBlbGYzMl9hcm1fbmV4dF9pbnB1dF9zZWN0aW9uAGh0YWJfaGFzaF9zdHJpbmcAYmZkX2VsZjMyX2FybV92ZnAxMV9maXhfdmVuZWVyX2xvY2F0aW9ucwBiZmRfbGlua19jaGVja19yZWxvY3MAYmZkX2VsZl9kaXNjYXJkX2luZm8AYmZkX3NldF9mb3JtYXQAYmZkX2VsZl9yZWNvcmRfbGlua19hc3NpZ25tZW50AGJmZF9lbXVsX2dldF9jb21tb25wYWdlc2l6ZQBiZmRfbGlua19hZGRfdW5kZWYAYmZkX21ha2VfcmVhZGFibGUAZWxmMzJfYWFyY2g2NF9idWlsZF9zdHVicwBiZmRfZWxmMzJfYXJtX3ZmcDExX2VycmF0dW1fc2NhbgBiZmRfZ2V0X2Vycm9yAGJmZF9zZXRfYXNzZXJ0X2hhbmRsZXIAYmZkX2Nhbm9uaWNhbGl6ZV9yZWxvYwByZWdpc3Rlcl9sZF9wbHVnaW5fb2JqZWN0X3AAX2JmZF9lbGZfbWFwX3NlY3Rpb25zX3RvX3NlZ21lbnRzAF9iZmRfZml4X2V4Y2x1ZGVkX3NlY19zeW1zAGVsZjMyX2FybV9maXhfZXhpZHhfY292ZXJhZ2UAYmZkX3VzZV9yZXNlcnZlZF9pZABfc2NoX2lzdGFibGUAYmZkX2dlbmVyaWNfbGlua19yZWFkX3N5bWJvbHMAYmZkX2hhc2hfc2V0X2RlZmF1bHRfc2l6ZQBfYmZkX3N0ZF9zZWN0aW9uAGJmZF9lbXVsX2dldF9tYXhwYWdlc2l6ZQBiZmRfZWxmMzJfYXJtX3NldF92ZnAxMV9maXgAX2ZpbmkAYmZkX2VsZjMyX2FybV9pbml0X21hcHMAYmZkX3NlY3Rpb25fYWxyZWFkeV9saW5rZWRfdGFibGVfZnJlZQBfYmZkX2VsZl90bHNfc2V0dXAAYmZkX2dldF9zZWN0aW9uX2NvbnRlbnRzAGJmZF9lbGZfZ2V0X3J1bnBhdGhfbGlzdABiZmRfZWxmMzJfYXJtX3NldF9ieXRlc3dhcF9jb2RlAGJmZF9nZXRfc2VjdGlvbl9ieV9uYW1lAGJmZF9nZXRfZ3Bfc2l6ZQB4c3RyZHVwAGJmZF90YXJnZXRfbGlzdAB1bmxpbmtfaWZfb3JkaW5hcnkAYmZkX3NldF9kZWZhdWx0X3RhcmdldABiZmRfZWxmMzJfYXJtX2FkZF9nbHVlX3NlY3Rpb25zX3RvX2JmZABiZmRfZ2V0X2FyY2hfaW5mbwBiZmRfYndyaXRlAGJmZF9lbGYzMl9hYXJjaDY0X3NldF9vcHRpb25zAGVsZjY0X2FhcmNoNjRfYnVpbGRfc3R1YnMAYmZkX3NldF9lcnJvcl9wcm9ncmFtX25hbWUAYmZkX3B1dGwxNgBiZmRfd3JhcHBlZF9saW5rX2hhc2hfbG9va3VwAGJmZF9lbGYzMl9hcm1fZ2V0X2JmZF9mb3JfaW50ZXJ3b3JraW5nAGJmZF9lbGZfc2l6ZV9keW5zeW1faGFzaF9keW5zdHIAZWxmNjRfYWFyY2g2NF9zaXplX3N0dWJzAGJmZF9hcmNoX2dldF9jb21wYXRpYmxlAGJmZF9lbGYzMl9hcm1fcHJvY2Vzc19iZWZvcmVfYWxsb2NhdGlvbgB4ZXhpdABiZmRfbGlua19oYXNoX3RyYXZlcnNlAF9iZmRfZWxmX2xpbmtfaGFzaF9oaWRlX3N5bWJvbABiZmRfYWxsb2MAeG1hbGxvYwBiZmRfZWxmX3BhcnNlX2VoX2ZyYW1lX2VudHJpZXMAYmZkX2VsZjMyX2FybV9rZWVwX3ByaXZhdGVfc3R1Yl9vdXRwdXRfc2VjdGlvbnMAYmZkX2dldF9yZWxvY19jb2RlX25hbWUAYmZkX3B1dGwzMgBiZmRfcmVsb2NfdHlwZV9sb29rdXAAYmZkX2dldF9tYWNoAGJmZF9lbGYzMl9hYXJjaDY0X2luaXRfbWFwcwB4cmVhbGxvYwBiZmRfZWxmMzJfYXJtX3N0bTMybDR4eF9maXhfdmVuZWVyX2xvY2F0aW9ucwBiZmRfbWFrZV93cml0YWJsZQBlbGY2NF9hYXJjaDY0X25leHRfaW5wdXRfc2VjdGlvbgBiZmRfZ2V0X3VuaXF1ZV9zZWN0aW9uX25hbWUAYmZkX2VsZl9nZXRfZHRfc29uYW1lAGJmZF9oYXNoX2FsbG9jYXRlAGh0YWJfZmluZABjcGx1c19kZW1hbmdsZV9uYW1lX3RvX3N0eWxlAGJmZF9lbGZfZ2V0X25lZWRlZF9saXN0AGJmZF9zZWFyY2hfZm9yX3RhcmdldABiZmRfY2FjaGVfY2xvc2VfYWxsAGJmZF9lbGY2NF9hYXJjaDY0X3NldF9vcHRpb25zAGJmZF9nZXRfYXJjaABiZmRfcHV0bDY0AGJmZF9zY2FuX2FyY2gAYmZkX3NlZWsAX2JmZF9lbGZfbWF0Y2hfc2VjdGlvbnNfYnlfdHlwZQB4bWFsbG9jX3NldF9wcm9ncmFtX25hbWUAYmZkX2Nsb3NlX2FsbF9kb25lAGJmZF9zZXRfc3RhcnRfYWRkcmVzcwBiZmRfc2V0X3N5bXRhYgBfYmZkX2Fib3J0AGJmZF9lbGZfc2V0X2R5bl9saWJfY2xhc3MAYmZkX2dldF9yZWxvY19zaXplAGJmZF9lbGY2NF9hYXJjaDY0X2luaXRfbWFwcwB4Y2FsbG9jAGJmZF9zZXRfZXJyb3JfaGFuZGxlcgBiZmRfZ2V0YjE2AGJmZF9zZXRfZXJyb3IAYmZkX2VsZjMyX2FybV9zZXRfdGFyZ2V0X3JlbG9jcwBiZmRfc2VjdGlvbl9hbHJlYWR5X2xpbmtlZF90YWJsZV9pbml0AGJmZF9oYXNoX3RhYmxlX2ZyZWUAYmZkX2hhc2hfbG9va3VwAGJmZF9lbGZfZ2V0X2R5bl9saWJfY2xhc3MAYmZkX2dldGIzMgBiZmRfZWxmX3NldF9kdF9uZWVkZWRfbmFtZQBiZmRfc3RhdABtYWtlX3JlbGF0aXZlX3ByZWZpeABiZmRfZ2V0X3JlbG9jX3VwcGVyX2JvdW5kAGVsZjMyX2FhcmNoNjRfc2l6ZV9zdHVicwBiZmRfZXJybXNnAGZpbGVuYW1lX2NtcABvYmphbGxvY19mcmVlX2Jsb2NrAGVsZjMyX2FhcmNoNjRfc2V0dXBfc2VjdGlvbl9saXN0cwBlbGYzMl9hcm1fc2l6ZV9zdHVicwBiZmRfZWxmMzJfYXJtX3NldF9zdG0zMmw0eHhfZml4AGJmZF9lbGYzMl9hcm1fYWxsb2NhdGVfaW50ZXJ3b3JraW5nX3NlY3Rpb25zAGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5AGJmZF9yZWNvcmRfcGhkcgBlbGYzMl9hcm1fc2V0dXBfc2VjdGlvbl9saXN0cwBiZmRfZ2V0YjY0AGJmZF9pbml0AGJmZF9kZW1hbmdsZQBiZmRfbGlua19oYXNoX2xvb2t1cABodGFiX2ZpbmRfc2xvdABiZmRfY2hlY2tfZm9ybWF0AGVsZjMyX2FybV9idWlsZF9zdHVicwBiZmRfZWxmMzJfYXJtX3N0bTMybDR4eF9lcnJhdHVtX3NjYW4AYmZkX2VsZjMyX2FybV9zZXRfY29ydGV4X2E4X2ZpeABiZmRfb2N0ZXRzX3Blcl9ieXRlAGJmZF9hcmNoX21hY2hfb2N0ZXRzX3Blcl9ieXRlAGJmZF9tYWtlX3NlY3Rpb25fYW55d2F5X3dpdGhfZmxhZ3MAYmZkX2NoZWNrX2Zvcm1hdF9tYXRjaGVzAGVsZjY0X2FhcmNoNjRfc2V0dXBfc2VjdGlvbl9saXN0cwBjb25jYXQAYmZkX2hpZGVfc3ltX2J5X3ZlcnNpb24AYmZkX2Nsb3NlAGJmZF9lbXVsX3NldF9jb21tb25wYWdlc2l6ZQBiZmRfY3JlYXRlAGJmZF9tYXBfb3Zlcl9zZWN0aW9ucwBlbGYzMl9hYXJjaDY0X25leHRfaW5wdXRfc2VjdGlvbgBiZmRfZWxmX3NpemVfZHluYW1pY19zZWN0aW9ucwBiZmRfZW11bF9zZXRfbWF4cGFnZXNpemUAX3NjaF90b2xvd2VyAGxiYXNlbmFtZQBiZmRfaGFzaF9uZXdmdW5jAGJmZF9uZXdfbGlua19vcmRlcgBiZmRfaGFzaF90YWJsZV9pbml0X24AZmlsZW5hbWVfbmNtcABiZmRfZ2V0X3NlY3Rpb25fYnlfbmFtZV9pZgBiZmRfc2Nhbl92bWEAYmZkX2VsZjMyX2FybV91c2VfbG9uZ19wbHQAYmZkX29wZW5yAGJmZF9vcGVudwBiZmRfZ2V0X25leHRfc2VjdGlvbl9ieV9uYW1lAGJmZF9wbHVnaW5fdGFyZ2V0X3AAbHJlYWxwYXRoAGJmZF9tYWtlX3NlY3Rpb25fd2l0aF9mbGFncwBiZmRfc2V0X2FyY2hfaW5mbwBiZmRfZWxmX2dldF9iZmRfbmVlZGVkX2xpc3QAY3VycmVudF9kZW1hbmdsaW5nX3N0eWxlAGNwbHVzX2RlbWFuZ2xlX3NldF9zdHlsZQBiZmRfaGFzaF90cmF2ZXJzZQBiZmRfc2V0X2dwX3NpemUAYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZQBiZmRfaGFzaF90YWJsZV9pbml0AF94ZXhpdF9jbGVhbnVwAGxpYmRsLnNvLjIAZGxjbG9zZQBkbG9wZW4AZGxzeW0AZGxlcnJvcgBsaWJjLnNvLjYAZmZsdXNoAHN0cmNweQBmbm1hdGNoAHNwcmludGYAX0lPX3B1dGMAc2V0bG9jYWxlAGZvcGVuAHN0cm5jbXAAb3B0aW5kAHN0cnJjaHIAZGNnZXR0ZXh0AGZ0ZWxsAHB1dGNoYXIAc3RkaW4Ac3RycGJyawBzYnJrAHJld2luZABzdHJ0b2wAaXNhdHR5AG1tYXAAZmVvZgBmZ2V0cwBzdHJsZW4AbWVtc2V0AGdsb2IAc3Ryc3RyAHN0cmNzcG4AX19lcnJub19sb2NhdGlvbgBmc2VlawBtZW1jbXAAZ2V0cGFnZXNpemUAc3Rkb3V0AGZwdXRjAGdldHJ1c2FnZQBmcHV0cwBsc2VlawBtZW1jcHkAZmNsb3NlAHN0cnRvdWwAc3RyY2FzZWNtcABnZXRlbnYAX29ic3RhY2tfYWxsb2NhdGVkX3AAb3B0YXJnAHN0ZGVycgBtdW5tYXAAX29ic3RhY2tfYmVnaW5fMQBfb2JzdGFja19uZXdjaHVuawBnZXRvcHRfbG9uZwBmaWxlbm8AX29ic3RhY2tfbWVtb3J5X3VzZWQAZndyaXRlAGZyZWFkAHN0cmNocgBmcHJpbnRmAHFzb3J0AG9ic3RhY2tfYWxsb2NfZmFpbGVkX2hhbmRsZXIAX194c3RhdABtZW1tb3ZlAF9vYnN0YWNrX2JlZ2luAGJpbmR0ZXh0ZG9tYWluAF9JT19nZXRjAG9wdGVycgBzdHJjbXAAX19saWJjX3N0YXJ0X21haW4AZmVycm9yAHN0cGNweQBnbG9iZnJlZQBnZXRvcHRfbG9uZ19vbmx5AF9vYnN0YWNrX2ZyZWUAX2VkYXRhAF9fYnNzX3N0YXJ0AF9lbmQAL3Vzci94ODZfNjQtcGMtbGludXgtZ251L2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliAEdMSUJDXzIuMi41AEdMSUJDXzIuMjcA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/yXS1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXa1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXa1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXa1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXa1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXa1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXa1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXa1jAAZpD/JdrWMABmkP8l2tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l4tYwAGaQ/yXi1jAAZpD/JeLWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JerWMABmkP8l6tYwAGaQ/yXq1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLWMABmkP8l8tYwAGaQ/yXy1jAAZpD/JfLW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0r4EAAAA6JGSAADpfO7//0mLfQAx0r4EAAAA6HySAADpZ+7//0mLfQAx0r4EAAAA6GeSAADpUu7//+i9NAAA6Uju///oYzMAAOk+7v//SYt94OjlEwEA6TDu//9Ji3XgSYt9oOhDogAA6R7u//9Ji30AvgEAAADoIOsAAOkL7v//SYt9ADH26BDrAADp++3//0mLfeDoUu0AAOnt7f//SYt94OgE7QAA6d/t///oSjQAAOnV7f//6MAyAABJi30A6DeRAQDpwu3//0mLfeDoWeAAAOm07f//6I/rAADpqu3//+gF6wAA6aDt///HBfr0MAABAAAA6ZHt///HBef0MAABAAAA6YLt//9Ji33gMfbod5EBAOly7f//SYtV4EmLdaC5AQAAAEmLvWD////oKeoAAOlU7f//SYt94LkBAAAAMdIx9ugS6gAA6T3t//9Ji33gvgEAAADoH9QAAOkq7f//xwUo2TAAAwAAAOkb7f//xwUZ2TAAAgAAAOkM7f//6HczAADpAu3//+jtMQAASYt9AOhkkAEA6e/s///oWjMAAEmLdQAx0r/nA0gA6EpkAQBIicfowuAAAOnN7P//6NgyAADpw+z//+guMwAASYtNoEmLvaD+//9Ni03ATYtF4EmLVQBBi7WA/v//6JvuAADpluz//+gBMwAA6JwyAADph+z//0mLdcBJi71g////6BfsAADpcuz//+jdMgAA6FgxAADpY+z//+huMgAA6Vns//9IixVy1zAAMcm+/vtEADH/6OTvAABIiUQkMOk67P//6KUyAABJi03ASYtV4EmLdaBJi30A6PDgAADpG+z//+iGMgAA6CEyAADpDOz//0GLRYBJi41g////SYu1IP///0mLveD+//+LFfXXMABQQYtF4FBNi41A////TYtFoOj30gAAQVpBW+nO6///6DkyAADotDAAAOm/6///6MoxAADptev//8dEJDAAAAAA6ajr///HRCQwfQEAAOmb6///x0QkMHwBAADpjuv//8dEJDB7AQAA6YHr//9Ix0QkMAAAAADpc+v//0mLReBIiUQkMOll6///x0QkMAAAAADpWOv//8dEJDB/AQAA6Uvr//9Ix0QkMAAAAADpPev//0mLReBIiUQkMOkv6///SMdEJDAAAAAA6SHr//9Ji0XgSIlEJDDpE+v//0jHRCQwAAAAAOkF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uyUBAADpbfr//8cFeNcwACQBAAC7JAEAAOlZ+v//xwVk1zAAFwEAALsXAQAA6UX6///HBVDXMABPAQAAu08BAADpMfr//8cFPNcwABkBAAC7GQEAAOkd+v//xwUo1zAAGAEAALsYAQAA6Qn6///HBRTXMAB4AQAAu3gBAADp9fn//8cFANcwAE0BAAC7TQEAAOnh+f//xwXs1jAANAEAALs0AQAA6c35///HBdjWMAAzAQAAuzMBAADpufn//8cFxNYwADIBAAC7MgEAAOml+f//xwWw1jAAOwAAALs7AAAA6ZH5///HBZzWMAA6AAAAuzoAAADpffn//8cFiNYwACgAAAC7KAAAAOlp+f//xwV01jAAKQAAALspAAAA6VX5///HBWDWMAB7AAAAu3sAAADpQfn//8cFTNYwAH0AAAC7fQAAAOkt+f//xwU41jAAPQAAALs9AAAA6Rn5///HBSTWMAA8AAAAuzwAAADpBfn//8cFENYwACUAAAC7JQAAAOnx+P//xwX81TAALwAAALsvAAAA6d34///HBejVMABkAQAAu2QBAADpyfj//8cF1NUwAGMBAAC7YwEAAOm1+P//xwXA1TAAaAEAALtoAQAA6aH4///HBazVMABgAQAAu2ABAADpjfj//8cFmNUwAGwBAAC7bAEAAOl5+P//xwWE1TAAawEAALtrAQAA6WX4///HBXDVMABqAQAAu2oBAADpUfj//8cFXNUwAFwBAAC7XAEAAOk9+P//xwVI1TAAFwEAALsXAQAA6Sn4///HBTTVMABVAQAAu1UBAADpFfj//8cFINUwAGIBAAC7YgEAAOkB+P//xwUM1TAAXwEAALtfAQAA6e33///HBfjUMABeAQAAu14BAADp2ff//8cF5NQwAF0BAAC7XQEAAOnF9///xwXQ1DAAcwEAALtzAQAA6bH3///HBbzUMABxAQAAu3EBAADpnff//8cFqNQwAGcBAAC7ZwEAAOmJ9///xwWU1DAAZAEAALtkAQAA6XX3///HBYDUMABjAQAAu2MBAADpYff//8cFbNQwAGgBAAC7aAEAAOlN9///xwVY1DAAYAEAALtgAQAA6Tn3///HBUTUMABsAQAAu2wBAADpJff//8cFMNQwAGsBAAC7awEAAOkR9///xwUc1DAAagEAALtqAQAA6f32///HBQjUMABcAQAAu1wBAADp6fb//8cF9NMwABcBAAC7FwEAAOnV9v//xwXg0zAAVQEAALtVAQAA6cH2///HBczTMABiAQAAu2IBAADprfb//4sFULswADHbjWj/iS1FuzAAhe0PhJT2//9IizztgF5xAGa7FgHoCPP//4sEraBdcQAPthX60zAAiQXcjTAAiwStYF1xAIPi94PgAcHgAwnQiAXc0zAA6VL2//+DBbiNMAABxwVW0zAAYQEAALthAQAA6Tf2//9IizVl0zAAv85dRQDoH7f//+kK9f//xwUs0zAAgQEAALuBAQAA6Q32//9IYzVH0zAASIsNJLowALoBAAAASIs9KNMwAOhztf//6dL0//9IiwUX0zAAuwMBAABIjXgB6Omx//9IYxUO0zAASIkF29IwAMZEEP4A6bz1//9IiwXq0jAAuwQBAABIjXgC6Lyx//9IiQW10jAA6Zv1///HBabSMAByAQAAu3IBAADph/X//8cFktIwAHcBAAC7dwEAAOlz9f//xwV+0jAAdgEAALt2AQAA6V/1//9IiwWN0jAAD74Y6VD1//8PtgWSuzAASIsVn7swAEmJ3EwrJW3SMACIA0iLBXy7MABBg+wBSI0M0EiLEYtCOIXAD4Q9AQAASGMFV7swAEgDQghIOQVEuzAAD4bHAAAA6Je2//+D+AEPhIUAAACD+AJ0QYXAD4XP8///TWPkTInjSAMdDtIwAEiJHQ+7MADoIrX//0iLLfvRMADpw/P//8cFzNEwAD8BAAC7PwEAAOmt9P//SIsVA7swAEiLBey6MABIYx3dujAASIsE0EgDWAhIiR3GujAA6Nm0//9ImEiLLbDRMAAPt5QAQLFFAOkS9P//SIsFnNEwAMcFjrowAAAAAABIiQWTujAAiwWFujAAg+gBicLB6h8B0NH4BckAAADpC/T//01j5EyJ40gDHWLRMABIiR1jujAA6Ha0//9IY/APt5Q2QLFFAGaF0nQNiQU4ujAASIkdKbowAA+/jDaAoUUAg8EBSGPJD7+8CUBlRQA5+HQxSA+/tDZAk0UASInw69hIizUCuDAASGNCHEiJMkiLEYkFCrowAMdCOAEAAADpp/7//w+/hAlAfEUASIst39AwAD3uBgAAD4RD8///hcAPhDvz//9Ig8MBSIkdybkwAOmJ8v//xwWS0DAAcgEAALtyAQAA6XPz///HBX7QMAA+AQAAuz4BAADpX/P//8cFatAwAGUBAAC7ZQEAAOlL8///xwVW0DAAZgEAALtmAQAA6Tfz///HBULQMABFAQAAu0UBAADpI/P//8cFLtAwAEQBAAC7RAEAAOkP8///xwUa0DAAQQEAALtBAQAA6fvy///HBQbQMAAtAAAAuy0AAADp5/L//8cF8s8wACsAAAC7KwAAAOnT8v//xwXezzAAKgAAALsqAAAA6b/y///HBcrPMABdAQAAu10BAADpq/L//8cFts8wAHMBAAC7cwEAAOmX8v//xwWizzAAcgEAALtyAQAA6YPy///HBY7PMABxAQAAu3EBAADpb/L//8cFes8wAGcBAAC7ZwEAAOlb8v//gy35tjAAAXkKxwV9uDAAEQAAAEiLBXbPMAAPvhjpOfL//0iLBWfPMACDBdC2MAABD74Y6SPy//9Iiz1RzzAAu3UBAADoJ67//0iJBSDPMADpBvL//0iLPTTPMAC7AwEAAOgKrv//SIkFA88wAOnp8f//SIs9F88wALsDAQAA6O2t//9IiQXmzjAA6czx///HBdfOMABfAQAAu18BAADpuPH//8cFw84wAF4BAAC7XgEAAOmk8f//SIsF0s4wALsEAQAASI14Auikrf//SIkFnc4wAOmD8f//SIs9sc4wALsDAQAA6Iet//9IiQWAzjAA6Wbx//9Iiz2UzjAAuwMBAADoaq3//0iJBWPOMADpSfH//+hZrf//uwMBAABIiQVNzjAA6TPx///HBT7OMAA/AAAAuz8AAADpH/H//8cFKs4wACEAAAC7IQAAAOkL8f//xwUWzjAAfgAAALt+AAAA6ffw///HBQLOMAB8AAAAu3wAAADp4/D//8cF7s0wACYAAAC7JgAAAOnP8P//xwXazTAALAAAALssAAAA6bvw///HBcbNMAA+AAAAuz4AAADpp/D//8cFss0wAH4BAAC7fgEAAOmT8P//xwWezTAATwEAALtPAQAA6X/w///HBYrNMABPAQAAu08BAADpa/D//8cFds0wAE0BAAC7TQEAAOlX8P//xwVizTAATQEAALtNAQAA6UPw///HBU7NMAB9AQAAu30BAADpL/D//8cFOs0wAHwBAAC7fAEAAOkb8P//xwUmzTAAewEAALt7AQAA6Qfw///HBRLNMAA5AQAAuzkBAADp8+///8cF/swwADgBAAC7OAEAAOnf7///xwXqzDAANwEAALs3AQAA6cvv///HBdbMMAA2AQAAuzYBAADpt+///8cFwswwADUBAAC7NQEAAOmj7///xwWuzDAAKQEAALspAQAA6Y/v///HBZrMMAAqAQAAuyoBAADpe+///8cFhswwACcBAAC7JwEAAOln7///xwVyzDAAKAEAALsoAQAA6VPv///HBV7MMAAnAQAAuycBAADpP+///8cFSswwADkBAAC7OQEAAOkr7///xwU2zDAATAEAALtMAQAA6Rfv///HBSLMMABLAQAAu0sBAADpA+///8cFDswwAEoBAAC7SgEAAOnv7v//xwX6yzAAHgEAALseAQAA6dvu///HBebLMAAdAQAAux0BAADpx+7//8cF0sswABwBAAC7HAEAAOmz7v//xwW+yzAAGwEAALsbAQAA6Z/u///HBarLMAAaAQAAuxoBAADpi+7//8cFlsswAEkBAAC7SQEAAOl37v//xwWCyzAASAEAALtIAQAA6WPu///HBW7LMABHAQAAu0cBAADpT+7//8cFWsswAC4BAAC7LgEAAOk77v//xwVGyzAALAEAALssAQAA6Sfu///HBTLLMABGAQAAu0YBAADpE+7//8cFHsswAE4BAAC7TgEAAOn/7f//xwUKyzAAIwEAALsjAQAA6evt///HBfbKMAAiAQAAuyIBAADp1+3//8cF4sowACEBAAC7IQEAAOnD7f//xwXOyjAAHwEAALsfAQAA6a/t///HBbrKMAAvAQAAuy8BAADpm+3//8cFpsowAC0BAAC7LQEAAOmH7f//xwWSyjAAVAEAALtUAQAA6XPt///HBX7KMABQAQAAu1ABAADpX+3//8cFasowADoBAAC7OgEAAOlL7f//xwVWyjAAWwEAALtbAQAA6Tft///HBULKMABSAQAAu1IBAADpI+3//8cFLsowAFEBAAC7UQEAAOkP7f//xwUayjAAUwEAALtTAQAA6fvs///HBQbKMAA8AQAAuzwBAADp5+z//8cF8skwADsBAAC7OwEAAOnT7P//xwXeyTAAQAEAALtAAQAA6b/s///HBcrJMAA9AQAAuz0BAADpq+z//8cFtskwADABAAC7MAEAAOmX7P//xwWiyTAAKwEAALsrAQAA6YPs///HBY7JMAArAQAAuysBAADpb+z//8cFeskwAEMB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MAABAAAA6VXu///HBZusMAABAAAA6Ubu//9Miz0nljAASIs9cIkwAOj7RwEATIk9FJYwAMcFwqkwAAMAAADoBaH//+kY7v//SIsFSYkwAEiJBTKsMADpBe7//0yLPeaVMABIiz0viTAA6LpHAQBMiT3TlTAAxwWBqTAABAAAAOjEoP//gz3JqzAAAXQKxwW9qzAAAgAAAIM9sqswAAEPhbzt///HBaKrMAAAAAAA6a3t///oMMkAAIM9laswAAF0CscFiaswAAIAAACDPX6rMAABD4WI7f//xwVuqzAAAAAAAOl57f//vwEAAADo5ygBAEiLPaCIMADHBdapMAABAAAAxwUkrDAAAQAAAMcFgmMwAP7///9Ihf8PhEHt//9IjXQkUDHS6J2K//9IiUQkCEiLRCRQgDgAdCVMiz1XiDAAvhrjRQAx/7oFAAAA6HaG//9Mif5IiccxwOh5NgEAMcCDfCQIAQ+fwIkFoawwAOns7P//vwIAAADoWigBAOn1+f//gA2SqTAABOnR7P//6ISgAABBg8UB6cPs///HBamqMAACAAAA6bTs//9IizXlhzAAv5jkRQDou+n//+me7P//SIs1z4cwAL+d5EUA6KXp///piOz//0iLNbmHMAC/o+RFAOiP6f//6XLs//9IizWjhzAAv6nkRQDoeen//+lc7P//SIs1jYcwAL+35EUA6GPp///pRuz//0iLNXeHMAC/x+RFAOhN6f//6TDs//9Miz1hhzAATYX/D4TACwAAv4PkRQC5CwAAAEyJ/vOmD4SrCwAAv47kRQC5CgAAAEyJ/vOmD4WlDgAAxwVQqjAAAQAAAOnn6///TIs9GIcwAL+k5kUAuQUAAABMif7zpg+FFwwAAMcFlaowAAEAAADpvOv//w+2BW+oMACJwoPiGID6EA+EngwAAIPgYMdEJCADAAAAPEAPhZTr//+ADUeoMABg6Yjr///HBeapMAABAAAAxwWsqTAAAQAAAOlv6///SIs9oIYwAOhLRQEA6V7r///HBUSpMAABAAAA6U/r//9Iiz1YqTAASIX/D4TWDQAA6LqE//9Iiz1rhjAASYnH6KuE//9JjXwHAui5gv//D74NmqkwAEyLBUuGMABIicdIixUZqTAASYnHvkXkRQAxwOjSiP//SIs9A6kwAOhmgv//TIk996gwAOni6v//ixUcqTAAhdIPhIwLAAAPtgWFpzAAg+ADPAIPhFsOAAAPtgV1pzAAgA1spzAAA6gYdQyD4OeDyAiIBV6nMACoYA+FnOr//w+2BU+nMACD4J+DyCCIBUOnMADphOr//8cF7qgwAAEAAADpder//8cF16gwAAEAAADpZur//8cFNKgwAAAAAADpV+r//4sFkagwAIXAD4ROCwAAD7YF+qYwAIPgAzwCD4SwDQAAD7YF6KYwAIPg/IPIAYgF3KYwAOkf6v//TIs9UIUwAL/k40UAuQsAAABMif7zpg+FsgkAAA+2BbamMACD4IeDyCiIBaqmMADp6+n//w+2BZ6mMACJwoPiGID6GA+EGwsAAIPgYMdEJCACAAAAPGAPhcPp//8PtgV2pjAAg+Cfg8hAiAVqpjAA6avp//+AJV2mMAD96Z/p//+ADVGmMAAC6ZPp///HBWGnMAABAAAA6YTp//9Iiz21hDAA6EBmAQDpc+n//0iLPaSEMADo32YBAIXAD4Rf6f//Mf+6BQAAAL4n5EUA6LaC//9IiccxwOi8MgEA6T/p//9IiwVwhDAASIkFYacwAOks6f//RYXtD4SICgAA6FadAABBg+0B6RXp//+ADculMACA6Qnp//+ADbqlMAAQ6f3o//9Iiz0uhDAA6KnpAADp7Oj//4ANoKUwACDp4Oj//4ANlaUwAAJIgz15pzAAAA+Fy+j//0jHBWinMAD9AwAA6bvo//8PHwCD+x0Pj58HAAAPH4AAAAAASIs1mYEwAL8gAAAAg8MB6GyC//+D+x5150iLdCQQMf+6BQAAAOjmgf//SInH6PaA//+DRCQgAUiDRCQIQItEJCA9rAAAAA+FtO///7oFAAAAvmDjRQAx/+izgf//uxcAAABIiccxwOj8gf//Zi4PH4QAAAAAAGYuDx+EAAAAAABIizUZgTAAvyAAAADo74H//4PrAXXqugUAAAC+aONFADH/6GmB//9IiccxwOi3gf//SIsduKYwALoFAAAAvoDjRQAx/+hHgf//SIneSInHMcDokoH//+gFgv//SIswSInFSInDSIX2dB8PH4AAAAAAv1zjRQAxwEiDwwjoaIH//0iLM0iF9nXoSInv6BB///+/CgAAAOiuf///SIsdT6YwALoFAAAAMf++l+NFAOjegP//SIneSInHMcDoKYH//0iLPVqAMADoxSABAL8KAAAA6HN///9Iix0UpjAAugUAAAAx/77wv0UA6KOA//9Iid5IiccxwOjugP//SIsdH4AwALoFAAAAvrLjRQAx/+h+gP//SInHMcDozID//7oFAAAAMf++GMBFAOhjgP//SInfSInGMcDodoL//7oFAAAAMf++UMBFAOhFgP//SInfSInGMcDoWIL//7oFAAAAMf++2MBFAOgngP//SInfSInGMcDoOoL//7oFAAAAMf++CMFFAOgJgP//SInfSInGMcDoHIL//7oFAAAAvkjBRQAx/+jrf///SInfSInGMcDo/oH//7oFAAAAMf++iMFFAOjNf///SInfSInGMcDo4IH//7oFAAAAMf++2MFFAOivf///SInfSInGMcDowoH//7oFAAAAMf++GMJFAOiRf///SInfSInGMcDopIH//7oFAAAAMf++aMJFAOhzf///SInfSInGMcDohoH//7oFAAAAMf++wMJFAOhVf///SInfSInGMcDoaIH//7oFAAAAMf++CMNFAOg3f///SInfSInGMcDoSoH//7oFAAAAMf++UMNFAOgZf///SInfSInGMcDoLIH//7oFAAAAMf++iMNFAOj7fv//SInfSInGMcDoDoH//7oFAAAAMf++wMNFAOjdfv//SInfSInGMcDo8ID//7oFAAAAMf++AMRFAOi/fv//SInfSInGMcDo0oD//7oFAAAAMf++QMRFAOihfv//SInfSInGMcDotID//7oFAAAAMf++iMRFAOiDfv//SInfSInGMcDoloD//7oFAAAAMf++6MRFAOhlfv//SInfSInGMcDoeID//7oFAAAAMf++OMVFAOhHfv//SInfSInGMcDoWoD//7oFAAAAMf++iMVFAOgpfv//SInfSInGMcDoPID//7oFAAAAMf++8MVFAOgLfv//SInfSInGMcDoHoD//7oFAAAAMf++QMZFAOjtff//SInfSInGMcDoAID//7oFAAAAMf++kMZFAOjPff//SInfSInGMcDo4n///7oFAAAAMf++4MZFAOixff//SInfSInGMcDoxH///7oFAAAAMf++KMdFAOiTff//SInfSInGMcDopn///7oFAAAAMf++YMdFAOh1ff//SInfSInGMcDoiH///7oFAAAAMf++sMdFAOhXff//SInfSInGMcDoan///7oFAAAAMf+++MdFAOg5ff//SInfSInGMcDoTH///7oFAAAAMf++OMhFAOgbff//SInfSInGMcDoLn///zH/ugUAAAC+eMhFAOj9fP//SInfSInGMcDoEH///7oFAAAAMf++wMhFAOjffP//SInfSInGMcDo8n7//7oFAAAAMf++KMlFAOjBfP//SInfSInGMcDo1H7//7oFAAAAMf++cMlFAOijfP//SInfSInGMcDotn7//7oFAAAAMf++uMlFAOiFfP//SInfSInGMcDomH7//7oFAAAAMf++CMpFAOhnfP//SInfSInGMcDoen7//7oFAAAAMf++WMpFAOhJfP//SInfSInGMcDoXH7//7oFAAAAMf++mMpFAOgrfP//SInfSInGMcDoPn7//7oFAAAAvujKRQAx/+gNfP//SInfSInGMcDoIH7//7oFAAAAvjjLRQAx/+jve///SInfSInGMcDoAn7//0iLPWt7MADo9hwBAL8KAAAA6IR6//+6BQAAAL7D40UAMf/ou3v//76Iy0UASInHMcDoBHz//zH/6G1///8PH0QAAItsJCBEi3wkIOmkAAAAZpBMifG+d1NGAL/c40UAMcBBvAMAAADoznv//0yJ90UB5eiDe///TYn4AcNJweAGRAHrTYugaPpFAE2F5HQ5ugUAAABMieYx/+hEe///v1zjRQBIicYxwOiNe///ugUAAABMieYx/+gme///SInH6DZ7//+NXAMBuQEAAACDxQGB/awAAAAPhOb4//9Bie9MifhIweAGSIO4cPpFAAAPhc74//9MifhIweAGTIuwQPpFAE2F9nTGi4B4+kUAg/gEdLuD6AK6aftEAIP4AQ+WwITARA+26LiwYUYASA9E0IXJD4Ub////TInxvrBhRgC/3ONFADHAQbwBAAAA6Ol6///pFv///w8fQAC5AQAAAOko6f//Zg8fRAAAvwoAAAAx2+gkef//6Vf4//8PtgWxnTAAg+DnicKDygiIFaOdMACD4mAPhWnl//+DyGiIBZGdMADpW+X//74BAAAASInf6L4uAQDpUeT//4PiAQ+EbOX//w+2BWmdMABIxwUunjAAAAAAAMcFkJ4wAAAAAACDyASIBUudMACD4APpsOT//7oFAAAAvoDORQAx/+jief//SInHMcDo6CkBAEjHBWWeMAAAAAAA6Yzj///HBbqeMAACAAAA6VHg//+/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ALkEAAAASIne86Z0Hr/pAUgAuQUAAABIid7zpg+FBwEAAIPIgIgFvCsvAIPKAYgVtCsvAOl7/P//Dx8AxwWqKy8AAAAAALAB6Qf6//8PH4AAAAAAg8iAiAWKKy8AuAEAAADp7fn//w8fRAAAgA1zKy8AGOnc+f//Dx9AAEiLHeEJLwC6BQAAAL4a40UAMf/oAAj+/0iJ3kiJxzHA6AO4///pDvz//0jHBbMJLwCIZkYAuohmRgDpGfv//2YPH4QAAAAAAIANHisvAAHphPn//8cFFisvAAMAAACwAelz+f//SI17DkiNdCQYMdLoowv+/0iLVCQYSIkF3ywvAIA6AHUNSI1Q/0iFwg+Epfv//0iLBU4JLwC6BQAAAL4Y/UcASI1YDulk////ugUAAAC++PxHAOlV////SI17EUiNdCQYMdLoTAv+/0iLVCQYSIkFkCwvAIA6AHUNSI1Q/0iFwg+ETvv//0iLBfcILwC6BQAAAL5A/UcASI1YEekN////SI17C0iNdCQYMdLoBAv+/0iJwkiJBVoqLwBIweo/hNJ1XUiLVCQYgDoAdVNIhcAPhf/6//9IxwU0Ki8A/////+nv+v//D7YFHSovAIPICIPg74gFESovALgBAAAA6XL4//8PtgUAKi8Ag8gQg+D3iAX0KS8AuAEAAADpVfj//0iLBV4ILwC6BQAAAL5o/UcAMf9IjVgL6HkG/v9Iid5IiccxwOh8tv//SIsFxSkvAOl4////SIMNYCovAAK4AQAAAOkO+P//SIMNTiovACC4AQAAAOn89///SIENOSovAAAEAACwAenq9///SIMNKiovABCwAenb9///SIENGCovAAAIAACwAenJ9///SIMNCSovAAiwAem69///gA1GKS8AQLAB6az3//+LBTYpLwAl/3/+/w0AAAEAiQUmKS8AuAEAAADpjPf//7oFAAAAvrYCSADptv3//0iDDb0pLwBAsAHpbvf//0iDDaYpLwAISIMNpikvAAGwAelX9///SIENlCkvAAAQAACwAelF9///iwXPKC8AJf9//v+AzICJBcEoLwC4AQAAAOkn9///gCWzKC8A+7AB6Rn3//+ADaUoLwAEsAHpC/f//4ANlCgvAAiwAen99v//gCWKKC8A97AB6e/2//+ADXwoLwAIsAHp4fb//0iDDRkpLwABSIENFikvAIAA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SI17C0iNdCQYMdLoRNT9/0iJwkiJBZrzLgBIweo/hNJ1XUiLVCQYgDoAdVNIhcAPhf/6//9IxwV08y4A/////+nv+v//D7YFXfMuAIPICIPg74gFUfMuALgBAAAA6XL4//8PtgVA8y4Ag8gQg+D3iAU08y4AuAEAAADpVfj//0iLBZ7RLgC6BQAAAL5o/UcAMf9IjVgL6LnP/f9Iid5IiccxwOi8f///SIsFBfMuAOl4////SIMNoPMuAAK4AQAAAOkO+P//SIMNjvMuACC4AQAAAOn89///SIENefMuAAAEAACwAenq9///SIMNavMuABCwAenb9///SIENWPMuAAAIAACwAenJ9///SIMNSfMuAAiwAem69///gA2G8i4AQLAB6az3//+LBXbyLgAl/3/+/w0AAAEAiQVm8i4AuAEAAADpjPf//7oFAAAAvrYCSADptv3//0iDDf3yLgBAsAHpbvf//0iDDebyLgAISIMN5vIuAAGwAelX9///SIEN1PIuAAAQAACwAelF9///iwUP8i4AJf9//v+AzICJBQHyLgC4AQAAAOkn9///gCXz8S4A+7AB6Rn3//+ADeXxLgAEsAHpC/f//4AN1PEuAAiwAen99v//gCXK8S4A97AB6e/2//+ADbzxLgAIsAHp4fb//0iDDVnyLgABSIENVvIuAIAAAACwAenH9v//SIMlP/IuAPdIgyU/8i4A/rAB6bD2//9BVUFUSYn1VVNIY+9IjXUGSYnMSGPaSIPsCEmLfQBIg8MTSMHjBeiNzv3/ujoAAABJiUUAxwQocHo6UGaJVCgESYs8JEiJ3uhszv3/SYkEJEiNjBig/f//SIsFIYUFAL4AC0gASI15CEiJAUiLBWaHBQBIg+f4SImBWAIAAEgp+UgpzoHBYAIAAMHpA/NIpUiDxAhbXUFcQV3DZg8fRAAAVVNIif1Ig+wISIseSIXbdD8PH0QAAGYuDx+EAAAAAACDewgPD4eOAAAAi0MI/yTFQApIAA8fQABIjXMQSInv6Lz///+FwHUKSIsbSIXbddAxwEiDxAhbXcMPH4AAAAAASItFEEg5QxB13kiLRQhIixNIiRBIi0UASIkDuAEAAADr0GYPH0QAAEiNczBIie/obP///4XAdLDruGYPH0QAAL5wdnEASInv6FP///+FwHSX658PH0QAAL7eAAAAvxwK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RXJyb3I6IHBvcHBpbmcAbWVtb3J5IGV4aGF1c3RlZABDbGVhbnVwOiBkaXNjYXJkaW5nIGxvb2thaGVhZABDbGVhbnVwOiBwb3BwaW5nAFBUX0dOVV9FSF9GUkFNRQAkZW5kACR1bmRlZmluZWQASU5UAExOQU1FAFBMVVNFUQBNSU5VU0VRAE1VTFRFUQBESVZFUQAnPScATFNISUZURVEAUlNISUZURVEAQU5ERVEAT1JFUQAnPycAJzonAE9ST1IAQU5EQU5EACd8JwAnXicAJyYnACc8JwAnPicAR0UATFNISUZUAFJTSElGVAAnKycAJy0nACcqJwAnLycAJyUnAFVOQVJZACcoJwBBTElHTl9LAEJMT0NLAEJJTkQAU1FVQUQATE9ORwBTSE9SVABCWVRFAFNFQ1RJT05TAElOU0VSVF9LAEFGVEVSAEJFRk9SRQBEQVRBX1NFR01FTlRfQUxJR04AREFUQV9TRUdNRU5UX1JFTFJPX0VORABEQVRBX1NFR01FTlRfRU5EAFNPUlRfQllfTkFNRQBTT1JUX0JZX0FMSUdOTUVOVABTT1JUX05PTkUAU09SVF9CWV9JTklUX1BSSU9SSVRZACd7JwAnfScAU0laRU9GX0hFQURFUlMAT1VUUFVUX0ZPUk1BVABGT1JDRV9DT01NT05fQUxMT0NBVElPTgBPVVRQVVRfQVJDSABJTkhJQklUX0NPTU1PTl9BTExPQ0FUSU9OAFNFR01FTlRfU1RBUlQASU5DTFVERQBNRU1PUlkAUkVHSU9OX0FMSUFTAExEX0ZFQVRVUkUATk9MT0FEAERTRUNUAENPUFkASU5GTwBPVkVSTEFZAERFRklORUQAVEFSR0VUX0sAU0VBUkNIX0RJUgBNQVAARU5UUlkATkVYVABTSVpFT0YAQUxJR05PRgBMT0FEQUREUgBNQVhfSwBNSU5fSwBTVEFSVFVQAEhMTABTWVNMSUIATk9GTE9BVABOT0NST1NTUkVGUwBOT0NST1NTUkVGU19UTwBPUklHSU4ARklMTABMRU5HVEgAQ1JFQVRFX09CSkVDVF9TWU1CT0xTAEdST1VQAE9VVFBVVABDT05TVFJVQ1RPUlMAQUxJR05NT0QAU1VCQUxJR04AUFJPVklERQBQUk9WSURFX0hJRERFTgBBU19ORUVERUQAQ0hJUABBQlNPTFVURQBORVdMSU5FAEVORFdPUkQAT1JERVIATkFNRVdPUkQAQVNTRVJUX0sATE9HMkNFSUwAUFVCTElDAERFRlNZTUVORABCQVNFAFRSVU5DQVRFAFJFTABJTlBVVF9TQ1JJUFQASU5QVVRfTVJJX1NDUklQVABJTlBVVF9ERUZTWU0AQ0FTRQBFWFRFUk4AVkVSU19UQUcAVkVSU19JREVOVElGSUVSAEdMT0JBTABMT0NBTABWRVJTSU9OSwBJTlBVVF9WRVJTSU9OX1NDUklQVABLRUVQAE9OTFlfSUZfUk8AT05MWV9JRl9SVwBTUEVDSUFMAElOUFVUX1NFQ1RJT05fRkxBR1MAQUxJR05fV0lUSF9JTlBVVABFWENMVURFX0ZJTEUAQ09OU1RBTlQASU5QVVRfRFlOQU1JQ19MSVNUACcsJwAnOycAJyknACdbJwAnXScAJyEnACd+JwAkYWNjZXB0AGZpbGVuYW1lAGRlZnN5bV9leHByACRAMQBtcmlfc2NyaXB0X2ZpbGUAJEAyAG1yaV9zY3JpcHRfbGluZXMAbXJpX3NjcmlwdF9jb21tYW5kACRAMwBvcmRlcm5hbWVsaXN0AG1yaV9sb2FkX25hbWVfbGlzdABtcmlfYWJzX25hbWVfbGlzdABjYXNlc3ltbGlzdABleHRlcm5fbmFtZV9saXN0ACRANABleHRlcm5fbmFtZV9saXN0X2JvZHkAJEA1AGlmaWxlX2xpc3QAaWZpbGVfcDEAJEA2ACRANwBpbnB1dF9saXN0ACRAOABpbnB1dF9saXN0MQBAOQBAMTAAQDExAHNlY19vcl9ncm91cF9wMQBzdGF0ZW1lbnRfYW55d2hlcmUAJEAxMgB3aWxkY2FyZF9uYW1lAHdpbGRjYXJkX3NwZWMAc2VjdF9mbGFnX2xpc3QAc2VjdF9mbGFncwBleGNsdWRlX25hbWVfbGlzdABmaWxlX05BTUVfbGlzdABpbnB1dF9zZWN0aW9uX3NwZWNfbm9fa2VlcABpbnB1dF9zZWN0aW9uX3NwZWMAJEAxMwBzdGF0ZW1lbnQAJEAxNAAkQDE1AHN0YXRlbWVudF9saXN0AHN0YXRlbWVudF9saXN0X29wdABsZW5ndGgAZmlsbF9leHAAZmlsbF9vcHQAYXNzaWduX29wAGFzc2lnbm1lbnQAb3B0X2NvbW1hAG1lbW9yeV9zcGVjX2xpc3Rfb3B0AG1lbW9yeV9zcGVjX2xpc3QAbWVtb3J5X3NwZWMAJEAxNgAkQDE3AG9yaWdpbl9zcGVjAGxlbmd0aF9zcGVjAGF0dHJpYnV0ZXNfb3B0AGF0dHJpYnV0ZXNfbGlzdABhdHRyaWJ1dGVzX3N0cmluZwBzdGFydHVwAGhpZ2hfbGV2ZWxfbGlicmFyeQBoaWdoX2xldmVsX2xpYnJhcnlfTkFNRV9saXN0AGxvd19sZXZlbF9saWJyYXJ5AGxvd19sZXZlbF9saWJyYXJ5X05BTUVfbGlzdABmbG9hdGluZ19wb2ludF9zdXBwb3J0AG5vY3Jvc3NyZWZfbGlzdABtdXN0YmVfZXhwACRAMTgAbWVtc3BlY19hdF9vcHQAb3B0X2F0AG9wdF9hbGlnbgBvcHRfYWxpZ25fd2l0aF9pbnB1dABvcHRfc3ViYWxpZ24Ac2VjdF9jb25zdHJhaW50ACRAMTkAJEAyMAAkQDIxACRAMjIAJEAyMwAkQDI0ACRAMjUAJEAyNgAkQDI3ACRAMjgAJEAyOQAkQDMwACRAMzEAYXR5cGUAb3B0X2V4cF93aXRoX3R5cGUAb3B0X2V4cF93aXRob3V0X3R5cGUAb3B0X25vY3Jvc3NyZWZzAG1lbXNwZWNfb3B0AHBoZHJfb3B0AG92ZXJsYXlfc2VjdGlvbgAkQDMyACRAMzMAJEAzNABwaGRycwBwaGRyX2xpc3QAcGhkcgAkQDM1ACRAMzYAcGhkcl90eXBlAHBoZHJfcXVhbGlmaWVycwBwaGRyX3ZhbABkeW5hbWljX2xpc3RfZmlsZQAkQDM3AGR5bmFtaWNfbGlzdF9ub2RlcwBkeW5hbWljX2xpc3Rfbm9kZQBkeW5hbWljX2xpc3RfdGFnAHZlcnNpb25fc2NyaXB0X2ZpbGUAJEAzOAAkQDM5AHZlcnNfbm9kZXMAdmVyc19ub2RlAHZlcmRlcAB2ZXJzX3RhZwB2ZXJzX2RlZm5zAEA0MABANDEAb3B0X3NlbWljb2xvbgAAAAAlUDolczogZmlsZSBmb3JtYXQgbm90IHJlY29nbml6ZWQ7IHRyZWF0aW5nIGFzIGxpbmtlciBzY3JpcHQKAAAAUmVkdWNpbmcgc3RhY2sgYnkgcnVsZSAl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owCjAKMAowCkAKMAowCjAKUApQClAKYApgCnAKcAqACoAKgAqgCpAKsAqwCrAK0ArACuAK4ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCwAK8ArwCxAK8ArwCvAK8ArwCvAK8ArwCzALIAtAC0ALQAtAC0ALQAtQC0ALYAtAC3ALQAuAC5ALkAuQC6ALoAuwC6ALwAvAC8AL0AvQC9AL0AvQC9AL0AvQC9AL0AvQC+AL4AvwDAAMAAwQDBAMIAwgDCAMIAwgDCAMMAxADDAMUAxQDFAMUAxQDFAMUAxQDGAMUAxwDFAMgAyADJAMkAygDKAMoAygDKAMsAzADMAM0AzQDNAM0AzQDNAM0AzQDOAM4AzwDPAM8AzwDPANAA0ADRANIA0gDTANMA1QDUANYA1ADXANgA2QDZANoA2gDbANsA3ADdAN0A3gDeAN8A4ADgAOEA4QDiAOIA4gDkAOMA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5gDmAOcA5wDoAOgA6QDpAOoA6gDrAOsA6wDrAO0A7gDvAPAA8QDsAPIA8wD0APUA9gDsAPcA+ADsAPkA7AD6APoA+gD6APoA+wD7APsA/AD8APwA/AD9AP0A/gD+AP8A/wAAAQABAQECAQMBBAEBAQUBBgEGAQgBCQEHAQoBCwELAQsBDAEMAQ4BDQEPAQ8BEAERARMBEgEVARQBFgEWARcBFwEXARgBGAEZARkBGQEZARkBGgEaARoBGgEbARoBHAEaARoBGgEaARoBGgEaAR0BHQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/AIAAgQCKAJMAnACsAK0AoAChAJ4AnwASARMBDQEOAQAArgCiAAQAOgCFABYBFwE6AA8BEAEEAC4ALwAwAD0APgA/AEAAQgBDAEQARQBMAE0ATgBPAFcAWABZAFoAWwBcAF0AYgBjAGQAaQBqAGsAdgCDAJUArwC4ALoAzwDRANwA3QDfAOEABQEUARUBBAAmAEIAZgBtAG4AbwBwAHEAcwB0AHUAeAB5AHsAfAB9AIIAgwCEAKMACgAEAIMAhgCHAIgAGQEaAToAFwGHAIgAEQEaARABBgAHAAgACQAKAAsADAANAA4AzQA6ADoAMQAyACUAJQAEAJ0AOgAlACUAJQAlACUAJQAlACUAJQAlACUAJQCwACUAJQAlACUAuwAlAJQAlQDOAIkABACdAAQAAwAEAB4AHwAlACYAJwAzADQANQA8AEEASwBQAFEAUgBTAFQAVQBWAF4AYABwAHYAdwCSAJkAmgDlAAQABACnAAQApgClAAQABAAEAOUABAADAAQAqACpAKoABAByAOUABAAQABAAOwCVABkBOwCVAOMA5ADjALkABgEEAAQABAAEALEABABCANIA0wDUAAQABAAEAJ0AnQAEAJ0AlgCdAN4A4AAEAOIA4gCyALMAJQCdAAQABAAEACUAqQA6AAoAlACkAAoAlADlAOUA5QAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUA5QDlAA8AEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAlAAKAJQA5QCUAJQABACUAAoAlADlAJQAlAAEAKsAOgAaARoBlQAEAIMAhgCHAIgAOwCVAOUABAA7AEIASgBjALoA7AAEADsABwGUAJYAlgCuANUAnQA7AJQA0ACUAJYAlgCWAJYAlgCWAJYA0ACWANAAlADiAJYAlgCWAAQABQBsALQAsgCWAAoACgAKAOUAlgAWAeUA5QCiAOUA5QCWAOUA5QDlAOUA5QAEAAQA5QAEAAQABAAEAOUA5QAEAAQA5QDlAOUABADlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAOUA5QDlAAQABAAEAOUA5QADAAQABAAEAJQAHAGVAJUABACFAJUAGAHtAJ0A8gD3AAgBBAAkACUA2QDWANQABACdAJ0A4gAlAAQABQBsAJQAlgDjAOMA4wCUADsAJACUAJYAlgCUAJQAlgCUAJYAlgCWAJYAlgCWAJQAlACWAJYAlgCUAJYAlgAQAAQAGgGIADoAhQCVACUAKADlAPsA/AD5ABAA5QD9APwA5QAKAZQABACZANoA2wAQANIAlgC1ACUABAAFAGwAlgCWAJYABADlAOUA5QDlAOUA5QAEAOUAlQAdARAAGwFGAEcASABJAEoAlgD6ACUAJQD7ABAAZwDnALkAEABcAP4A+AAEAGcA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5QJeAOcC6AKWADsAcACWAB4AHwAQACUAdgB3APMCJQAmACcAKAAmACUAOgAlAJYA0AIKAJQAAAOVADMANAA1ACUAkABoAJUAYAAlADwAOwCSAAoAlABBABEDJQAQAJkAmgA6ADoAJQAQAEsAJQAlACUAJQBQAFEAUgBTAFQAVQBWAAMABAAZADsAJQAlACUAXgAEAGAAJQAlACUAEAAYABkAGgAbABwAHQAeAB8AIAAhACIAcAAlAB4AHwAlADoAdgB3ACUAJQAmACcAJQAEAGcAJQCWACUAJQAlAJYAJQA7ADMANAA1AJYAlgCWAJYAlgAZADwAJACSAJYAlgBBAAQABAAEAJkAmgAEAJYA+gCWAEsAlgDlAtoAkQBQAFEAUgBTAFQAVQBWAAMABADRApYAlgCWAJYAXgCWAGAAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAcACWAB4AHwCWAKQCdgB3APAAJQAmACcAVgEMAyQCvQFXAtwCGgD6AfcA+QJlADMANAA1ALcB//89Av///////zwA//+SAP////9BAP///////5kAmgD//////////0sABAD///////9QAFEAUgBTAFQAVQBWAA8A////////////////XgD//2AA//////////////////8gAP//////////////////cAApACoAKwAsAC0AdgB3AP///////////////zYANwA4ADkA/////////////////////0IA//////////////////+SAP///////////////5kAmgD///////////////////////////////9fAP//YQAEAP////9lAP///////2kAagBrAP//////////////////////////dgAPAP//EQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAiwAuAC8AMACPAP//kQD///////+VAP//lwD///////89AD4APwBAAP//QgBDAEQARQAEAP////////////9MAE0ATgBPAP//////////////////VwBYAFkAWgBbAFwAXQD//////////2IAYwBkAP//JAD/////aQBqAGsA//////////8uAC8AMAD///////92AP////////////////////89AD4APwBAAIMAQgBDAEQARQD//4kA//////////9MAE0ATgBPAP///////5UA////////VwBYAFkAWgBbAFwAXQCWAP///////2IAYwBkAP//////////aQBqAGsA//////////////////////////92AP///////////////////////////////4MAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJUAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwD//xEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8A//8RABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAP//EQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwD//xEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8A//8RABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAJQADwCWABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlgARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJYAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCWABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlgARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJYAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlgARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJYAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCWABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlgARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJYAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCWABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAP////////////////////////////////////8PAJYAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCWABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlgARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJYAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIADwCWABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlgARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgD///////////////////////////////////////+WAP//////////////////////////////////////////DwCUABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAA8AlAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPAJQAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIA//+UAP//////////////////BAD/////////////////////////////lAD/////////////////////////////BAD/////////////////////DwAmABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAP////8lACQA//8mAP///////0IADwCUABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAP//lAD//0IABAD///////8EAP///////////////2YA/////////////5QAbQBuAG8AcABxAHIAcwB0AHUA/////3gAeQD//3sAfAB9AGYA////////ggCDAIQAbQBuAG8AcABxAP//cwB0AHUA/////3gAeQA7AHsAfAB9ADsA/////0IAggCDAIQAQgD///////9KAP///////0oATwD///////9PAP///////////////////////////////////////2MA////////YwD//2kAagBrAP//aQBqAGsA////////////////dgD///////92AA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtQDRAFYBZgA+APgB0wCXAGoA7QC/APgBtAJfAWEBHQK/AsgA7wIvAcQBxQEhAokCxAHFAbQC6wC0AokCJgIwAnwAxAHFARUARP+JAksBiQKKAoUC3gJnAWgBqwGKArkCAQICAlwCxAHFARQAigLsAooC2wCJAkT/pwL4APsA4wDkABEA5gDoALUCkQKSApMCDAPxALQCigLDAsQCDQP9AP4ATwJVAVUBfACJAtcC9wJ3Ak4BtAJPAacCTAG0AvEChgK1ApECkgKTAokCigIUARUBiQIsAWMBWgJeABYAVQFjAl4BMwFeABkAZgKKAtwApwI8AYoCxQLGAWUAFQDNAcYBJwImAScBKAGnAkMBXQAkA8YBeAB5ALUCkQKSApMCwwLEAjwBaQFVAagBqQErAgMCUwH5AcYBegCaAvMCmwL5AXYAgwIwAccBnQJOAsYCxwFwAWICYgFzAXQBEQN2AXcBxwHnAHACeQF6AXsBfAF9ATkBOgGAAZsCrAGSAJMAhQGGAboCxwGJAYoBiwH5APwAFgCNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAfICdwDCAbEB6QGmAacBmwJ7AJkAmgDGAl8AfgC0AmAAYQBiAF8AsgHqAWAAZwBoAD0BiQJ/AD4BPwFAAckBygHLASADIQO1AZsAnADZAlUB2gJgAYoCnQCeAJ8AegJ7AnwCPQEVAxYDPgE/AecBgACBAKAAoQCiAMABHALBAWUCyALJAqMAVQFVAfYCCAOkAIIA+AKDAIQAFAIVAhYCFwIYAqUAtgKFAIYAuwKmAKcAqACpAKoAqwCsABQCFQIWAhcCGAKHAD4ArQCIAK4AJAElASYBJwEoAYkAtgKVALYCigCMAE0CjQCOAI8ArwCRAJYAxwCYALYAsACxAGYAbABtAG4AbwBwAHEAcgBzAHQA7QG3APIB7QH1AfUCuQC8ALYCIgEjASQBJQEmAScBKAGyAL0AvgDAABkCRAGM/7MAtADBAMoACAKZAJoACQIKAsIACwLGACoByQAZAswAywAMAg0CzQDPANAA1gDXANgADwIBAAIAAwDmAUQC2QCbAJwA4ADhAOIABADlAJ0AngCfAOsA8ADyAPMABQD0APUAAAEBAfcAAgGgAKEAogAtAS4BAwEEAUYBBQGjAAYBNgEHAQgBpABHAUEBCQE7AQoBKwALATQBDAGlADUBDQE/Ag4BpgCnAKgAqQCqAKsArAAPARABEQESAUgBXwITAa0AQgGuADYANwA4AGwAbQBuAG8AcABxAHIAcwB0AG0BOQBQAa8AOAFXAVgBVAJZAbAAsQBUAVoBWwJbAV0CXAFdAXgCPAI9AmQBZQGZAJoAZgFuAWgCbAFvATEBfgF/AYEBcQGCAYMBsgCEASsBhwGIAYwBowGzALQApAGlAXUCqgGbAJwArgGwAa8BeQK5AZ0AngCfALsBvwHDAeUByAHoAfwBxwLKAssCzAKgAKEAogAHAtYB1AIAAg4CIgOjABIC1QH3ARsCpADYAdkB2gHbAd4BJwMoAx4CEAKlAB8C3QLfAa4CpgCnAKgAqQCqAKsArACZAJoA4wH0AscC/gEEAq0ABQKuAAYCIwIpAioCLwIzAv4C/wIyAtQCLQIBAwIDOgI7Aq8APgKbAJwAQAJBArAAsQAHA+sBngCfAOwBQgJHAkYCSQJLAu4CTAJVAfQCUQKgAKEAogBVAlYCWAJeAmACagKjAGQCsgBvAjIBpAAcA3ECcgKzALQAdgKBAhwChwKlAKoCqwKsAq0CpgCnAKgAqQCqAKsArACZAJoAwQK9Aq8CsQKyAq0A0gKuALMCuAK+AvEBHgEfASABIQEiASMBJAElASYBJwEoAa8A0AKbAJwA1gLAArAAsQCM/50AngCfANsC3wLgAuIC5ALjAuUC5wLmAugC+wKgAKEAogDpAuoC6wLtAvoC/AKjAAMDsgB3/wUDpAAGAwsDFAOzALQAGAMPA3UBEAOlABIDAANRAfYApgCnAKgAqQCqAKsArACZAJoA8AITAxoDGwMdA60AHgOuABoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoAa8AHwObAJwAIwO8ArAAsQBrAZ0AngCfAL4BFwNFAv0BaQL5AmsALAJyAQkDzgCgAKEAogD0AQAAUgIAAAAAAACjAAAAsgAAAAAApAAAAAAAAACzALQAAAAAAAAAAAClAIgCAAAAAAAApgCnAKgAqQCqAKsArACJAgAAAAAAAAAAAAAAAK0AAACuAAAAAAAAAAAAAAAAAAAAigIAAAAAAAAAAAAAAAAAAK8AiwKMAo0CjgKPArAAsQAAAAAAAAAAAAAAAACQApECkgKTAgAAAAAAAAAAAAAAAAAAAACUAgAAAAAAAAAAAAAAAAAAsgAAAAAAAAAAAAAAAACzALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlQIAAJYCHAAAAAAAlwIAAAAAAAA2ADcAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgCFgEAABcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoAZkCHQAeAB8AmgIAAJsCAAAAAAAAnAIAAJ0CAAAAAAAAIAAhACIAIwAAACQAJQAmACcAHAAAAAAAAAAAAAAAKAApACoAKwAAAAAAAAAAAAAAAAAAACwALQAuAC8AMAAxADIAAAAAAAAAAAAzADQANQAAALoBAAAAADYANwA4AAAAAAAAAAAAHQAeAB8AAAAAAAAAOQAAAAAAAAAAAAAAAAAAAAAAIAAhACIAIwA6ACQAJQAmACcAAACp/gAAAAAAAAAAKAApACoAKwAAAAAAAAA7AAAAAAAAACwALQAuAC8AMAAxADIAeAEAAAAAAAAzADQANQAAAAAAAAAAADYANwA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ABkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBFgE7ABcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARYBAAAXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWAQAAFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBFgEAABcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARYBAAAXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWAQAAFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAHPARYB0AEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWAdEBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBFgHUARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARYB1wEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWAeABFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBFgHiARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWATQCFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBFgE1AhcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARYBNgIXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWATcCFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBFgE4AhcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARYBOQIXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFgFTAhcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARYBZwIXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWAW0CFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBFgFuAhcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoARYBcwIXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWAX4CFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYBKQEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEWAcwB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dQJ+AoICiwKPApcCmQKYAp8CoAKkAqUCqgKvArACtQK5ArkCvQK8AsMCxALHAskCzQLPAtEC0wLVAtoC4QLjAucC6QLrAu0C7wLxAvMC9QL6AvoC/wIDAwsDDwMTAxsDGwMfAyIDIgMlAyYDKwMqAzADLwM2Az4DRgNHA0sDTANQA1IDVwNcA10DYgNkA2oDbANuA3IDdAN6A30DhgORA5EDlwOZA5sDnQOfA6EDpAOmA6gDqgOsA64DsAOyA7QDtgO4A7oDvAO+A8ADwgPEA8YDyAPKA8wDzgPRA9MD1QPXA9kD2wPdA98D4QPjA+UD5wPwA/ID9AP2A/gD+gP8A/4DBAQFBAkECgQOBA8EEwQUBBgEGQQdBB4EHwQgBCMEKAQrBDEEMwQjBDoEPAQ+BEMERQQ5BE8EUQRPBFcEVgRdBF4EXwRgBGEEZQRmBGcEawRsBHEEcgR3BHgEfQR+BIMEhQSKBI0EmgSeBKMEpQScBK0EsASyBLYEtwS2BMAE7QTwBP0EBgUJBRAFEAUcBR0FIQUlBS4FLgU8BTwFRgVHBUsFTwVTBVoFXgVmBWkFbQVxBXUFfAWABYQFiAWNBYwFmgWZBaMFpwWrBa8FswW3Bb0FvwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICmQICAiIVAiWWIB6UHwIhAgICAgICAgICAhCVGAoZDwICAgICAgICAgICAgICAgICAgICAgICAgICApcCmBQCAgICAgICAgICAgICAgICAgICAgICAgICAgICOhM7mgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgECAwQFBgcICQsMDQ4REhYXGhscHSMkJicoKSorLC0uLzAxMjM0NTY3ODk8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTAAAAAAAlRiVzOiBmaWxlIG5vdCByZWNvZ25pemVkOiAlRQoAACVQOiVTOiBpZ25vcmluZyBpbnZhbGlkIGNoYXJhY3RlciBgJXMnJXMKAAAAAAAAAG91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eWVuc3VyZV9idWZmZXJfc3RhY2soKQAAAAAAAAAAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2NyZWF0ZV9idWZmZXIoKQAAAAAAZmF0YWwgZmxleCBzY2FubmVyIGludGVybmFsIGVycm9yLS1lbmQgb2YgYnVmZmVyIG1pc3NlZABmYXRhbCBlcnJvciAtIHNjYW5uZXIgaW5wdXQgYnVmZmVyIG92ZXJmbG93AAAAAAAlRiVQOiByZWFkIGluIGZsZXggc2Nhbm5lciBmYWlsZWQKAAAAAAAAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X2dldF9uZXh0X2J1ZmZlcigpAAAAL3Zhci90bXAvcG9ydGFnZS9jcm9zcy1hYXJjaDY0LWNyb3MtbGludXgtZ251L2JpbnV0aWxzLTIuMjcuMC1yMjYvd29yay9iaW51dGlscy0yLjI3LjAvYmludXRpbHMtMi4yNy9sZC9sZGxleC5sAGZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJvci0tbm8gYWN0aW9uIGZvdW5kAAAAAAAAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X3NjYW5fYnVmZmVyKCkAAAAAAAAAb3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X3NjYW5fYnl0ZXMoKQAAAAAAAAAAJUY6aW5jbHVkZXMgbmVzdGVkIHRvbyBkZWVwbHkKAFwlMDNvACVGJVA6IEVPRiBpbiBjb21tZW50CgAgaW4gc2NyaXB0ACBpbiBleHByZXNzaW9uAGJhZCBidWZmZXIgaW4geXlfc2Nhbl9ieXRlcygpACVGOiBtYWNyb3MgbmVzdGVkIHRvbyBkZWVwbHkKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPSYQAAAAAAAuZhAAAAAAACymEAAAAAAAKaYQAAAAAAAx5hAAAAAAADAmEAAAAAAAHeaQAAAAAAAbZpAAAAAAAAMmkAAAAAAAHOcQAAAAAAAm5xAAAAAAABfnEAA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AwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABQAFAAUABQAFAAUAZAAFAAUABQAFAAUABQAFAAUAHgAFAAUABQAFAAUABQAFAAUABQAFAAUAJgArACsAHgAPAA8AEAAQAA8AXgAQADoAJgAtAC0AOgAvACEDLwAPAC8AEAB6AGQAXgAFAC8ABQAFADEAegAyADEALwAvADIAMwDSADYANAAwADYANABKADAANAAzADAAIgMyANIABQAFAAUABgAGAAYABgAGAAYAMAAGAAYABgAGAAYABgAGAAYAaAAGAAYABgAGAAYABgAGAAYABgAGAAYADwA7ABAAOQA5ADwAPQB5AGYAPAAjAzsAPAA8ADkAaAA9AHkASgBAAGYAjwBAAEAAjwAGACQDBgAGAEAAQABAAGsAawBAAEAAbQBtAHsAQACRAHwAzgCUACYDfACUAM4AewB8AJEABgAGAAYABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAIQAiAALAAsACwALAAsACwALAAsACwAoACgAKACJAcEAcACKAHAAJwN+AMEAiQFwAH4AcQBwAHEAtgCKACgAfgAoAHAAcABxAH4ACwBxAAsACwCSAHEAcQCSAIgAmACSAJcAlwCYAJkAWgHeAJgAtgCEAN8AWgGXACgAmQAoAAsACwALAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAOAA1QEMAAwADAAMAAwADAAMAAwADAByAHIAkAByAHIAcwCQAHMArgL8AMUAcgDfACgDdABzAHQA3gByAHIAkAD8AHMAcwB0AMUADABzAAwADACbAHQAdACNAJoAjQC+AI0AmgDgAJsAmgCaAI0A1QECAb4AAgEpA64CjQCNAAwADAAMAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AEQARABEAEQARABEAXgERABEAEQARABEAEQARABEAXgERABEAEQARABEAEQARABEAEQARAIEAjgCBALwAvACOAMoACAGOABMBgQAqA70AvQC8ACwDygCBAIEAvQBLAY4AEwG9AAgBvwARABEAEQARAJ4AgQBLAZ4AngC/AMoAvwDAAC0DngCeAJ4ALgM/AZ4AngC/AMAA1gGeAMAAEQARABEAEQASABIAEgASABIAEgAwAxIAEgASABIAEgASABIAEgA/ARIAEgASABIAEgASABIAEgASABIAJwAnACcAyQDNAMsA6AAPAegAUAEPAVABDwHJAM0AywBpAdYBaQEnAA8BJwAXAQ8BjwIXARIAEgASABIAjwIXAScAsALJAMsA6ABXAegAIAFXASABywDJADEDIAFpAc0AaQEnAFcBJwASABIAEgASABMAEwATACcAEwATADIDEwATABMAEwDXARMAEwCwAswAEwATABMAEwATABMAEwATABMAzACLAIsAiwB9AXEBRgEzA0YBRwF3AUcBdwEhAjUDIQJGAXEBNwNHAYsAfQGLAEYBRgHXAUcBRwGIAZYBrwKWAcwAiwCIAZYBEwCNARMAzACNAYgBEwAhAjgDIQKNATkDOgM7A4sAPAOLABMAEwATABMAFAAUABQAiwAUABQAPQMUABQAFAAUAK8CFAAUAD4DPwMUABQAFAAUABQAFAAUABQAFACMAIwAjABBA58CQgNDA0gBRANIAZ8C8ADwAPAAQAFAAUABSAFFA4wARgOMAEcDSANIAUgBSQNNAUoDTQHwAEsD8ABAAUwDQAEUAE0BFABNA04DTwMUAFADTQFNAUABUQNSA4wAUwOMAFcDFAAUABQAFAAcABwAHADwAFgD8ABAAVwDQAEcABwAHAAcABwAHABRAUABUQFSAV0DUgFnAVIBZwFfA1EBYANhA1IBYgNjA2cBUQFRAWcDUgFSAWgDZwFnARwAHAAcABwAHAAcAFwAXABcAGsBawFrAWwDbQNvA1wAXABcAFwAXABcAIQBcAMjAoQBIwKEAWcBawFxA2sBcwNyAyMChAF0A3cDhAF4AyMCIwIjAnkDdgN8A30DXABcAFwAXABcAFwAZwBnAGcAfgOBA3sDawF2A2sBZwBnAGcAZwBnAGcAggNnAHIDLAJnACwCZwB7A2cAhAMsAnMDhgMsAnEDhwOIA2cAiQOKAywCLAKLA4wDjQNnAGcAZwBnAGcAZwCOA2cAjwNnAJADZwCRA2cAkgOTA5QDlQOXA2cAbwBvAG8AmAOZA5oDmwOdA58DbwBvAG8AbwBvAG8AoQNvAJ4DogOjA28ApAOlA28ApgOnA6gDbwBvAJ4DqQOrA28AqgOsA64DrwOwA7IDtANvAG8AbwBvAG8AbwC1A28AtgOqA7cDuAO5A28AugO7A7wDvQO+A28AhwCHAIcAvwPAA8EDwgPDA8QDhwCHAIcAhwCHAIcAxQPGA8gDyQPKA8wDzQPOA88D0gPTA9UD1wPYA9kD2gPbA9wDyAPdA94D3wPMA+AD4QOHAIcAhwCHAIcAhwCmAKYApgDiA+MD5APlA+YD5wOmAKYApgCmAKYApgDpA+oD6wPsA+0D7wPwA/ED8wP0A/UD9gP3A/gD+QP6A/wD/QPwA/4DAgQEBAUEBwQIBKYApgCmAKYApgCmAK4ArgCuAAkEDQQPBBEEEgQTBK4ArgCuAK4ArgCuABAEFAQVBBcEGQQaBBsEHAQdBB4EIAQiBCMEJAQmBCgEKgQrBC0ELwQwBDEEMgQzBDQErgCuAK4ArgCuAK4AuwC7ALsANQQ2BDcEOAQRBDkEuwC7ALsAuwC7ALsAOgS7ADsEEAQ+BLsAPwRABLsAQQRCBEMERARGBEcESARJBLsASgRMBE0ETwRQBFEEUwS7ALsAuwC7ALsAuwBVBLsAVgRXBFgEWQRaBLsAWwRcBF0EXgRfBLsAOQE5ATkBYgRjBGQEZQRmBGcEOQE5ATkBOQE5ATkBaQRrBGwEbQQ5AW8EOQFxBHIEdAR1BHcEeQR6BHsEfAR9BH4EfwSABIEEggSDBIQEhQQ5ATkBOQE5ATkBOQGIBIkEigQ5AYsEOQGmAaYBpgGMBJAEkQSSBJYElwSmAaYBpgGmAaYBpgGYBJkEmwScBKYBnQSmAZ4EnwSgBKIEowSlBKYEpwSoBKkEqwSsBK4ErwSwBLEErASyBKYBpgGmAaYBpgGmAbMEtAS1BKYBuASmAaoBqgGqAboEuwS8BL0EvwTABKoBqgGqAaoBqgGqAcEEwgTEBMYEqgHHBKoByATJBMoEzATNBM4E0ATRBNIE0wTVBNYE1wTYBNkE2wTcBN4EqgGqAaoBqgGqAaoB3wTgBOEEqgHiBKoBrgGuAa4B4wTlBOgE6QTqBOsErgGuAa4BrgGuAa4B5gSuAewE7QTuBOYE7wTyBK4B9AT1BPYE9wT4BPkE+gT7BK4B/QT+BAAFAQUCBQMFBAWuAa4BrgGuAa4BrgEFBa4BBgUHBQkFCgULBa4BDAUNBQ4FDwURBa4BWQNZAxIFWQNZA1kDEwVZA1kDWQNZA1kDFAVZAxMFFwUYBRoFGwUTBR0FWQNZA1kDWQNZAx4FHwUiBSMFJAUlBSYFKQUrBS0FLgUvBTAFMQUyBTMFNAU3BTgFOQU6BTsFPAU9BT8FQAVBBUIFRQVZA0wFTgVPBVAFQQVRBVIFUwVUBUEFVQVWBVcFWAVZBVoFWwVcBV0FXgVXBV8FWQNZA1kDaQNpA2AFaQNpA2kDYQVpA2kDaQNpA2kDYwVpA2UFZwVoBWkFagVrBWwFaQNpA2kDaQNpA20FawVuBW8FcAVxBXIFcwV0BXUFdgV3BXgFeQV6BXsFfAV9BX4FfwWABYEFegWCBYMFhAWGBYcFiAVpA4kFigWLBYwFjQWOBZAFkwWUBZUFlgWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFaQNpA2kDAAQABKUFAAQABAAEpgUABAAEAAQABAAEpwUABKgFqQWqBasFrAWtBa4FAAQABAAEAAQABK8FsAWyBbUFtgW3BbgFugW7BbwFvQW+Bb8FwAXBBcIFwwXEBcUFxgXHBcgFygXLBcwFzQXOBc8F0AUABNEF0gXTBdQF1QXWBdcF2AXZBdoF2wXcBd0F3gXfBeAF4QXiBeMF5AXmBecFAAQABAAECwQLBOgFCwQLBAsE6QULBAsECwQLBAsE6gULBOsF7AXtBe4F7wXxBfIFCwQLBAsECwQLBPQF9QX2BfcF+AX5BfsF/AX9Bf4FAAYBBgIGBAYFBgYGBwYIBgkGCgYMBg0GDwYQBhEGEgYTBhQGFgYLBBcGGAYZBhsGHAYdBh8GIAYeBiEGIgYkBh4GJgYnBigGKQYqBiwGLQYuBjAGCwQLBAsEHgYrBjEGMgYzBisGNAY1BjYGNwY0BjgGOgY8Bj0GPgY/BkAGKwZBBkIGQwZEBjQGRQZGBkcGSwZMBk4GTwZQBlEGUgZXBlgGWQZaBlsGXAZdBl4GYgZjBmUGZgZnBmgGaQZqBmsGbAZtBm4GbwZwBnEGcgZzBnQGdQZ2BncGeAZ5BnoGewZ8Bn0GfwaABoIGgwaEBoUGhgaHBokGiwaMBo4GjwaRBpIGkwaUBpUGlgaXBpgGmQaaBpsGnAaeBp8GoAahBqIGowakBqUGpganBqkGqgasBq0GrgavBrAGsgazBrQGtga3BrgGuQa6BrsGvAa9Br4GwAbBBsMGxAbFBsYGyAbJBsoGywbMBs0GzgbPBtAG0QbSBtMG1QbWBtcG2QbbBtwG3QbgBuEG5AblBucG6QbqBusG7wbvBu8G7wbvBu8G7wbvBu8G7wbvBvAG8AbwBvAG8AbwBvAG8AbwBvAG8AbxBvEG8QbxBvEG8QbxBvEG8QbxBvEG8gbyBvIG8gbyBvIG8gbyBvIG8gbyBvMG8wbzBvMG8wbzBvMG8wbzBvMG8wb0BvQG9Ab0BvQG9Ab0BvQG9Ab0BvQG9Qb1BvUG9Qb1BvUG9Qb1BvUG9gb2BvYG9gb2BvYG9gb2BvYG9gb2BvcG9wb3BvcG9wb3BvcG9wb4BiADHwMeA/gG+AYcA/gG+Qb5BhoD+Qb5BvkG+Qb5BvoGGAMXAxYD+gb6BvoG+gb7BvsG+wb7BvsG+wb7BvsG+wb7BvsG/Ab8BhUD/Ab8BvwG/Ab8Bv0GEwP9Bv0G/Qb9Bv0G/Qb9Bv0G/Qb+BhID/gb+Bv4G/gb+Bv4G/gb+Bv4G/wYRA/8G/wb/Bv8G/wb/Bv8G/wb/BgAHEAMABwAHAQcBBw8DDgMBBwEHDQMBBwEHAgcCBwIHAgcCBwIHAgcCBwMHAwcDBwMHAwcDBwMHAwcEBwQHDAMEBwQHBAcEBwQHBQcFBwYHCwMGBwYHBgcGBwYHBgcGBwYHBgcHBwoDBwcHBwcHBwcHBwcHBwcHBwcHCAcJAwgHCAcIBwgHCAcIBwgHCAcIBwkHCAMJBwkHCgcKBwcDBQMKBwoHBAMKBwoHCwcDAwsHCwcLBwsHCwcLBwsHCwcLBwwHAQMMBwwHDAcMBwwHDAcMBwwHDAcNB/8CDQcNBw0HDQcNBw0HDQcNBw0HDgf+Ag4HDgcOBw4HDgcOBw4HDgcOB/0C/AL7AvoC+QL3AvYC9ALzAvIC8ALvAu4C7QLsAusC6gLpAugC5wLmAuUC5ALjAuIC4QLgAt8C3QLcAtsC2gLZAtgC1wLWAtUC0wLRAtACzwLNAswCywLJAsgCxwLGAsUCwwLCAsECwAK/Ar4CvQK7ArkCtwK2ArUCtAKzArECrQKsAqsCqgKpAqgCpwKmAqUCpAKiAqECoAKeAp0CnAKbApoCmQKYApcClgKVApQCkgKRApACjgKLAogChwKGAoUChAKDAoICgQKAAn8CfgJ9AnwCewJ6AnkCeAJ3AnYCdQJ0AnMCcgJxAnACbwJtAmoCaQJoAmcCZgJlAmQCYwJiAmECYAJeAl0CXAJbAloCWQJYAlcCVgJVAlQCUwJSAlECUAJPAk4CTQJMAksCSgJJAkgCRgJFAkQCQwJCAkECQAI/Aj4CPQI8AjsCOgI3AjYCNQI0AjMCMgIxAjACLwIuAi0CKwIqAikCKAInAiYCJQIkAiICHgIbAhgCFwIWAhUCFAITAhICEQIQAg8CDgINAgwCCwIKAgkCCAIHAgYCBQIEAgMCAgIBAgAC/wH+AfwB+wH6AfkB+AH3AfYB9QH0AfMB8QHwAe8B7gHtAewB6wHqAekB6AHnAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB1AHTAdABzwHOAc0BzAHLAcoByQHIAccBxgHFAcQBwwHCAcEBwAG/Ab4BvQG8AbsBugG5AbgBtwG2AbUBtAGzAbIBrwGnAaQBowGiAaEBoAGfAZ4BnQGcAZsBmgGZAZgBlwGVAZQBkwGSAZEBkAGPAY4BjAGLAYoBhwGGAYUBgwGCAYEBgAF/AX4BfAF7AXoBeQF4AXYBdQF0AXMBcAFvAW4BbQFoAWYBZQFkAWMBYgFhAWABXwFdAVwBWwFZAVgBVgFVAVQBUwFPAU4BSgE2ATEBLgEtASwBKwEqASkBKAEnASYBJQEkASMBIgEhAR8BHgEdARwBGwEaARkBGAEWARUBFAESAREBEAEOAQ0BDAELAQoBCQEHAQYBBQEEAQMBAQEAAf8A/gD7APoA+QD4APcA8wDmAOMA3QDXANUA0wDRANAAzwDGAMQAwwDCALkAtACyALAArwCtAKwApACjAKIAoQCgAJ8AnQCcAJYAlQCTAIIAfQB4AHcAdgB1AGwAYgBhAFsAWgBZAFcAVQBUAE8ATQBIAEcARgBFAEIAQQA/AD4AOAA3ADUALAAkACIAIQAbABoAGAAVAO4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gYAAAAAAAAAAAAAFwAYABkAGgAbABcAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ACUAOAA5ADoAOwA8AD0APgA/AEAAQQAlAEIAJQAlACUAJQBDACUARAAlACUARQAlACUAJQAlACUAJQAlACUAJQBGACUAJQBHACUAJQBIACUAJQAlACUASQBKAEsATAAWAE0ATgAWAE8AFgA8ARYAFgBRAFIAFgAWAFMAVADpAFUAFgAWABYAFgAWABYAVgAWABYAVwDuAPMA9ADqANUATgDVAE4A1gDpANYAFAHvAPYA9wAVAfgA0AP5ANcA+gDXAFsBPQHqABYA+wAWABYAAgFcAQQBAwH8AP0ABQEHAc4BDQEJAf4ADgEKAS8B/wALAQgBAAHRAwYBzwEWABYAFgAWAE0ATgAWAE8AFgABARYAFgBRAFIAFgAWAFMAVABCAVUAFgAWABYAFgAWABYAVgAWABYAVwDYABYB2AARARIBGAEcAVkBNAEZAdIDFwEaARsBEwFCAR0BWgEwASABPgF3ASEBIgF4ARYA0wMWABYAIwEkASUB8wD0ACYBJwH2APcAXQEoAXwBXwHJAYIB1ANgAYMBygFeAWEBfQEWABYAFgBYAFkAGQBaAFsAWABcAF0AXgBfAGAAYQBiAGMAZABlAGYAZwBoAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAZQB4AHkAegB7AHwAfQBlAGUAfgBlAGUAZQBlAGUAZQBlAH8AZQCAAFgAZQCBAHQAdAB0AHQAdABlAGUAZQBlAGUAZQBlAGUAZQBlAIIAZQBlAGUAZQCDAIQAhQCGAFgAWQAZAFoAWwBYAIcAXQBeAF8AYABhAGIAYwCIAIkAigCLAIwAjABpAGoAawBsAG0AbgCNAI4AjwCQAJEAkgCTAJQAlQCJAJYAlwCYAJkAmgCbAJwAnQCeAJ8AiQCgAIkAiQCJAIkAfwCJAIAAWACJAKEAiQCJAIkAiQCJAIkAiQCJAIkAogCJAIkAowCJAIkApACJAIkAiQCJAIMAhACFAKUAWABYABYAWABYAFgApgBYAFgAWABYAFgApwBYAKgALwE8AYsAjACMAFgAWABYAKoAWABYAPAA8ADwAGsCuQFNATQBTQHVA2MBugFsAk4BZAFNAU8BTQFCAWoB8QBlAfEAOAE4ATgBZgFYAFABWABYAH4BOAE4AX8BMwGJAYABhgGHAYoBjAE2AtQBiwFCATAB1AE3AogB8QCNAfEAWABYAFgAWABYABYAWABYAFgApgBYAFgAWABYAFgApwBYAKgA1AHUAYsAjACMAFgAWABYAKoAWABYAFEBTQF5AU0BUgFNAXoBTQHUAd4BvgE4AdYB1gNNATgBTQHVAVMBOAF7Ad8BOAE4ATgBvwFYAFQBWABYAJIBOAE4AW0BjgFuAbABbwGPAdcBkwGQAZEBcAGuAuQBqQHlAdcDcQNxAXIBWABYAFgAFwAYAKsArAAXAK0ArgAdAB4AHwAgAK8AsACxALIAswC0ALUAtgC2ALcAuAArALkALQC6ALsAvAC9AL4AvwDAALMAswCzALMAswDBALMAwgDDAMQAswCzAMUAxgCzALMAswCzALMAswDHALMAyAAXALMAyQDKAMsAvgDMAM0AswCzALMAswDOALMAzwDQANEAswDSANMAswCzALMASQBKAEsA1AAXANUATgAXABcA1gA7AhcAFwAXABcAFwAXANoAFwA8AtcAFwAXABcA2gDaABcAFwAXABcATQFzAU0BswGwAXQBsAHrAXUB+wE4AdgDtAGwAakB2QOpATgBOAG1ASUCdgH8AakB7AGwARcAFwAXABcAlgFnASYClwGYAakBwwG2AbAB2gOZAZoBmwHbA0IBnAGdAbcBqQHUAZ4BuAHbABcA3AAXABcA1QBOABcAFwDWANwDFwAXABcAFwAXABcA2gAXAEIB1wAXABcAFwDaANoAFwAXABcAFwDwAPAA8ACwAbABsAHxAPMB8QApAvQBKgL1AakBqQGpAUcCrwJHAvEA9gHxAAAC9wFSAwECFwAXABcAFwBTAwIC8gDUAcEBxAHxADEC8QALAjICDALFAcIB3QMNAkcCyAFHAvEAMwLxANsAFwDcABcAFwDVAE4A8gAbANYA3gMXABcAFwAXANQBFwDaAHMDsAHXABcAFwAXANoA2gAXABcAFwCpAWsBawFrAVgCTAJNAd8DTQFNAVECTQFSAkMB4ANDATgBHgLhAzgBQwFZAkMBOAE4AbACIgI4AWgCewLUAXwCxgFsAWkCfQLeAHAC3wDHAXECagLgAEMB4gNDAXIC4wPkA+UDQwHmA0MB4QAXAOIAFwAXANUATgBsARsA1gDnAxcAFwAXABcAcgMXANoA6APpA9cAFwAXABcA2gDaABcAFwAXAGsBawFrAeoDYgPrA+wDTQHtAyMCYwPwAPAA8ABAAUABQAE4Ae4DQwHvA0MB8APxAzgBOAHyA00B8wNNAfEA9APxAO4G9QPuBt4AOAHfAPYD9wP4A+AA+QM4ATgBQgH6A/sDQwH8A0MB/QPhABcA4gAXAOgA6ADoAPEA/gPxAO4GAQTuBugA6ADoAOgA6ADoAE0BQgFNAU0BAgRNAU0BLAJNAQMEOAEEBAUEOAEGBAcEOAE4ASsCCAQ4ATgBCQQ4ATgB6ADoAOgA6ADoAOgAOQE5ATkBawFrAWsBDAQNBA4EOQE5ATkBOQE5ATkBYAIPBE0BYQJNAWICRQJDAdQBQwHUAdQBOAFjAhMEFgRkAhcE8QI4ATgBGAQUBBsEHAQ5ATkBOQE5ATkBOQE/AT8BPwEdBB4EGQRDARUEQwFAAUEBQAFBAUABQAEfBEIBEQRNAUMBTQFDARoEQgEgBPoCEgQhBDgBEAQiBCMERAEkBCUEOAE4ASYEJwQoBEABQQFAAUEBQAFAASkEQgEqBEMBKwRDASwEQgEtBC4ELwQwBDEERAFGAUYBRgEyBDMENAQ1BDYEOQRGAUcBRgFIAUYBRgE6BEkBNwQ7BDwESgE9BD4ESQE/BEAEQQRLAUwBOARCBEUESQFDBEYERwRIBEkESgRLBEYBTQFGAU0BRgFGAUwESQFNBEQETgRPBFAESQFRBFIEUwRUBFUESQFpAWkBaQFWBFcEWARZBFoEWwRpAWkBaQFpAWkBaQFcBF0EXgRgBGEEYgRkBGUEZgRnBGgEaQRqBGsEbARtBG4EbwRfBHAEcQRyBGMEcwR0BGkBaQFpAWkBaQFpAaYBpgGmAXUEdgR3BHgEeQR6BKYBpgGmAaYBpgGmAXsEfAR9BH4EfwSABIEEgwSEBIUEhgSHBIgEiQSKBIsEjASNBIIEjgSPBJAEkQSSBJMEpgGmAaYBpgGmAaYBqgGqAaoBlASVBJYE1AHUAZkEqgGqAaoBqgGqAaoB1AGaBJsEnASdBJ4EnwSgBKEEogSjBKQEpQSmBKcEqASpBKoEqwSsBK0ErgSvBLAEsQSqAaoBqgGqAaoBqgGuAa4BrgGyBLMEtAS1BJgEtgSuAa8BrgGwAa4BrgG3BLEBuASXBLkEsgG6BLsEsQG8BL0EvgS/BMAEwQTCBMMEsQHEBMUExgTHBMgEyQTKBK4BsAGuAbABrgGuAcsEsQHMBM0EzgTPBNAEsQHRBNIE0wTUBNUEsQE5ATkBOQHWBNcE2ATZBNoE2wQ5ATkBOQE5ATkBOQHcBN0E3gTfBB8C4AQfAuEE4gTjBOQE5QTmBOcE6ATpBOoE6wTsBO0E7gTvBPAE8QTyBDkBOQE5ATkBOQE5AfME9AT1BB8C9gQfAqYBpgGmAfcE+AT5BPoE+wTUAaYBpgGmAaYBpgGmAdQB/AT9BP4EjAL/BIwCAAUBBQIFAwUEBQUFBgUHBQgFCQUKBQsFDQUOBQ8FEAUMBREFpgGmAaYBpgGmAaYBEgUTBRQFjAIVBYwCqgGqAaoBFgUXBRgFGQUaBRsFqgGqAaoBqgGqAaoBHAUdBR4FHwWNAiAFjQIhBSIFIwUkBSUFJgUnBSgFKQUqBSsFLAUtBS4FLwUwBTEFMgWqAaoBqgGqAaoBqgEzBTQFNQWNAjYFjQKuAa4BrgE3BTgFOwU8BT0FPgWuAbABrgGwAa4BrgE5BbEBPwVABUEFOgVCBUMFsQFEBUUFRgVHBUgFSQVKBUsFsQFMBU0FTgVPBVAFUQVSBa4BsAGuAbABrgGuAVMFsQFUBVUFVgVXBVgFsQFZBVoFWwVcBV0FsQH/A/8DXgX/A/8D/wNfBf8D/wP/A/8D/wNiBf8DYAVjBWQFZQVmBWEFZwX/A/8D/wP/A/8DaAVpBWoFawVsBW0FbgVvBXAFcQVyBXMFdAV1BXYFdwV4BXkFegV7BXwFfQV+BX8FgAWBBYIFhQWGBf8DhwWIBYkFigWDBYsFjAWNBY4FhAWPBZAFkQWTBZQFlQWWBZcFmAWZBZIFmgX/A/8D/wMKBAoEmwUKBAoECgScBQoECgQKBAoECgSdBQoEngWfBaAFoQWiBaMFpQUKBAoECgQKBAoEpgWkBacFqAWpBaoFqwWsBa0FrgWvBbAFsQWyBbMFtQW2BbcFuAW5BboFuwW0BbwFvQW+Bb8FwAXBBQoEwgXDBcQFxQXGBccFyAXJBcoFywXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wUKBAoECgT/A/8D2AX/A/8D/wPZBf8D/wP/A/8D/wPaBf8D2wXcBd0F3gXfBeAF4QX/A/8D/wP/A/8D4gXjBeQF5QXmBecF6AXpBeoF6wXsBe0F7gXvBfAF8QXyBfMF9AX1BfYF9wX4BfkF+gX7BfwF/QX+Bf8D/wUABgEGAgYDBgQGBQYGBgcGCAYJBgoGCwYMBg0GDgYPBhAGEQYSBhMGFAb/A/8D/wMKBAoEFQYKBAoECgQWBgoECgQKBAoECgQXBgoEGAYZBhoGGwYcBh0GHgYKBAoECgQKBAoEHwYgBiEGIgYjBiQGJQYmBicGKAYpBioGKwYsBi0GLgYvBjAGMQYyBjMGNAY1BjYGNwY4BjkGOgY7BgoEPAY9Bj4GPwZABkEGRQZGBkIGRwZIBkkGQwZKBksGTAZNBk4GUgZTBlQGVQYKBAoECgREBk8GVgZXBlgGUAZZBlwGXQZeBloGXwZgBmEGYgZjBmQGZQZRBmYGZwZoBmkGWwZqBmsGbAZtBm4GbwZwBnEGcgZzBnQGdQZ2BncGeAZ5BnoGewZ8Bn0GfgZ/BoAGgQaCBoMGhAaFBoYGhwaIBokGigaLBowGjQaOBo8GkAaRBpIGkwaUBpUGlgaXBpgGmQaaBpsGnAadBp4GnwagBqEGogajBqQGpQamBqcGqAapBqoGqwasBq0GrgavBrAGsQayBrMGtAa1BrYGtwa4BrkGuga7BrwGvQa+Br8GwAbBBsIGwwbEBsUGxgbHBsgGyQbKBssGzAbNBs4GzwbQBtEG0gbTBtQG1QbWBtcG2AbZBtoG2wbcBt0G3gbfBuAG4QbiBuMG5AblBuYG5wboBukG6gbrBuwG7QYWABYAFgAWABYAFgAWABYAFgAWABYAUABQAFAAUABQAFAAUABQAFAAUABQAKkAqQCpAKkAqQCpAKkAqQCpAKkAqQAXABcAFwAXABcAFwAXABcAFwAXABcA2QDZANkA2QDZANkA2QDZANkA2QDZAN0A3QDdAN0A3QDdAN0A3QDdAN0A3QDkAOQA5ADkAOQA5ADkAOQA5ADmAOYA5gDmAOYA5gDmAOYA5gDmAOYAMgEyATIBMgEyATIBMgEyATUBzwPOA80DNQE1AcwDNQE4ATgBywM4ATgBOAE4ATgBpQHKA8kDyAOlAaUBpQGlAacBpwGnAacBpwGnAacBpwGnAacBpwGpAakBxwOpAakBqQGpAakBqwHGA6sBqwGrAasBqwGrAasBqwGrAa0BxQOtAa0BrQGtAa0BrQGtAa0BrQHRAcQD0QHRAdEB0QHRAdEB0QHRAdEB0gHDA9IB0gHTAdMBwgPBA9MB0wHAA9MB0wEcAhwCHAIcAhwCHAIcAhwCHQIdAh0CHQIdAh0CHQIdAiACIAK/AyACIAIgAiACIAIhAiECqwG+A6sBqwGrAasBqwGrAasBqwGrAa0BvQOtAa0BrQGtAa0BrQGtAa0BrQHRAbwD0QHRAdEB0QHRAdEB0QHRAdEB0gG7A9IB0gHTAdMBugO5A9MB0wG4A9MB0wEABLcDAAQABAAEAAQABAAEAAQABAAECwS2AwsECwQLBAsECwQLBAsECwQLBP8DtQP/A/8D/wP/A/8D/wP/A/8D/wMKBLQDCgQKBAoECgQKBAoECgQKBAoEswOyA7EDsAOvA64DrQOsA6sDqgOpA6gDpwOmA6UDpAOjA6IDoQOgA58DngOdA5wDmwOaA5kDmAOXA5YDlQOUA5MDkgORA5ADjwOOA40DjAOLA4oDiQOIA4cDhgOFA4QDgwOCA4EDgAN/A34DfQN8A3sDegN5A3gDdwN2A3UDdANwA28DbgNtA2wDawNqA2kDaANnA2YDZQNkA2EDYANfA14DXQNcA1sDWgNZA1gDVwNWA1UDVANRA1ADTwNOA00DTANLA0oDSQNIA0cDRgNFA0QDQwNCA0EDQAM/Az4DPQM8AzsDOgM5AzgDNwM2AzUDNAMzAzIDMQMwAy8DLgMtAywDKwMqAykDKAMnAyYDJQMkAyMDIgMhAyADHwMeAx0DHAMbAxoDGQMYAxcDFgMVAxQDEwMSAxEDEAMPAw4DDQMMAwsDCgMJAwgDBwMGAwUDBAMDAwIDAQMAA/8C/gL9AvwC+wL5AvgC9wL2AvUC9ALzAvIC8ALvAu4C7QLsAusC6gLpAugC5wLmAuUC5ALjAuIC4QLgAt8C3gLdAtwC2wLaAtkC2ALXAtYC1QLUAtMC0gLRAtACzwLOAs0CzALLAsoCyQLIAscCxgLFAsQCwwLCAsECwAK/Ar4CvQK8ArsCugK5ArgCtwK2ArUCtAKzArICsQLTAdQBrQKsAqsCqgKpAqgCpwKmAqUCpAKjAqICoQKgAp8CngKdApwCmwKaApkCmAKXApYClQKUApMCkgKRApACjwKOAqgBiwKKAokCiAKHAoYChQKEAoMCggKBAoACfwJ+AnoCeQJ4AncCdgJ1AnQCcwJvAm4CbQJnAmYCZQJfAl4CXQJcAlsCWgJXAlYCVQJUAlMCUAJPAk4CTQJLAkoCSQJIAkYCRAJDAkICQQJAAj8CPgI9AjoCOQI4AjUCNAIwAi8CLgItAigCJwIkAh4CMQEbAhoCGQIYAhcCFgIVAhQCEwISAhECEAIPAg4CCgIJAggCBwIGAgUCBAIDAv8B/gH9AfoB+QH4AfIB8QHwAe8B7gHtAeoB6QHoAecB5gHjAeIB4QHgAd0B3AHbAdoB2QHYAecA4wDUATQBMQHQAc0BzAHLAcABvQG8AbsBRQE+ATwBOwGsAagBNwGkAaMBogGhAaABnwGVAZQBhQGEAYEBaAFiAVgBVwFWAVUBRQE7AToB5wA3AeMANgE0ATMB5wAxAS4BLQEsASsBKgEpAR8BHgEQAQ8BDAH1AO0A7ADrAOcA5QDjAO4GFQDuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBgAAAAAAAAAAAADvBu8G7gYDAPAG8AbuBgcA7gYJAPEG8QbuBg0A8gbyBvMG8wb0BvQG7gbuBu4G7gbuBvUG9gb1Bu4G7gbuBu4G9Qb1BvUG9Qb1BvUG9Qb1BvUG7gbuBvUG7gb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9QbuBu4G7gb1Bu4G7gb2BvcG7gbuBu4G7gb3BvgG9wbuBu4G7gb2BvkG7gbuBu4G7gbuBu4G7gbuBvkG+QbuBmcA7gbuBu4G7gbuBu4G+QZvAG8AbwBvAG8A+Qb5BvkG+Qb5BvkG+Qb5BvkG+QbuBu4GbwD5Bu4G7gbuBvkG9wbuBvcG9wbuBu4G9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb6Bu4G7gb6Bu4G7gbuBvsG/Ab9Bu4G7gbuBvwG/AZnAGcA7gb+Bu4G7gb8BrsAuwC7ALsAuwD8BvwG/Ab8BvwG/AbuBu4GuwC7ALsAuwC7APwG/Ab8BvwG/Ab8BvwG7gb/Bu4G7gYAB+4G7gbuBgEHAQcBBwEH7gbuBu4G9Qb1BvYG7gYcAO4G7gb1BvUG9Qb1BvUG9Qb1BhwA7gbuBvUG7gbuBvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG7gbuBu4G9wYCB+4GAwf3Bu4G+Qb5Bu4G7gbuBgQH7gZnAGcAQAHuBu4GBQfuBm8AbwBvAPkG+Qb5BvkGbwD5BvkG+QZvAG8A+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5Bm8A+QaHAPcG7gYFB/cG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb6BvoG+wbuBvwG/AYGBwYHBwf8Bq4BrgH8BvwGrgGuAfwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8Bq4B/AauAa4B/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwGCAcJBwoH7gYKBwoHCgfuBu4G9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUGAgcDB/cG+QYEBwUH+QZvAPkG+Qb5BvkG+Qb5BvkG+QZvAPkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb6BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BgoHCgcKB/UG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb3BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG/Ab8BvwG/Ab8BvwG/Ab8BgsH/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwGDAf8BvwG/Ab8BvwG/Ab8BgoHCgcKB/UG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9wb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb8BvwG/Ab8BvwGDQcLB/wG/Ab8BvwG/Ab8BvwG/Ab8Bg4HDAf8BvwG/Ab8BgoHCgcKB/UG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9wb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BgoHCgf1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9wb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb8BvwG/Ab8BvwG/Ab1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvcG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG/Ab8BvwG/Ab8BvwG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9wb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb5BvkG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG+Qb5BvkG+Qb5BvkG+Qb5BvkG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb5BvkG+Qb5BvkG+Qb5BvkG+Qb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG+Qb5BvkG+Qb5BvkG+Qb5BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG+Qb5BvkG+Qb5BvkG+Qb5BvkG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvcG9wb3BvUG9Qb1BvUG9Qb1BvUG9Qb1BvUG+Qb5BvkG+Qb5BvcG9wb3BvcG9wb3BvcG9wb3BvcG9Qb1BvUG9Qb1BvUG9Qb1BvUG9Qb5BvkG+Qb5BvkG9wb3BvcG9wb3BvcG9wb3BvcG9wb1BvUG9Qb1BvUG9Qb1BvUG+Qb5BvkG9wb3BvcG9wb3BvcG9wb3BvUG9Qb1BvUG9Qb1BvUG+Qb5BvkG9wb3BvcG9wb3BvcG9wb1BvUG9Qb1BvUG9Qb5BvkG9wb3BvcG9wb3BvcG9Qb1BvUG9Qb1BvkG9wb3BvcG9wb3BvUG9Qb1BvUG9Qb5BvcG9wb3BvcG9wb1BvUG9Qb5BvcG9wb3BvUG9Qb3BvcG9Qb3BvUG9wYAAO4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gbuBu4G7gYAAAAAAAAAAAAA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TAZUBlEGVQYAAEwGWwZgBl0GAAAAAD8GAAAAAAAAAAAAAAAAXQYAAFcGXQZjBmEGXgZdBlkGagZqBmIGbwZhBmsGbAZkBmMGdwZuBnIGgwYAAGoGAACEBgAAiAaFBnsGigaCBokGhAaZBnsGlAaOBpQGmgaXBpQGkwaPBp8GnwaXBqQGlgagBqEGmQaYBqwGowaiBrAGAACSBpQGogaxBqkGrAaqBq0GsgYAAKkGAAAAALUGsQa7Br8GAADABr4Guga7BrgGowaoBroGvQbBBrgGAAAAAM0G1AbXBroGvwbNBtsG0wbWBtQG3AbhBgAA2AYAAAAA5AbgBuoG7gYAAO8G7QbpBuoG5wbSBu0G5Ab1BuUG9QbtBu8G7gbfBgAA/gb8Bu4G8Ab+Bv0G8QYCB+QGAAf2BgYH/QbuBgoH/QYLB+0GCQcABxEHAQcRBwkHCwcKB/sGAAAaBxgHDwcUBycHJwcbBysHDQckBwAAHwcVBwAAGwcsBy4HKQcqBzoHAAAsBy8HNAckBwAAFQc3BycHAAA5BzQHRAc2BzkHHQc/BwAAOgcwBwAAMQdCB0QHPwdAB1AHAABCB0YHSwc7BwAALAdMBz4HXwddB1EHQgdTBwAAVQcAAFIHWQdXBzgHWQdxB0sHXAdeBwAAWgdDB2QHVgd2B3cHawdbB20HAABvBwAAawdyB3AHUQdtB3EHeQd4B4IHfQdrB4UHAAAAAAAAhwd7BwAAeQeDB4IHjAeMBwAAAAAAAAAAfgeBB4kHiAeSB4wHegeUBwAAAAAAAJYHigcAAIkHhQeWB5wHlQeWB6IHmAeXB50HkwefB6UHngefB5gHlAelB6sHpAelB7EHpwemB6wHAACpB7AHAACmB6oHrge6B6gHrgcAALcHAACtB78HAAC0B7sHAACxB7UHuQfFB7MHuQfHB7wHvAfJB8EHxwcAAL0HwgfCB8sH0QfGB8YH0wfLB9EHAADHB8sHAAC8B9sHzgfLB9YHAADBB84H0wcAAMQH4wfWB9MH3gfcB+QH1gfoBwAA2AfoBwAA4gfqB9wH7gcAAN4H4AfmB+wH9QfeB+oH5gfsB/IH+wfkBwAA+gfwB+wHAAD9BwAA/gf0B/AHAAAAAPcH/QcAAAAA+Qf/BwAA+gcAAPsH/Qf+BwAAAAApCyYIMQg8CEcIUghdCGYIcQh5CIEIiQiRCJwIpAivCLoIxQjJCNII2gjiCOoI7Aj3CAIJDQkRCRoJJQkwCTsJRgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgMBAQQBAQEBAwUGBwgJCgoKBwEBBgEDCwsLCwsLCAgICAgICAgICAgICAgICAgICAgHBAcDCAsLCwsLCwgICAgICAgICAgICAgICAEBAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQECAwEBAgEBAQEBAQEBAQEBAQEBAQEBAQIEBQYHCAkBCgsMDQ4PEBESExQTExMTExMTFRYXGBkaARscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODkBOjs8PT4/QEFCEENERUZHSBBJSktMEBBNEE5PUFFSAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAswCzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyADHAMUAtgC1ACAAxQCzACYAHQAsACsAIgAjABwAJACzACUACAAIAC0ALgAnACgAGwAhALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswAKAAkAswB4AHYAswAqAB4AKQAfAMQAwgDHAK4ALAArABwAxwCuAMcArgDGALYAIADGALEAJgAdACwAKwAiACMAHAAkALEAJQAIAAgALQAuACcAKAAbACEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQAKAAkAsQCxACoAHgApAB8ArgAkAK4AJQAIAAgArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4AeAB2AK4AHwAEAAMAAgAEAAUAhwAgAIYArQAiACMAHAAkAK0AJQAIAAgALQAuACgAIQCtAK0ArQCtAK0ArQCtAK0ArQCtAK0ArQAKAAkArQCtAK0ArQCtAK0ArQCtAK0ArQCtAB8AxADDAMUAvQC8ALcAvgC/ALsAuwC7ALsAwADBALYAswAPAAAAtAAIABoAGAAWABQAFQABABcACAAIALMAEgARAA4AEAATALMAswCzALMAswB9ALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAGQANAMQArgAAAAEArwCuAA8AsQAGABYAFAAVAAAAFwAIAAAABwAHAAgABwAOALEABwAHAAcAsQCxAH0ABwCxALEABwCxALEAsQAHALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQCxAAcAsQAIABcACAAAAK4ArgCuAK4ArgB9AK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgAEAAQAhgCGAK0ABgCIABYAiQCtAAcABwAHAK0ArQCtAAcArQAHAAcArQCtAK0ArQCtAK0ArQCtAAcArQCtAK0ABwCtAAcABwCtAK0ArQCtAK0ArQCtAK0AwwC8ALsAAAC7ALsAuwALAAwAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAXQCzALMAswCzALMAswCzALMAswCzAEgAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAeQB3ALMAsACvAK4ACACyAAgAsQAHALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQA+AD8AsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQAIAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgBdAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgBIAD4ArgA/AK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgB5AHcArgAEAAgArQCtAK0ArQCtAIoArQCtAK0ArQCtAK0ArQCtAK0ArQCtAK0ArQCtAK0AmwCtAK0ArQCtAK0ArQCtAK0ArQCtALsAuwC7ALMAOwCzALMAswCzALMANQCzAGQAswBwALMAswCzALMAswCzALMAWQCzALMAswCzALMAcQCzALMAswCDALMAswCzAGIAswBEALMAswCzALMAswCzALMAswCzAGAAswCzALMAswCzALMAawCzALMAswCzALMAswCzALMAswCuALEAOwCxALEAsQA1ALEAsQBwALEAsQCxALEAsQCxALEAcQCxAIMAsQCxALEARACxALEAsQCxALEAsQCxALEAsQCxALEAsQCuADsArgCuAK4ArgA1AK4AZACuAHAArgCuAK4ArgCuAK4ArgBZAK4ArgCuAK4ArgBxAK4ArgCuAIMArgCuAK4ArgBiAK4ARACuAK4ArgCuAK4ArgCuAK4ArgBgAK4ArgCuAK4ArgCuAGsArgCuAK4ArgCuAK4ArgCuAK4ArQCtAK0AjgCWAI0ArQCtAJgAkQCUAK0ArQCZAK0ArQCtAK0ArQCfAKcAngCtAK0AqgCiAKUArQCtAKsArQCtALsAuwC7ALMAVwA3ALMAswCzADQAswCzALMAswBvAEIAswCzAF8AswBOALMAswCzAE0AswCzALMAswCzALMAswCzALMAswCzALMAfACzALMAswCzALMAYwCzALMAswBhALMAswCzALMAswCzALMArgCxADcAsQCxADQAsQCxALEAbwCxAE4AsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEAsQCxALEArgBXADcArgCuADQArgCuAK4ArgBvAEIArgCuAF8ArgBOAK4ArgCuAE0ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgB8AK4ArgCuAK4ArgBjAK4ArgCuAGEArgCuAK4ArgCuAK4ArgCtAI8AjACtAK0AmACYAJMArQCXAK0ArQCgAJ0ArQCtAKoAqgCkAK0AqQCtALsAuwC5ALMAswCzAEEAswBYALMAswCzALMAswCzAEMAswCAALMAswCzAFYAswA2ALMALwCzALMAbgCzADIATACzALMAswCzALMAswBJALMAswCzALMAswBeAEoAswCzALMArgCxALEAsQBBALEAsQCxALEAsQCAALEAsQA2ALEAsQCxAG4AsQAyALEAsQCxAEkAsQCxALEAsQCuAK4ArgBBAFgArgCuAK4ArgCuAK4AQwCuAIAArgCuAK4AVgCuADYArgCuAC8ArgCuAG4ArgAyAEwArgCuAK4ArgCuAK4ASQCuAK4ArgCuAK4AXgBKAK4ArgCuAK0ArQBDAJUAkgCtAK0ArQCoAKYAowCtALoAuACzAD0AswCzALMAswCzALMAUACzALMAewCzALMAswCzALMAZQCzALMAaACBALMAswCzALMAswCzALMAdQBaALMAMwCzALMArgCxAD0AsQCxALEAsQBQALEAewCxALEAsQCxALEAcgCBALEAsQB1ALEAsQCxAK4APQCuAK4ArgCuAK4AUACuAK4AewCuAK4ArgCuAK4ArgBlAK4ArgBoAIEArgCuAK4ArgCuAK4ArgB1AFoArgAzAK4ArgCtAK0ArQCtAK0ArQCaALMAswCFALMAswCzALMAswCzALMAswA8ALMAswCzALMAswCzALMAVQCzALMAswCzAH8ArACzAK4AmgCxALEAhQCxALEAsQA8AEAAsQCxALEAsQCxAH8ArACxAJoArgCFAK4ArgCuAK4ArgCuAK4ArgA8AEAArgCuAK4ArgCuAK4ArgBVAK4ArgCuAK4AfwCsAK4AmgCLAJAArACcAKEAswBPALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswBtALMATwCxAE8AsQCxALEAsQCxALEAsQCxALEArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4ArgCuAK4AbQCuALMAswCzALMAswCzALMAswAxALMAcwB0ALMAswCzALMASwCzALMAswCzALMAswCxALEAsQCxALEAcwB0ALEAsQCxALEArgCuAK4ArgCuAK4ArgCuADEArgBzAHQArgCuAK4ArgBLAK4ArgCuAK4ArgCuALMAswCzALMAswCzALMAswBmAFwAswCzALMAswCzALMAswCzALMAsQCxALEAsQBmALEAsQCxALEArgCuAK4ArgCuAK4ArgCuAGYAXACuAK4ArgCuAK4ArgCuAK4ArgCzAFIAswCzAIQAswCzALMAswCzALMAMACzALMAswCzAGkAswCxALEAhACxALEAsQCxALEAsQCuAFIArgCuAIQArgCuAK4ArgCuAK4AMACuAK4ArgCuAGkArgCzALMAswCzALMAswCzAFsAswBHALMAswCzALMAsQCxALEAsQCxAEcAsQCxAK4ArgCuAK4ArgCuAK4AWwCuAEcArgCuAK4ArgCzALMAswCzALMAswCzALMAZwCCAEYAswCzAEUAsQCxALEAsQCxAGcAggBGAEUArgCuAK4ArgCuAK4ArgCuAGcAggBGAK4ArgBFALMAswCzALMAswCzALMAswCzALMAsQCxALEAsQCxAK4ArgCuAK4ArgCuAK4ArgCuAK4AfgCzALMAOgCzALMAswCzALMAswB+ALEAOgCxALEAfgCuAK4AOgCuAK4ArgCuAK4ArgCzALMAswCzALMAswBqALMAsQCxALEArgCuAK4ArgCuAK4AagCuALMAOACzALMAswCzALMAOACxALEArgA4AK4ArgCuAK4ArgCzALMAswCzAHoAswCxAHoArgCuAK4ArgB6AK4AswCzALMAswCzALEArgCuAK4ArgCuAFEAswCzALMAbACxAFEArgCuAK4AbAA5ALMAswA5ADkArgCuAFMAswBTAK4AswCuAFQAVAAAAAAAJVAlRjogaW52YWxpZCBoZXggbnVtYmVyIGAlcycKAAAlUCVGOiB1c2UgdGhlIC0taGVscCBvcHRpb24gZm9yIHVzYWdlIGluZm9ybWF0aW9uCgAAAAAAACVQJUY6IHVucmVjb2duaXplZCAtYSBvcHRpb24gYCVzJwoAAAAAAAAlUCVGOiB1bnJlY29nbml6ZWQgLWFzc2VydCBvcHRpb24gYCVzJwoAJUYlUDogdW5rbm93biBkZW1hbmdsaW5nIHN0eWxlIGAlcycKAAAAACVzOiBlbXVsYXRpb24gc3BlY2lmaWMgb3B0aW9uczoKAAAAAAAAAAAgIC0tYnVpbGQtaWRbPVNUWUxFXSAgICAgICAgICBHZW5lcmF0ZSBidWlsZCBJRCBub3RlCgAAACAgLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz1bbm9uZXx6bGlifHpsaWItZ251fHpsaWItZ2FiaV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tcHJlc3MgRFdBUkYgZGVidWcgc2VjdGlvbnMgdXNpbmcgemxpYgoAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdDogbm9uZQoAAAAgIC16IGNvbW1vbi1wYWdlLXNpemU9U0laRSAgICBTZXQgY29tbW9uIHBhZ2Ugc2l6ZSB0byBTSVpFCgAAAAAAICAteiBtYXgtcGFnZS1zaXplPVNJWkUgICAgICAgU2V0IG1heGltdW0gcGFnZSBzaXplIHRvIFNJWkUKAAAAACAgLXogZGVmcyAgICAgICAgICAgICAgICAgICAgIFJlcG9ydCB1bnJlc29sdmVkIHN5bWJvbHMgaW4gb2JqZWN0IGZpbGVzLgoAAAAAAAAAICAteiBtdWxkZWZzICAgICAgICAgICAgICAgICAgQWxsb3cgbXVsdGlwbGUgZGVmaW5pdGlvbnMKAAAAAAAAACAgLXogZXhlY3N0YWNrICAgICAgICAgICAgICAgIE1hcmsgZXhlY3V0YWJsZSBhcyByZXF1aXJpbmcgZXhlY3V0YWJsZSBzdGFjawoAAAAAICAteiBub2V4ZWNzdGFjayAgICAgICAgICAgICAgTWFyayBleGVjdXRhYmxlIGFzIG5vdCByZXF1aXJpbmcgZXhlY3V0YWJsZSBzdGFjawoAAAAAAAAAACAgLS1hdWRpdD1BVURJVExJQiAgICAgICAgICAgIFNwZWNpZnkgYSBsaWJyYXJ5IHRvIHVzZSBmb3IgYXVkaXRpbmcKAAAAACAgLUJncm91cCAgICAgICAgICAgICAgICAgICAgIFNlbGVjdHMgZ3JvdXAgbmFtZSBsb29rdXAgcnVsZXMgZm9yIERTTwoAACAgLS1kaXNhYmxlLW5ldy1kdGFncyAgICAgICAgIERpc2FibGUgbmV3IGR5bmFtaWMgdGFncwoAICAtLWVuYWJsZS1uZXctZHRhZ3MgICAgICAgICAgRW5hYmxlIG5ldyBkeW5hbWljIHRhZ3MKAAAgIC0tZWgtZnJhbWUtaGRyICAgICAgICAgICAgICBDcmVhdGUgLmVoX2ZyYW1lX2hkciBzZWN0aW9uCgAAAAAAICAtLWV4Y2x1ZGUtbGlicz1MSUJTICAgICAgICAgTWFrZSBhbGwgc3ltYm9scyBpbiBMSUJTIGhpZGRlbgoAACAgLS1oYXNoLXN0eWxlPVNUWUxFICAgICAgICAgIFNldCBoYXNoIHN0eWxlIHRvIHN5c3YsIGdudSBvciBib3RoCgAAAAAAACAgLVAgQVVESVRMSUIsIC0tZGVwYXVkaXQ9QVVESVRMSUIKCQkJICAgICAgU3BlY2lmeSBhIGxpYnJhcnkgdG8gdXNlIGZvciBhdWRpdGluZyBkZXBlbmRlbmNpZXMKACAgLXogY29tYnJlbG9jICAgICAgICAgICAgICAgIE1lcmdlIGR5bmFtaWMgcmVsb2NzIGludG8gb25lIHNlY3Rpb24gYW5kIHNvcnQKAAAAICAteiBub2NvbWJyZWxvYyAgICAgICAgICAgICAgRG9uJ3QgbWVyZ2UgZHluYW1pYyByZWxvY3MgaW50byBvbmUgc2VjdGlvbgoAAAAAAAAgIC16IGdsb2JhbCAgICAgICAgICAgICAgICAgICBNYWtlIHN5bWJvbHMgaW4gRFNPIGF2YWlsYWJsZSBmb3Igc3Vic2VxdWVudGx5CgkJCSAgICAgICBsb2FkZWQgb2JqZWN0cwoAACAgLXogaW5pdGZpcnN0ICAgICAgICAgICAgICAgIE1hcmsgRFNPIHRvIGJlIGluaXRpYWxpemVkIGZpcnN0IGF0IHJ1bnRpbWUKAAAAAAAAICAteiBpbnRlcnBvc2UgICAgICAgICAgICAgICAgTWFyayBvYmplY3QgdG8gaW50ZXJwb3NlIGFsbCBEU09zIGJ1dCBleGVjdXRhYmxlCgAgIC16IGxhenkgICAgICAgICAgICAgICAgICAgICBNYXJrIG9iamVjdCBsYXp5IHJ1bnRpbWUgYmluZGluZyAoZGVmYXVsdCkKAAAAAAAAACAgLXogbG9hZGZsdHIgICAgICAgICAgICAgICAgIE1hcmsgb2JqZWN0IHJlcXVpcmluZyBpbW1lZGlhdGUgcHJvY2VzcwoAACAgLXogbm9jb3B5cmVsb2MgICAgICAgICAgICAgIERvbid0IGNyZWF0ZSBjb3B5IHJlbG9jcwoAICAteiBub2RlZmF1bHRsaWIgICAgICAgICAgICAgTWFyayBvYmplY3Qgbm90IHRvIHVzZSBkZWZhdWx0IHNlYXJjaCBwYXRocwoAAAAAAAAgIC16IG5vZGVsZXRlICAgICAgICAgICAgICAgICBNYXJrIERTTyBub24tZGVsZXRhYmxlIGF0IHJ1bnRpbWUKAAAAAAAAAAAgIC16IG5vZGxvcGVuICAgICAgICAgICAgICAgICBNYXJrIERTTyBub3QgYXZhaWxhYmxlIHRvIGRsb3BlbgoAICAteiBub2R1bXAgICAgICAgICAgICAgICAgICAgTWFyayBEU08gbm90IGF2YWlsYWJsZSB0byBkbGR1bXAKACAgLXogbm93ICAgICAgICAgICAgICAgICAgICAgIE1hcmsgb2JqZWN0IG5vbi1sYXp5IHJ1bnRpbWUgYmluZGluZwoAAAAAACAgLXogb3JpZ2luICAgICAgICAgICAgICAgICAgIE1hcmsgb2JqZWN0IHJlcXVpcmluZyBpbW1lZGlhdGUgJE9SSUdJTgoJCQkJcHJvY2Vzc2luZyBhdCBydW50aW1lCgAAAAAAAAAAICAteiByZWxybyAgICAgICAgICAgICAgICAgICAgQ3JlYXRlIFJFTFJPIHByb2dyYW0gaGVhZGVyIChkZWZhdWx0KQoAAAAAICAteiBub3JlbHJvICAgICAgICAgICAgICAgICAgRG9uJ3QgY3JlYXRlIFJFTFJPIHByb2dyYW0gaGVhZGVyCgAAAAAAAAAAICAteiBjb21tb24gICAgICAgICAgICAgICAgICAgR2VuZXJhdGUgY29tbW9uIHN5bWJvbHMgd2l0aCBTVFRfQ09NTU9OIHR5cGUKAAAAAAAgIC16IG5vY29tbW9uICAgICAgICAgICAgICAgICBHZW5lcmF0ZSBjb21tb24gc3ltYm9scyB3aXRoIFNUVF9PQkpFQ1QgdHlwZQoAAAAAACAgLXogc3RhY2tzaXplPVNJWkUgICAgICAgICAgIFNldCBzaXplIG9mIHN0YWNrIHNlZ21lbnQKAAAAAAAAAAAgIC16IHRleHQgICAgICAgICAgICAgICAgICAgICBUcmVhdCBEVF9URVhUUkVMIGluIHNoYXJlZCBvYmplY3QgYXMgZXJyb3IKAAAAAAAAACAgLXogbm90ZXh0ICAgICAgICAgICAgICAgICAgIERvbid0IHRyZWF0IERUX1RFWFRSRUwgaW4gc2hhcmVkIG9iamVjdCBhcyBlcnJvcgoAICAteiB0ZXh0b2ZmICAgICAgICAgICAgICAgICAgRG9uJ3QgdHJlYXQgRFRfVEVYVFJFTCBpbiBzaGFyZWQgb2JqZWN0IGFzIGVycm9yCgA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtLW9zL2lzc3Vlcy9lbnRyeT4AAAAAACVQJUY6IGJhZCAtLXVucmVzb2x2ZWQtc3ltYm9scyBvcHRpb246ICVzCgAAAAAAACVQJUY6IHVucmVjb2duaXNlZCBvcHRpb246ICVzCgAAJVAlRjogLXIgYW5kICVzIG1heSBub3QgYmUgdXNlZCB0b2dldGhlcgoAAAAAAAAAJVAlRjogLXIgYW5kIC1zaGFyZWQgbWF5IG5vdCBiZSB1c2VkIHRvZ2V0aGVyCgAAJVAlRjogLXIgYW5kIC1waWUgbWF5IG5vdCBiZSB1c2VkIHRvZ2V0aGVyCgAAAAAAJVA6IFNPTkFNRSBtdXN0IG5vdCBiZSBlbXB0eSBzdHJpbmc7IGtlZXBpbmcgcHJldmlvdXMgb25lCgAAAAAAACVQJUY6IGludmFsaWQgY29tbW9uIHNlY3Rpb24gc29ydGluZyBvcHRpb246ICVzCgAAAAAAAAAAJVAlRjogaW52YWxpZCBzZWN0aW9uIHNvcnRpbmcgb3B0aW9uOiAlcwoAAAAAAAAAJVAlRjogaW52YWxpZCBhcmd1bWVudCB0byBvcHRpb24gIi0tc2VjdGlvbi1zdGFydCIKAAAAAAAlUCVGOiBtaXNzaW5nIGFyZ3VtZW50KHMpIHRvIG9wdGlvbiAiLS1zZWN0aW9uLXN0YXJ0IgoAACVQJUY6IGdyb3VwIGVuZGVkIGJlZm9yZSBpdCBiZWdhbiAoLS1oZWxwIGZvciB1c2FnZSkKAAAAJVAlWDogLS1oYXNoLXNpemUgbmVlZHMgYSBudW1lcmljIGFyZ3VtZW50CgAAAAAAJVAlRjogbm8gc3RhdGUgcHVzaGVkIGJlZm9yZSBwb3BwaW5nCgAAACVQJUY6IGludmFsaWQgYXJndW1lbnQgdG8gb3B0aW9uICItLW9ycGhhbi1oYW5kbGluZyIKAAAAJVA6IFNPTkFNRSBtdXN0IG5vdCBiZSBlbXB0eSBzdHJpbmc7IGlnbm9yZWQKAAAAJVAlRjogLUYgbWF5IG5vdCBiZSB1c2VkIHdpdGhvdXQgLXNoYXJlZAoAAAAAAAAAJVAlRjogLWYgbWF5IG5vdCBiZSB1c2VkIHdpdGhvdXQgLXNoYXJlZAoAAAAAAAAAU2hhcmVkIGxpYnJhcnkgY29udHJvbCBmb3IgSFAvVVggY29tcGF0aWJpbGl0eQAAU3BlY2lmeSB0YXJnZXQgZm9yIGZvbGxvd2luZyBpbnB1dCBmaWxlcwAAAAAAAAAARm9yY2UgY29tbW9uIHN5bWJvbHMgdG8gYmUgZGVmaW5lZAAAAAAAAFVuZG8gdGhlIGVmZmVjdCBvZiAtLWV4cG9ydC1keW5hbWljAAAAAABBdXhpbGlhcnkgZmlsdGVyIGZvciBzaGFyZWQgb2JqZWN0IHN5bWJvbCB0YWJsZQBGaWx0ZXIgZm9yIHNoYXJlZCBvYmplY3Qgc3ltYm9sIHRhYmxlAAAAU21hbGwgZGF0YSBzaXplIChpZiBubyBzaXplLCBzYW1lIGFzIC0tc2hhcmVkKQAAU2V0IGludGVybmFsIG5hbWUgb2Ygc2hhcmVkIGxpYnJhcnkAAAAAAFNldCBQUk9HUkFNIGFzIHRoZSBkeW5hbWljIGxpbmtlciB0byB1c2UAAAAAAAAAAFByb2R1Y2UgYW4gZXhlY3V0YWJsZSB3aXRoIG5vIHByb2dyYW0gaW50ZXJwcmV0ZXIgaGVhZGVyAAAAAAAAAABBZGQgRElSRUNUT1JZIHRvIGxpYnJhcnkgc2VhcmNoIHBhdGgAAAAAT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc3lzcm9vdCBsb2NhdGlvbgAAAFByaW50IG1hcCBmaWxlIG9uIHN0YW5kYXJkIG91dHB1dAAAAAAAAABEbyBub3QgcGFnZSBhbGlnbiBkYXRhLCBkbyBub3QgbWFrZSB0ZXh0IHJlYWRvbmx5AAAAAAAAAFBhZ2UgYWxpZ24gZGF0YSwgbWFrZSB0ZXh0IHJlYWRvbmx5AAAAAABTZW5kIGFyZyB0byBsYXN0LWxvYWRlZCBwbHVnaW4AAElnbm9yZWQgZm9yIEdDQyBMVE8gb3B0aW9uIGNvbXBhdGliaWxpdHkAAAAAAAAAAElnbm9yZWQgZm9yIEdDQyBsaW5rZXIgb3B0aW9uIGNvbXBhdGliaWxpdHkAAAAAAElnbm9yZWQgZm9yIGdvbGQgb3B0aW9uIGNvbXBhdGliaWxpdHkAAABJZ25vcmVkIGZvciBTVlI0IGNvbXBhdGliaWxpdHkAAEdlbmVyYXRlIHJlbG9jYXRpb25zIGluIGZpbmFsIG91dHB1dAAAAABKdXN0IGxpbmsgc3ltYm9scyAoaWYgZGlyZWN0b3J5LCBzYW1lIGFzIC0tcnBhdGgpAAAAAAAAAFN0cmlwIHN5bWJvbHMgaW4gZGlzY2FyZGVkIHNlY3Rpb25zAAAAAABEbyBub3Qgc3RyaXAgc3ltYm9scyBpbiBkaXNjYXJkZWQgc2VjdGlvbnMAAAAAAABTdGFydCB3aXRoIHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gU1lNQk9MAAAAAAAAAABSZXF1aXJlIFNZTUJPTCBiZSBkZWZpbmVkIGluIHRoZSBmaW5hbCBvdXRwdXQAAABEb24ndCBtZXJnZSBpbnB1dCBbU0VDVElPTiB8IG9ycGhhbl0gc2VjdGlvbnMAAABCdWlsZCBnbG9iYWwgY29uc3RydWN0b3IvZGVzdHJ1Y3RvciB0YWJsZXMAAAAAAABQcmludCB2ZXJzaW9uIGFuZCBlbXVsYXRpb24gaW5mb3JtYXRpb24ARGlzY2FyZCB0ZW1wb3JhcnkgbG9jYWwgc3ltYm9scyAoZGVmYXVsdCkAAAAAAAAARG9uJ3QgZGlzY2FyZCBhbnkgbG9jYWwgc3ltYm9scwBEZWZhdWx0IHNlYXJjaCBwYXRoIGZvciBTb2xhcmlzIGNvbXBhdGliaWxpdHkAAABBY2NlcHQgaW5wdXQgZmlsZXMgd2hvc2UgYXJjaGl0ZWN0dXJlIGNhbm5vdCBiZSBkZXRlcm1pbmVkAAAAAAAAUmVqZWN0IGlucHV0IGZpbGVzIHdob3NlIGFyY2hpdGVjdHVyZSBpcyB1bmtub3duAAAAAAAAAABPbmx5IHNldCBEVF9ORUVERUQgZm9yIGZvbGxvd2luZyBkeW5hbWljIGxpYnMgaWYgdXNlZAAAAEFsd2F5cyBzZXQgRFRfTkVFREVEIGZvciBkeW5hbWljIGxpYnJhcmllcyBtZW50aW9uZWQgb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY29tbWFuZCBsaW5lAAAAAAAAAABJZ25vcmVkIGZvciBTdW5PUyBjb21wYXRpYmlsaXR5AERvIG5vdCBsaW5rIGFnYWluc3Qgc2hhcmVkIGxpYnJhcmllcwAAAABCaW5kIGdsb2JhbCByZWZlcmVuY2VzIGxvY2FsbHkAAEJpbmQgZ2xvYmFsIGZ1bmN0aW9uIHJlZmVyZW5jZXMgbG9jYWxseQBDaGVjayBzZWN0aW9uIGFkZHJlc3NlcyBmb3Igb3ZlcmxhcHMgKGRlZmF1bHQpAABEbyBub3QgY2hlY2sgc2VjdGlvbiBhZGRyZXNzZXMgZm9yIG92ZXJsYXBzAAAAAABDb3B5IERUX05FRURFRCBsaW5rcyBtZW50aW9uZWQgaW5zaWRlIERTT3MgdGhhdCBmb2xsb3cAAERvIG5vdCBjb3B5IERUX05FRURFRCBsaW5rcyBtZW50aW9uZWQgaW5zaWRlIERTT3MgdGhhdCBmb2xsb3cAAABEZW1hbmdsZSBzeW1ib2wgbmFtZXMgW3VzaW5nIFNUWUxFXQAAAAAARG8gbm90IHRyZWF0IHdhcm5pbmdzIGFzIGVycm9ycyAoZGVmYXVsdCkAAAAAAAAARm9yY2UgZ2VuZXJhdGlvbiBvZiBmaWxlIHdpdGggLmV4ZSBzdWZmaXgAAAAAAAAAUmVtb3ZlIHVudXNlZCBzZWN0aW9ucyAob24gc29tZSB0YXJnZXRzKQAAAAAAAAAARG9uJ3QgcmVtb3ZlIHVudXNlZCBzZWN0aW9ucyAoZGVmYXVsdCkAAExpc3QgcmVtb3ZlZCB1bnVzZWQgc2VjdGlvbnMgb24gc3RkZXJyAABEbyBub3QgbGlzdCByZW1vdmVkIHVudXNlZCBzZWN0aW9ucwAAAAAAU2V0IGRlZmF1bHQgaGFzaCB0YWJsZSBzaXplIGNsb3NlIHRvIDxOVU1CRVI+AAAAVXNlIGxlc3MgbWVtb3J5IGFuZCBtb3JlIGRpc2sgSS9PAAAAAAAAAERvIG5vdCBhbGxvdyB1bnJlc29sdmVkIHJlZmVyZW5jZXMgaW4gb2JqZWN0IGZpbGVzAAAAAAAAQWxsb3cgdW5yZXNvbHZlZCByZWZlcmVuY2VzIGluIHNoYXJlZCBsaWJyYXJpZXMARG8gbm90IGFsbG93IHVucmVzb2x2ZWQgcmVmZXJlbmNlcyBpbiBzaGFyZWQgbGlicwAAAAAAAABDcmVhdGUgZGVmYXVsdCBzeW1ib2wgdmVyc2lvbiBmb3IgaW1wb3J0ZWQgc3ltYm9scwAAAAAAAERvbid0IHdhcm4gYWJvdXQgbWlzbWF0Y2hlZCBpbnB1dCBmaWxlcwBEb24ndCB3YXJuIG9uIGZpbmRpbmcgYW4gaW5jb21wYXRpYmxlIGxpYnJhcnkAAABDcmVhdGUgYW4gb3V0cHV0IGZpbGUgZXZlbiBpZiBlcnJvcnMgb2NjdXIAAAAAAABPbmx5IHVzZSBsaWJyYXJ5IGRpcmVjdG9yaWVzIHNwZWNpZmllZCBvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjb21tYW5kIGxpbmUAAAAAAABJZ25vcmVkIGZvciBMaW51eCBjb21wYXRpYmlsaXR5AFJlZHVjZSBtZW1vcnkgb3ZlcmhlYWRzLCBwb3NzaWJseSB0YWtpbmcgbXVjaCBsb25nZXIAAAAAUmVkdWNlIGNvZGUgc2l6ZSBieSB1c2luZyB0YXJnZXQgc3BlY2lmaWMgb3B0aW1pemF0aW9ucwBEbyBub3QgdXNlIHJlbGF4YXRpb24gdGVjaG5pcXVlcyB0byByZWR1Y2UgY29kZSBzaXplAAAAAEtlZXAgb25seSBzeW1ib2xzIGxpc3RlZCBpbiBGSUxFAAAAAAAAAABTZXQgcnVudGltZSBzaGFyZWQgbGlicmFyeSBzZWFyY2ggcGF0aAAAU2V0IGxpbmsgdGltZSBzaGFyZWQgbGlicmFyeSBzZWFyY2ggcGF0aAAAAAAAAAAAQ3JlYXRlIGEgcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZQAAAAAAAAAAU29ydCBjb21tb24gc3ltYm9scyBieSBhbGlnbm1lbnQgW2luIHNwZWNpZmllZCBvcmRlcl0AAABTb3J0IHNlY3Rpb25zIGJ5IG5hbWUgb3IgbWF4aW11bSBhbGlnbm1lbnQAAAAAAABIb3cgbWFueSB0YWdzIHRvIHJlc2VydmUgaW4gLmR5bmFtaWMgc2VjdGlvbgAAAABTcGxpdCBvdXRwdXQgc2VjdGlvbnMgZXZlcnkgU0laRSBvY3RldHMAU3BsaXQgb3V0cHV0IHNlY3Rpb25zIGV2ZXJ5IENPVU5UIHJlbG9jcwAAAAAAAAAARGlzcGxheSB0YXJnZXQgc3BlY2lmaWMgb3B0aW9ucwBVc2Ugc2FtZSBmb3JtYXQgYXMgbmF0aXZlIGxpbmtlcgAAAAAAAAAASG93IHRvIGhhbmRsZSB1bnJlc29sdmVkIHN5bWJvbHMuICA8bWV0aG9kPiBpczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmUtYWxsLCByZXBvcnQtYWxsLCBpZ25vcmUtaW4tb2JqZWN0LWZpbGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZS1pbi1zaGFyZWQtbGlicwAAAE91dHB1dCBsb3RzIG9mIGluZm9ybWF0aW9uIGR1cmluZyBsaW5rAABSZWFkIHZlcnNpb24gaW5mb3JtYXRpb24gc2NyaXB0AFRha2UgZXhwb3J0IHN5bWJvbHMgbGlzdCBmcm9tIC5leHBvcnRzLCB1c2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZTUJPTCBhcyB0aGUgdmVyc2lvbi4AAAAAQWRkIGRhdGEgc3ltYm9scyB0byBkeW5hbWljIGxpc3QAAAAAAAAAAFVzZSBDKysgb3BlcmF0b3IgbmV3L2RlbGV0ZSBkeW5hbWljIGxpc3QAAAAAAAAAAFdhcm4gYWJvdXQgZHVwbGljYXRlIGNvbW1vbiBzeW1ib2xzAAAAAABXYXJuIGlmIGdsb2JhbCBjb25zdHJ1Y3RvcnMvZGVzdHJ1Y3RvcnMgYXJlIHNlZW4AAAAAAAAAAFdhcm4gaWYgdGhlIG11bHRpcGxlIEdQIHZhbHVlcyBhcmUgdXNlZABXYXJuIG9ubHkgb25jZSBwZXIgdW5kZWZpbmVkIHN5bWJvbAAAAAAAV2FybiBpZiBzdGFydCBvZiBzZWN0aW9uIGNoYW5nZXMgZHVlIHRvIGFsaWdubWVudAAAAAAAAABXYXJuIGlmIHNoYXJlZCBvYmplY3QgaGFzIERUX1RFWFRSRUwAAAAAV2FybiBpZiBhbiBvYmplY3QgaGFzIGFsdGVybmF0ZSBFTEYgbWFjaGluZSBjb2RlAAAAAAAAAABSZXBvcnQgdW5yZXNvbHZlZCBzeW1ib2xzIGFzIHdhcm5pbmdzAAAAUmVwb3J0IHVucmVzb2x2ZWQgc3ltYm9scyBhcyBlcnJvcnMAAAAAAEluY2x1ZGUgYWxsIG9iamVjdHMgZnJvbSBmb2xsb3dpbmcgYXJjaGl2ZXMAAAAAAFVzZSB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IgU1lNQk9MAAAAAAAAAABVbnJlc29sdmVkIFNZTUJPTCB3aWxsIG5vdCBjYXVzZSBhbiBlcnJvciBvciB3YXJuaW5nAAAAAFB1c2ggc3RhdGUgb2YgZmxhZ3MgZ292ZXJuaW5nIGlucHV0IGZpbGUgaGFuZGxpbmcAAAAAAAAAUG9wIHN0YXRlIG9mIGZsYWdzIGdvdmVybmluZyBpbnB1dCBmaWxlIGhhbmRsaW5nAAAAAAAAAABDb250cm9sIGhvdyBvcnBoYW4gc2VjdGlvbnMgYXJlIGhhbmRsZWQuAAAAAAAAAAB3YXJuLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMAAFdhcm4gZm9yIC1MIG9wdGlvbnMgdXNpbmcgc3lzdGVtIGRpcmVjdG9yaWVzAAAAAG5vLXdhcm4tcG9pc29uLXN5c3RlbS1kaXJlY3RvcmllcwAAAAAAAABEbyBub3Qgd2FybiBmb3IgLUwgb3B0aW9ucyB1c2luZyBzeXN0ZW0gZGlyZWN0b3JpZXMAAAAAAGVycm9yLXBvaXNvbi1zeXN0ZW0tZGlyZWN0b3JpZXMAR2l2ZSBhbiBlcnJvciBmb3IgLUwgb3B0aW9ucyB1c2luZyBzeXN0ZW0gZGlyZWN0b3JpZXMALXBpZQAtRwAtLXNoYXJlZAAtLWxpYnJhcnk9JXMAJVA6ICVzOiBtaXNzaW5nIGFyZ3VtZW50CgBkZWZhdWx0AG5vZGVmaW5pdGlvbnMAbm9zeW1ib2xpYwBwdXJlLXRleHQALS1kZWZzeW0AJVAlRjogaW52YWxpZCBudW1iZXIgYCVzJwoAVXNhZ2U6ICVzIFtvcHRpb25zXSBmaWxlLi4uCgBPcHRpb25zOgoAICVzACAgQEZJTEUAUmVhZCBvcHRpb25zIGZyb20gRklMRQoAJXM6IHN1cHBvcnRlZCB0YXJnZXRzOgAlczogc3VwcG9ydGVkIGVtdWxhdGlvbnM6IABFTEYgZW11bGF0aW9uczoKAFJlcG9ydCBidWdzIHRvICVzCgAlcy0lYwAlcy0lcyVzAGlnbm9yZS1hbGwAcmVwb3J0LWFsbABpZ25vcmUtaW4tb2JqZWN0LWZpbGVzAGlnbm9yZS1pbi1zaGFyZWQtbGlicwAlUCVGOiBiYWQgLXBsdWdpbi1vcHQgb3B0aW9uCgAlcyVjJXMAJVAlRjogLXNoYXJlZCBub3Qgc3VwcG9ydGVkCgAlUCVGOiAtcGllIG5vdCBzdXBwb3J0ZWQKAGRlc2NlbmRpbmcAYXNjZW5kaW5nAC5ic3MALmRhdGEALnRleHQALnRleHQtc2VnbWVudAAucm9kYXRhLXNlZ21lbnQALmxkYXRhLXNlZ21lbnQAUCwAcGxhY2UAd2FybgBkaXNjYXJkACVQOiB1bnJlY29nbml6ZWQgb3B0aW9uICclcycKAEtFWVdPUkQAU2V0IGFyY2hpdGVjdHVyZQBtcmktc2NyaXB0AFJlYWQgTVJJIGZvcm1hdCBsaW5rZXIgc2NyaXB0AGRwAFNldCBzdGFydCBhZGRyZXNzAEV4cG9ydCBhbGwgZHluYW1pYyBzeW1ib2xzAG5vLWV4cG9ydC1keW5hbWljAEVCAExpbmsgYmlnLWVuZGlhbiBvYmplY3RzAExpbmsgbGl0dGxlLWVuZGlhbiBvYmplY3RzAGF1eGlsaWFyeQBmaWx0ZXIASWdub3JlZABncHNpemUAc29uYW1lAEZJTEVOQU1FAFBST0dSQU0Abm8tZHluYW1pYy1saW5rZXIAU2VhcmNoIGZvciBsaWJyYXJ5IExJQk5BTUUAbGlicmFyeS1wYXRoAERJUkVDVE9SWQBzeXNyb290PTxESVJFQ1RPUlk+AFNldCBlbXVsYXRpb24AcHJpbnQtbWFwAG5tYWdpYwBEbyBub3QgcGFnZSBhbGlnbiBkYXRhAG5vLW9tYWdpYwBTZXQgb3V0cHV0IGZpbGUgbmFtZQBPcHRpbWl6ZSBvdXRwdXQgZmlsZQBQTFVHSU4ATG9hZCBuYW1lZCBwbHVnaW4AcGx1Z2luLW9wdABBUkcAZmx0bwBmbHRvLXBhcnRpdGlvbj0AZnVzZS1sZD0Abm8tbWFwLXdob2xlLWZpbGVzAFF5AGVtaXQtcmVsb2NzAHJlbG9jYXRhYmxlAEdlbmVyYXRlIHJlbG9jYXRhYmxlIG91dHB1dABqdXN0LXN5bWJvbHMAc3RyaXAtYWxsAFN0cmlwIGFsbCBzeW1ib2xzAHN0cmlwLWRlYnVnAFN0cmlwIGRlYnVnZ2luZyBzeW1ib2xzAG5vLXN0cmlwLWRpc2NhcmRlZAB0cmFjZQBUcmFjZSBmaWxlIG9wZW5zAFJlYWQgbGlua2VyIHNjcmlwdABkZWZhdWx0LXNjcmlwdABSZWFkIGRlZmF1bHQgbGlua2VyIHNjcmlwdABkVAByZXF1aXJlLWRlZmluZWQAdW5pcXVlAFs9U0VDVElPTl0AVXIAUHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbgBkaXNjYXJkLWFsbABEaXNjYXJkIGFsbCBsb2NhbCBzeW1ib2xzAGRpc2NhcmQtbG9jYWxzAGRpc2NhcmQtbm9uZQB0cmFjZS1zeW1ib2wAVHJhY2UgbWVudGlvbnMgb2YgU1lNQk9MAHN0YXJ0LWdyb3VwAFN0YXJ0IGEgZ3JvdXAAZW5kLWdyb3VwAEVuZCBhIGdyb3VwAG5vLWFjY2VwdC11bmtub3duLWlucHV0LWFyY2gAbm8tYWRkLW5lZWRlZABuby1hcy1uZWVkZWQAYXNzZXJ0AEJkeW5hbWljAExpbmsgYWdhaW5zdCBzaGFyZWQgbGlicmFyaWVzAGNhbGxfc2hhcmVkAEJzdGF0aWMAZG4Abm9uX3NoYXJlZABCc3ltYm9saWMAQnN5bWJvbGljLWZ1bmN0aW9ucwBuby1jaGVjay1zZWN0aW9ucwBuby1jb3B5LWR0LW5lZWRlZC1lbnRyaWVzAGNyZWYAT3V0cHV0IGNyb3NzIHJlZmVyZW5jZSB0YWJsZQBTWU1CT0w9RVhQUkVTU0lPTgBEZWZpbmUgYSBzeW1ib2wAWz1TVFlMRV0AZW1iZWRkZWQtcmVsb2NzAEdlbmVyYXRlIGVtYmVkZGVkIHJlbG9jcwBUcmVhdCB3YXJuaW5ncyBhcyBlcnJvcnMAbm8tZmF0YWwtd2FybmluZ3MAQ2FsbCBTWU1CT0wgYXQgdW5sb2FkLXRpbWUAZm9yY2UtZXhlLXN1ZmZpeABuby1nYy1zZWN0aW9ucwBuby1wcmludC1nYy1zZWN0aW9ucwBoYXNoLXNpemU9PE5VTUJFUj4AUHJpbnQgb3B0aW9uIGhlbHAAQ2FsbCBTWU1CT0wgYXQgbG9hZC10aW1lAE1hcABXcml0ZSBhIG1hcCBmaWxlAG5vLWRlZmluZS1jb21tb24ARG8gbm90IGRlZmluZSBDb21tb24gc3RvcmFnZQBuby1kZW1hbmdsZQBEbyBub3QgZGVtYW5nbGUgc3ltYm9sIG5hbWVzAG5vLWtlZXAtbWVtb3J5AG5vLXVuZGVmaW5lZABuby1hbGxvdy1zaGxpYi11bmRlZmluZWQAYWxsb3ctbXVsdGlwbGUtZGVmaW5pdGlvbgBBbGxvdyBtdWx0aXBsZSBkZWZpbml0aW9ucwBuby11bmRlZmluZWQtdmVyc2lvbgBEaXNhbGxvdyB1bmRlZmluZWQgdmVyc2lvbgBkZWZhdWx0LXN5bXZlcgBDcmVhdGUgZGVmYXVsdCBzeW1ib2wgdmVyc2lvbgBkZWZhdWx0LWltcG9ydGVkLXN5bXZlcgBuby13YXJuLW1pc21hdGNoAG5vLXdhcm4tc2VhcmNoLW1pc21hdGNoAG5vLXdob2xlLWFyY2hpdmUAVHVybiBvZmYgLS13aG9sZS1hcmNoaXZlAG5vaW5oaWJpdC1leGVjAG5vaW5oaWJpdF9leGVjAG5vc3RkbGliAG9mb3JtYXQAU3BlY2lmeSB0YXJnZXQgb2Ygb3V0cHV0IGZpbGUAcHJpbnQtb3V0cHV0LWZvcm1hdABQcmludCBkZWZhdWx0IG91dHB1dCBmb3JtYXQAcHJpbnQtc3lzcm9vdABQcmludCBjdXJyZW50IHN5c3Jvb3QAcW1hZ2ljAHJlZHVjZS1tZW1vcnktb3ZlcmhlYWRzAG5vLXJlbGF4AHJldGFpbi1zeW1ib2xzLWZpbGUAcnBhdGgAcnBhdGgtbGluawBDcmVhdGUgYSBzaGFyZWQgbGlicmFyeQBCc2hhcmVhYmxlAHBpYy1leGVjdXRhYmxlAHNvcnQtY29tbW9uAFs9YXNjZW5kaW5nfGRlc2NlbmRpbmddAHNvcnRfY29tbW9uAHNvcnQtc2VjdGlvbgBuYW1lfGFsaWdubWVudABzcGFyZS1keW5hbWljLXRhZ3MAQ09VTlQAc3BsaXQtYnktZmlsZQBbPVNJWkVdAHNwbGl0LWJ5LXJlbG9jAFs9Q09VTlRdAHN0YXRzAFByaW50IG1lbW9yeSB1c2FnZSBzdGF0aXN0aWNzAHRhcmdldC1oZWxwAHRhc2stbGluawBEbyB0YXNrIGxldmVsIGxpbmtpbmcAdHJhZGl0aW9uYWwtZm9ybWF0AHNlY3Rpb24tc3RhcnQAU0VDVElPTj1BRERSRVNTAFNldCBhZGRyZXNzIG9mIG5hbWVkIHNlY3Rpb24AVGJzcwBTZXQgYWRkcmVzcyBvZiAuYnNzIHNlY3Rpb24AVGRhdGEAU2V0IGFkZHJlc3Mgb2YgLmRhdGEgc2VjdGlvbgBUdGV4dABTZXQgYWRkcmVzcyBvZiAudGV4dCBzZWN0aW9uAFR0ZXh0LXNlZ21lbnQAU2V0IGFkZHJlc3Mgb2YgdGV4dCBzZWdtZW50AFRyb2RhdGEtc2VnbWVudABTZXQgYWRkcmVzcyBvZiByb2RhdGEgc2VnbWVudABUbGRhdGEtc2VnbWVudABTZXQgYWRkcmVzcyBvZiBsZGF0YSBzZWdtZW50AHVucmVzb2x2ZWQtc3ltYm9scz08bWV0aG9kPgBbPU5VTUJFUl0AZGxsLXZlcmJvc2UAdmVyc2lvbi1zY3JpcHQAdmVyc2lvbi1leHBvcnRzLXNlY3Rpb24AZHluYW1pYy1saXN0LWRhdGEAZHluYW1pYy1saXN0LWNwcC1uZXcAZHluYW1pYy1saXN0LWNwcC10eXBlaW5mbwBVc2UgQysrIHR5cGVpbmZvIGR5bmFtaWMgbGlzdABkeW5hbWljLWxpc3QAUmVhZCBkeW5hbWljIGxpc3QAd2Fybi1jb21tb24Ad2Fybi1jb25zdHJ1Y3RvcnMAd2Fybi1tdWx0aXBsZS1ncAB3YXJuLW9uY2UAd2Fybi1zZWN0aW9uLWFsaWduAHdhcm4tc2hhcmVkLXRleHRyZWwAd2Fybi1hbHRlcm5hdGUtZW0Ad2Fybi11bnJlc29sdmVkLXN5bWJvbHMAZXJyb3ItdW5yZXNvbHZlZC1zeW1ib2xzAHdyYXAAaWdub3JlLXVucmVzb2x2ZWQtc3ltYm9sAHB1c2gtc3RhdGUAcG9wLXN0YXRlAHByaW50LW1lbW9yeS11c2FnZQBSZXBvcnQgdGFyZ2V0IG1lbW9yeSB1c2FnZQBvcnBoYW4taGFuZGxpbmcAPU1PREUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwrtAAAAAAADdu0AAAAAAAMK7QAAAAAAAwrtAAAAAAADCu0AAAAAAAMK7QAAAAAAAwrtAAAAAAADCu0AAAAAAAMK7QAAAAAAAwrtAAAAAAADCu0AAAAAAAMK7QAAAAAAAwrtAAAAAAADCu0AAAAAAAMK7QAAAAAAAwrtAAAAAAADCu0AA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ZHJlc3MgMHgldiBvZiAlQiBzZWN0aW9uIGAlcycgaXMgbm90IHdpdGhpbiByZWdpb24gYCVzJwoAAAAAAAAAACVYJVA6ICVCIHNlY3Rpb24gYCVzJyB3aWxsIG5vdCBmaXQgaW4gcmVnaW9uIGAlcycKAAAAAAAAJVAlRjogQ291bGQgbm90IGRlZmluZSBjb21tb24gc3ltYm9sIGAlVCc6ICVFCgAAQ29tbW9uIHN5bWJvbCAgICAgICBzaXplICAgICAgICAgICAgICBmaWxlCgoAAAAAJVA6JVM6IHdhcm5pbmc6IHJlZGVjbGFyYXRpb24gb2YgbWVtb3J5IHJlZ2lvbiBgJXMnCgAAAAAlUDolUzogd2FybmluZzogbWVtb3J5IHJlZ2lvbiBgJXMnIG5vdCBkZWNsYXJlZAoAAAAAAAAAACVGJVM6IG5vbiBjb25zdGFudCBvciBmb3J3YXJkIHJlZmVyZW5jZSBhZGRyZXNzIGV4cHJlc3Npb24gZm9yIHNlY3Rpb24gJXMKAAAAAAAAJVAlWDogSW50ZXJuYWwgZXJyb3Igb24gQ09GRiBzaGFyZWQgbGlicmFyeSBzZWN0aW9uICVzCgAlUCVGOiBlcnJvcjogbm8gbWVtb3J5IHJlZ2lvbiBzcGVjaWZpZWQgZm9yIGxvYWRhYmxlIHNlY3Rpb24gYCVzJwoAAAAAAAAlUDogd2FybmluZzogbm8gbWVtb3J5IHJlZ2lvbiBzcGVjaWZpZWQgZm9yIGxvYWRhYmxlIHNlY3Rpb24gYCVzJwoAAAAAAAAlUDogd2FybmluZzogY2hhbmdpbmcgc3RhcnQgb2Ygc2VjdGlvbiAlcyBieSAlbHUgYnl0ZXMKACVQOiB3YXJuaW5nOiBkb3QgbW92ZWQgYmFja3dhcmRzIGJlZm9yZSBgJXMnCgAAACVQJUY6IGNhbid0IHJlbGF4IHNlY3Rpb246ICVFCgAAJVglUDolUzogc2VjdGlvbiBoYXMgYm90aCBhIGxvYWQgYWRkcmVzcyBhbmQgYSBsb2FkIHJlZ2lvbgoAAAAAACVGJVA6JVM6IGVycm9yOiBhbGlhcyBmb3IgZGVmYXVsdCBtZW1vcnkgcmVnaW9uCgAAAAAAAAAAJUYlUDolUzogZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiBtZW1vcnkgcmVnaW9uIGFsaWFzIGAlcycKAAAAAAAAACVGJVA6JVM6IGVycm9yOiBtZW1vcnkgcmVnaW9uIGAlcycgZm9yIGFsaWFzIGAlcycgZG9lcyBub3QgZXhpc3QKAAAAAAAAACVQJUY6IGZhaWxlZCBjcmVhdGluZyBzZWN0aW9uIGAlcyc6ICVFCgAlUCVGOiBjYW4gbm90IGNyZWF0ZSBoYXNoIHRhYmxlOiAlRQoAAAAAJVAlRjogSWxsZWdhbCB1c2Ugb2YgYCVzJyBzZWN0aW9uCgAAAAAAACVQJUY6IG91dHB1dCBmb3JtYXQgJXMgY2Fubm90IHJlcHJlc2VudCBzZWN0aW9uIGNhbGxlZCAlczogJUUKAAAKTGlua2VyIHNjcmlwdCBhbmQgbWVtb3J5IG1hcAoKACVQOiB3YXJuaW5nOiBjb3VsZCBub3QgZmluZCBhbnkgdGFyZ2V0cyB0aGF0IG1hdGNoIGVuZGlhbm5lc3MgcmVxdWlyZW1lbnQKAAAAAAAAJVAlRjogY2Fubm90IG9wZW4gb3V0cHV0IGZpbGUgJXM6ICVFCgAAACVQJUY6JXM6IGNhbiBub3QgbWFrZSBvYmplY3QgZmlsZTogJUUKAAAlUCVGOiVzOiBjYW4gbm90IHNldCBhcmNoaXRlY3R1cmU6ICVFCgAAJVAlRjogaW52YWxpZCBjaGFyYWN0ZXIgJWMgKCVkKSBpbiBmbGFncwoAAAAAAAAAJUYlQjogZmlsZSBub3QgcmVjb2duaXplZDogJUUKAAAlRiVCOiBtZW1iZXIgJUIgaW4gYXJjaGl2ZSBpcyBub3QgYW4gb2JqZWN0CgAAAAAlRiVCOiBlcnJvciBhZGRpbmcgc3ltYm9sczogJUUKACVQOiB3YXJuaW5nOiAlcyBjb250YWlucyBvdXRwdXQgc2VjdGlvbnM7IGRpZCB5b3UgZm9yZ2V0IC1UPwoAAAAlRiVQOiVTOiBlcnJvcjogYWxpZ24gd2l0aCBpbnB1dCBhbmQgZXhwbGljaXQgYWxpZ24gc3BlY2lmaWVkCgAAJVglUDolUzogUEhEUlMgYW5kIEZJTEVIRFIgYXJlIG5vdCBzdXBwb3J0ZWQgd2hlbiBwcmlvciBQVF9MT0FEIGhlYWRlcnMgbGFjayB0aGVtCgAAAAAAACVYJVA6IHVua25vd24gbGFuZ3VhZ2UgYCVzJyBpbiB2ZXJzaW9uIGluZm9ybWF0aW9uCgAAAAAAJVglUDogYW5vbnltb3VzIHZlcnNpb24gdGFnIGNhbm5vdCBiZSBjb21iaW5lZCB3aXRoIG90aGVyIHZlcnNpb24gdGFncwoAJVglUDogZHVwbGljYXRlIHZlcnNpb24gdGFnIGAlcycKAAAAAAAAACVYJVA6IGR1cGxpY2F0ZSBleHByZXNzaW9uIGAlcycgaW4gdmVyc2lvbiBpbmZvcm1hdGlvbgoAJVAlRjogRmFpbGVkIHRvIGNyZWF0ZSBoYXNoIHRhYmxlCgAAAAAAACVQJUY6ICVzOiBwbHVnaW4gcmVwb3J0ZWQgZXJyb3IgYWZ0ZXIgYWxsIHN5bWJvbHMgcmVhZAoACkFzLW5lZWRlZCBsaWJyYXJ5IGluY2x1ZGVkIHRvIHNhdGlzZnkgcmVmZXJlbmNlIGJ5IGZpbGUgKHN5bWJvbCkKCgAAAAAAJVAlRjogUmVsb2NhdGFibGUgbGlua2luZyB3aXRoIHJlbG9jYXRpb25zIGZyb20gZm9ybWF0ICVzICglQikgdG8gZm9ybWF0ICVzICglQikgaXMgbm90IHN1cHBvcnRlZAoAAAAAAAAlUCVYOiAlcyBhcmNoaXRlY3R1cmUgb2YgaW5wdXQgZmlsZSBgJUInIGlzIGluY29tcGF0aWJsZSB3aXRoICVzIG91dHB1dAoAAAAAAAAAACVQJVg6IGZhaWxlZCB0byBtZXJnZSB0YXJnZXQgc3BlY2lmaWMgZGF0YSBvZiBmaWxlICVCCgAAJVglUDogdW5hYmxlIHRvIHJlYWQgLmV4cG9ydHMgc2VjdGlvbiBjb250ZW50cwoAJUYlUDogaW52YWxpZCBvcmlnaW4gZm9yIG1lbW9yeSByZWdpb24gJXMKAAAAAAAAJUYlUDogaW52YWxpZCBsZW5ndGggZm9yIG1lbW9yeSByZWdpb24gJXMKAAAAAAAAJUYlUDogJXMgbm90IGZvdW5kIGZvciBpbnNlcnQKAAAlWCVQOiBlcnJvcjogdW5wbGFjZWQgb3JwaGFuIHNlY3Rpb24gYCVBJyBmcm9tIGAlQicuCgAAACVQOiB3YXJuaW5nOiBvcnBoYW4gc2VjdGlvbiBgJUEnIGZyb20gYCVCJyBiZWluZyBwbGFjZWQgaW4gc2VjdGlvbiBgJXMnLgoAAAAAAAAAJUYlUDogYmZkX3JlY29yZF9waGRyIGZhaWxlZDogJUUKAAAAAAAAACVYJVA6IHNlY3Rpb24gYCVzJyBhc3NpZ25lZCB0byBub24tZXhpc3RlbnQgcGhkciBgJXMnCgAAJUYlUDogbm8gc2VjdGlvbnMgYXNzaWduZWQgdG8gcGhkcnMKAAAAACVYJVA6IHNlY3Rpb24gJXMgTE1BIFslViwlVl0gb3ZlcmxhcHMgc2VjdGlvbiAlcyBMTUEgWyVWLCVWXQoAAAAlWCVQOiBzZWN0aW9uICVzIFZNQSBbJVYsJVZdIG92ZXJsYXBzIHNlY3Rpb24gJXMgVk1BIFslViwlVl0KAAAAJVglUDogcmVnaW9uIGAlcycgb3ZlcmZsb3dlZCBieSAlbGQgYnl0ZXMKAAAAAAAAJVAlWDogcmVxdWlyZWQgc3ltYm9sIGAlcycgbm90IGRlZmluZWQKACVQJUY6IGdjLXNlY3Rpb25zIHJlcXVpcmVzIGVpdGhlciBhbiBlbnRyeSBvciBhbiB1bmRlZmluZWQgc3ltYm9sCgAAAAAAACVQJUY6JXM6IGNhbid0IHNldCBzdGFydCBhZGRyZXNzCgAAAAAAAAAlUCVGOiBjYW4ndCBzZXQgc3RhcnQgYWRkcmVzcwoAACVQOiB3YXJuaW5nOiBjYW5ub3QgZmluZCBlbnRyeSBzeW1ib2wgJXM7IGRlZmF1bHRpbmcgdG8gJVYKAAAAAAAlUDogd2FybmluZzogY2Fubm90IGZpbmQgZW50cnkgc3ltYm9sICVzOyBub3Qgc2V0dGluZyBzdGFydCBhZGRyZXNzCgAAAAAlWCVQOiB1bmFibGUgdG8gZmluZCB2ZXJzaW9uIGRlcGVuZGVuY3kgYCVzJwoAAABNZW1vcnkgcmVnaW9uICAgICAgICAgVXNlZCBTaXplICBSZWdpb24gU2l6ZSAgJSVhZ2UgVXNlZAoALmluaXQALmZpbmkAJUYlUDogaW52YWxpZCBkYXRhIHN0YXRlbWVudAoAMHglViAgIAAgICAgICAgICAgICAgJVQKADB4JVYgJVcgJUIKACVXIChzaXplIGJlZm9yZSByZWxheGluZykKAEZhaWwgd2l0aCAlZAoAIFNPUlQgKENPTlNUUlVDVE9SUykKACBDT05TVFJVQ1RPUlMKAFNPUlQoAEVYQ0xVREVfRklMRSglcwApIABBZGRyZXNzIG9mIHNlY3Rpb24gJXMgc2V0IHRvIAAgQ1JFQVRFX09CSkVDVF9TWU1CT0xTCgAgRklMTCBtYXNrIDB4ACUwMngAMHglViAlVyAlcyAweCV2ADB4JVYgJVcgUkVMT0MgJXMgACVzKwAgKmZpbGwqADB4JVYgJVcgAAolcwAweCVWICVXACBsb2FkIGFkZHJlc3MgMHglVgBbMHglVl0AW3VucmVzb2x2ZWRdAFshcHJvdmlkZV0AKnVuZGVmKiAgIAAgICAgICAgICAgICAgICAgAFRBUkdFVCglcykKAE9VVFBVVCglcwBMT0FEICVzCgBTVEFSVCBHUk9VUAoARU5EIEdST1VQCgBJTlNFUlQgJXMgJXMKAGVsZjMyLWJpZwBlbGY2NC1iaWcAZWxmMzItbGl0dGxlAGVsZjY0LWxpdHRsZQAKQWxsb2NhdGluZyBjb21tb24gc3ltYm9scwoAJWx4ACUwMTZseAA/KlsALmluaXRfYXJyYXkuAC5maW5pX2FycmF5LgAuY3RvcnMuAC5kdG9ycy4AL0RJU0NBUkQvAC1sAGxvYWQgYmFzZQAqQUJTKgAKTWVtb3J5IENvbmZpZ3VyYXRpb24KCgBBdHRyaWJ1dGVzAExlbmd0aABPcmlnaW4ATmFtZQAlLTE2cyAlLTE4cyAlLTE4cyAlcwoACkRpc2NhcmRlZCBpbnB1dCBzZWN0aW9ucwoKACUtMTZzIAAweCVzIAAgIQAsOgAlUCVGOiB0YXJnZXQgJXMgbm90IGZvdW5kCgAlQjogZmlsZSBub3QgcmVjb2duaXplZDogJUUKACVCOiBtYXRjaGluZyBmb3JtYXRzOgAlRgoAJUkKAEFMTABDT01NT04Ac3Vic2VjdGlvbiBhbGlnbm1lbnQAKj9bACVQJUY6IG11bHRpcGxlIFNUQVJUVVAgZmlsZXMKAF9fc3RvcF8lcwBfX3N0YXJ0XyVzAHByb2dyYW0gaGVhZGVyIHR5cGUAX19sb2FkX3N0YXJ0XyVzAF9fbG9hZF9zdG9wXyVzAEMrKwBKYXZhACVCIAAoJVQpCgAuZXhwb3J0cwBwaGRyIGZsYWdzAHBoZHIgbG9hZCBhZGRyZXNzAC5zdGFydG9mLiVzAC5zaXplb2YuJXMAdHlwZWluZm8gbmFtZSBmb3IqAHR5cGVpbmZvIGZvcioAb3BlcmF0b3IgbmV3KgBvcGVyYXRvciBkZWxldGUqAFNBTkVfRVhQUgAlWCVQOiB1bmtub3duIGZlYXR1cmUgYCVzJwoAJTE2czogACUxMGx1IEdCACUxMGx1IE1CACUxMGx1IEtCACAlMTBsdSBCACAgICAlNi4yZiUlCgAAAAAAAABZQHNyZWMASUVFRQBpZWVlAENPRkYAY29mZi1tNjhrACVQJUY6IHVua25vd24gZm9ybWF0IHR5cGUgJXMKAEdMT0JBTF8AClNldCAgICAgICAgICAgICAgICAgU3ltYm9sCgoAJUcKAAAAJVAlWDogRGlmZmVyZW50IHJlbG9jcyB1c2VkIGluIHNldCAlcwoAACVQJVg6IERpZmZlcmVudCBvYmplY3QgZmlsZSBmb3JtYXRzIGNvbXBvc2luZyBzZXQgJXMKAAAAJVAlWDogJXMgZG9lcyBub3Qgc3VwcG9ydCByZWxvYyAlcyBmb3Igc2V0ICVzCgAAJVAlWDogVW5zdXBwb3J0ZWQgc2l6ZSAlZCBmb3Igc2V0ICVzCgAAACVYJUg6IHJlbG9jIHJlZmVycyB0byBzeW1ib2wgYCVUJyB3aGljaCBpcyBub3QgYmVpbmcgb3V0cHV0CgAAAAAlWCVIOiBkYW5nZXJvdXMgcmVsb2NhdGlvbjogJXMKACVJOiBubyBuZXcgSVIgc3ltYm9scyB0byBjbGFpbWkKAAAAAAAAAABBcmNoaXZlIG1lbWJlciBpbmNsdWRlZCB0byBzYXRpc2Z5IHJlZmVyZW5jZSBieSBmaWxlIChzeW1ib2wpCgoAIGFkZGl0aW9uYWwgcmVsb2NhdGlvbiBvdmVyZmxvd3Mgb21pdHRlZCBmcm9tIHRoZSBvdXRwdXQKAAAAAAAAACByZWxvY2F0aW9uIHRydW5jYXRlZCB0byBmaXQ6ICVzIGFnYWluc3QgdW5kZWZpbmVkIHN5bWJvbCBgJVQnAAAgcmVsb2NhdGlvbiB0cnVuY2F0ZWQgdG8gZml0OiAlcyBhZ2FpbnN0IHN5bWJvbCBgJVQnIGRlZmluZWQgaW4gJUEgc2VjdGlvbiBpbiAlQgAAAAAAAAAAL3Zhci90bXAvcG9ydGFnZS9jcm9zcy1hYXJjaDY0LWNyb3MtbGludXgtZ251L2JpbnV0aWxzLTIuMjcuMC1yMjYvd29yay9iaW51dGlscy0yLjI3LjAvYmludXRpbHMtMi4yNy9sZC9sZG1haW4uYwAAAAAAAAAAIHJlbG9jYXRpb24gdHJ1bmNhdGVkIHRvIGZpdDogJXMgYWdhaW5zdCBgJVQnAAAAJVglQzogbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgJVQnCgAAAAAAACVQOiBEaXNhYmxpbmcgcmVsYXhhdGlvbjogaXQgd2lsbCBub3Qgd29yayB3aXRoIG11bHRpcGxlIGRlZmluaXRpb25zCgAAACVCJUY6IGNvdWxkIG5vdCByZWFkIHJlbG9jczogJUUKAAAAAAAAAAAlUDogd2FybmluZzogZ2xvYmFsIGNvbnN0cnVjdG9yICVzIHVzZWQKAAAAAAAAAAAlUCVGOiBCRkQgYmFja2VuZCBlcnJvcjogQkZEX1JFTE9DX0NUT1IgdW5zdXBwb3J0ZWQKAAAAACVCOiB3YXJuaW5nOiBkZWZpbml0aW9uIG9mIGAlVCcgb3ZlcnJpZGluZyBjb21tb24KAAAAAAAAJUI6IHdhcm5pbmc6IGNvbW1vbiBvZiBgJVQnIG92ZXJyaWRkZW4gYnkgZGVmaW5pdGlvbgoAAAAlQjogd2FybmluZzogY29tbW9uIG9mIGAlVCcgb3ZlcnJpZGRlbiBieSBsYXJnZXIgY29tbW9uCgAAAAAAAAAAJUI6IHdhcm5pbmc6IGxhcmdlciBjb21tb24gaXMgaGVyZQoAAAAAACVCOiB3YXJuaW5nOiBjb21tb24gb2YgYCVUJyBvdmVycmlkaW5nIHNtYWxsZXIgY29tbW9uCgAAJUI6IHdhcm5pbmc6IHNtYWxsZXIgY29tbW9uIGlzIGhlcmUKAAAAACVCOiB3YXJuaW5nOiBtdWx0aXBsZSBjb21tb24gb2YgYCVUJwoAAAAlQjogd2FybmluZzogcHJldmlvdXMgY29tbW9uIGlzIGhlcmUKAAAAJUIlRjogY291bGQgbm90IHJlYWQgc3ltYm9sczogJUUKAAAAAAAAAC91c3Ivc2hhcmUvYmludXRpbHMtZGF0YS9hYXJjaDY0LWNyb3MtbGludXgtZ251LzIuMjcuMC9sb2NhbGUAAAAvdXNyL3g4Nl82NC1wYy1saW51eC1nbnUvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9iaW51dGlscy1iaW4vMi4yNy4wAAAAAAAvdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvYmluACVYJVA6IGNhbid0IHNldCBCRkQgZGVmYXVsdCB0YXJnZXQgdG8gYCVzJzogJUUKAAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoAAAAAJVAlRjogY2Fubm90IG9wZW4gbWFwIGZpbGUgJXM6ICVFCgAAAAAAACVQOiBsaW5rIGVycm9ycyBmb3VuZCwgZGVsZXRpbmcgZXhlY3V0YWJsZSBgJXMnCgAAAAAAAAAAJVAlRjogdW5hYmxlIHRvIG9wZW4gZm9yIHNvdXJjZSBvZiBjb3B5IGAlcycKAAAAJVAlRjogdW5hYmxlIHRvIG9wZW4gZm9yIGRlc3RpbmF0aW9uIG9mIGNvcHkgYCVzJwoAAAAAAAAlczogdG90YWwgdGltZSBpbiBsaW5rOiAlbGQuJTA2bGQKAAAAAAAAJVAlRjogYmZkX2hhc2hfdGFibGVfaW5pdCBmYWlsZWQ6ICVFCgAAACVQJUY6IGJmZF9oYXNoX2xvb2t1cCBmYWlsZWQ6ICVFCgAAAAAAAAAlWCVDOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGAlVCcKAAAAAAAAJUM6IHdhcm5pbmc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYCVUJwoAAAAAAAAAJVglRDogbW9yZSB1bmRlZmluZWQgcmVmZXJlbmNlcyB0byBgJVQnIGZvbGxvdwoAJUQ6IHdhcm5pbmc6IG1vcmUgdW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gYCVUJyBmb2xsb3cKAAAlWCVCOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGAlVCcKAAAAAAAAJUI6IHdhcm5pbmc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYCVUJwoAAAAAAAAAJVglQjogbW9yZSB1bmRlZmluZWQgcmVmZXJlbmNlcyB0byBgJVQnIGZvbGxvdwoAJUI6IHdhcm5pbmc6IG1vcmUgdW5kZWZpbmVkIHJlZmVyZW5jZXMgdG8gYCVUJyBmb2xsb3cKAAAlWCVQOiBlcnJvcjogZHVwbGljYXRlIHJldGFpbi1zeW1ib2xzLWZpbGUKAAAAAAAlUCVGOiBiZmRfaGFzaF9sb29rdXAgZm9yIGluc2VydGlvbiBmYWlsZWQ6ICVFCgAlUDogYC1yZXRhaW4tc3ltYm9scy1maWxlJyBvdmVycmlkZXMgYC1zJyBhbmQgYC1TJwoAJUI6IHJlZmVyZW5jZSB0byAlcwoAJUI6IGRlZmluaXRpb24gb2YgJXMKACVzKCVzKQAvdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUAJVglSDoAKyV2ACVEOiBmaXJzdCBkZWZpbmVkIGhlcmUKACVDOiAlcyVzCgAlQjogd2FybmluZzogY29tbW9uIGlzIGhlcmUKACVCOiB3YXJuaW5nOiBkZWZpbmVkIGhlcmUKAHVzaW5nIG11bHRpcGxlIGdwIHZhbHVlcwAlUDogJXMlcwoAJUI6ICVzJXMKAGFhcmNoNjRsaW51eAAtLXN5c3Jvb3Q9AENPTExFQ1RfTk9fREVNQU5HTEUAX2luaXQAX2ZpbmkATERFTVVMQVRJT04ALW0AJVAlRjogbWlzc2luZyBhcmd1bWVudCB0byAtbQoALW1pcHMxAC1taXBzMgAtbWlwczMALW1pcHM0AC1taXBzNQAtbWlwczMyAC1taXBzMzJyMgAtbWlwczMycjYALW1pcHM2NAAtbWlwczY0cjIALW1pcHM2NHI2AC1tNDg2AGJ1aWx0IGluIGxpbmtlciBzY3JpcHQAdXNpbmcgZXh0ZXJuYWwgbGlua2VyIHNjcmlwdDoAdXNpbmcgaW50ZXJuYWwgbGlua2VyIHNjcmlwdDoAJVAlRjogbm8gaW5wdXQgZmlsZXMKACVQOiBtb2RlICVzCgAlRiVCOiBmaW5hbCBjbG9zZSBmYWlsZWQ6ICVFCgAuZXhlAC5kbGwAJVA6IEVycm9yIHdyaXRpbmcgZmlsZSBgJXMnCgAlUDogRXJyb3IgY2xvc2luZyBmaWxlIGAlcycKACVzOiBkYXRhIHNpemUgJWxkCgAlWCVQOiAlczogJUUKAGEub3V0AFiqQQAAAAAAMKpBAAAAAAAwqkEAAAAAANCpQQAAAAAA0KlBAAAAAACwqEEAAAAAAG11bHRpcGxlX2RlZmluaXRpb24AcmVsb2Nfb3ZlcmZsb3cAAAAAAAAvdmFyL3RtcC9wb3J0YWdlL2Nyb3NzLWFhcmNoNjQtY3Jvcy1saW51eC1nbnUvYmludXRpbHMtMi4yNy4wLXIyNi93b3JrL2JpbnV0aWxzLTIuMjcuMC9iaW51dGlscy0yLjI3L2xkL2xkd3JpdGUuYwAAAAAAAAAlUCVGOiBiZmRfbmV3X2xpbmtfb3JkZXIgZmFpbGVkCgAAAAAAAAAAJUYlUDogY2Fubm90IGNyZWF0ZSBzcGxpdCBzZWN0aW9uIG5hbWUgZm9yICVzCgAAJUYlUDogY2xvbmUgc2VjdGlvbiBmYWlsZWQ6ICVFCgAuc3RhYgBzdHIAJEdEQl9TVFJJTkdTJAAkR0RCX1NZTUJPTFMkACVGJVA6IGZpbmFsIGxpbmsgZmFpbGVkOiAlRQoAAAAAAAAkwEEAAAAAACTAQQAAAAAAa8FBAAAAAABQwUEAAAAAAEDAQQAAAAAA4MBBAAAAAADgwEEAAAAAALDAQQAAAAAAgMBBAAAAAAAQwUEAAAAAAGJ1aWxkX2xpbmtfb3JkZXIAAAAAAAAAACVQJUY6IGJmZF9oYXNoX2FsbG9jYXRlIGZhaWxlZCBjcmVhdGluZyBzeW1ib2wgJXMKAAAAAAAAL3Zhci90bXAvcG9ydGFnZS9jcm9zcy1hYXJjaDY0LWNyb3MtbGludXgtZ251L2JpbnV0aWxzLTIuMjcuMC1yMjYvd29yay9iaW51dGlscy0yLjI3LjAvYmludXRpbHMtMi4yNy9sZC9sZGV4cC5jACVQOiB3YXJuaW5nOiBhZGRyZXNzIG9mIGAlcycgaXNuJ3QgbXVsdGlwbGUgb2YgbWF4aW11bSBwYWdlIHNpemUKAAAAAAAAACVGJVMgY2FuIG5vdCBQUk9WSURFIGFzc2lnbm1lbnQgdG8gbG9jYXRpb24gY291bnRlcgoAAAAAJUYlUyBpbnZhbGlkIGFzc2lnbm1lbnQgdG8gbG9jYXRpb24gY291bnRlcgoAAAAAJUYlUyBhc3NpZ25tZW50IHRvIGxvY2F0aW9uIGNvdW50ZXIgaW52YWxpZCBvdXRzaWRlIG9mIFNFQ1RJT05TCgAAAAAAAAAAJUYlUyBjYW5ub3QgbW92ZSBsb2NhdGlv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Y2g2NC1jcm9zLWxpbnV4LWdudS9saWIAJVAlRjogY2Fubm90IG9wZW4gbGlua2VyIHNjcmlwdCBmaWxlICVzOiAlRQoAAAAAJUYlUDogaW52YWxpZCBCRkQgdGFyZ2V0IGAlcycKAAAlUDogc2tpcHBpbmcgaW5jb21wYXRpYmxlICVzIHdoZW4gc2VhcmNoaW5nIGZvciAlcwoAAAAAACVGJVA6IGF0dGVtcHRlZCBzdGF0aWMgbGluayBvZiBkeW5hbWljIG9iamVjdCBgJXMnCgAAAAAAJVAlRjogY2Fubm90IHJlcHJlc2VudCBtYWNoaW5lIGAlcycKAAAAAC92YXIvdG1wL3BvcnRhZ2UvY3Jvc3MtYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9iaW51dGlscy0yLjI3LjAtcjI2L3dvcmsvYmludXRpbHMtMi4yNy4wL2JpbnV0aWxzLTIuMjcvbGQvbGRjcmVmLmMAAAAAAAAAACVYJUM6IHByb2hpYml0ZWQgY3Jvc3MgcmVmZXJlbmNlIGZyb20gJXMgdG8gYCVUJyBpbiAlcwoAJVA6IHN5bWJvbCBgJVQnIG1pc3NpbmcgZnJvbSBtYWluIGhhc2ggdGFibGUKAAAAJVglUDogYmZkX2hhc2hfdGFibGVfaW5pdCBvZiBjcmVmIHRhYmxlIGZhaWxlZDogJUUKAAAAAAAlWCVQOiBjcmVmX2hhc2hfbG9va3VwIGZhaWxlZDogJUUKACVYJVA6IGNyZWYgYWxsb2MgZmFpbGVkOiAlRQoACkNyb3NzIFJlZmVyZW5jZSBUYWJsZQoKAFN5bWJvbABGaWxlCgBObyBzeW1ib2xzCgAAAAAAAAAlUCVGOiBwbHVnaW5fc3RyZHVwIGZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnk6ICVzCgAAAAAAAC92YXIvdG1wL3BvcnRhZ2UvY3Jvc3MtYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9iaW51dGlscy0yLjI3LjAtcjI2L3dvcmsvYmludXRpbHMtMi4yNy4wL2JpbnV0aWxzLTIuMjcvbGQvcGx1Z2luLmMAAAAAAAAAACVQJUY6IHVuc3VwcG9ydGVkIGlucHV0IGZpbGUgc2l6ZTogJXMgKCVsZCBieXRlcykKAAAAAAAAJVAlRjogdW5rbm93biBFTEYgc3ltYm9sIHZpc2liaWxpdHk6ICVkIQoAAAAAAAAAJVAlRjogJXM6IG5vbi1FTEYgc3ltYm9sIGluIEVMRiBCRkQhCgAAACVQJUY6ICVzOiBwbHVnaW4gc3ltYm9sIHRhYmxlIGNvcnJ1cHQgKHN5bSB0eXBlICVkKQoAAAAAJVA6ICVCOiBzeW1ib2wgYCVzJyBkZWZpbml0aW9uOiAlZCwgdmlzaWJpbGl0eTogJWQsIHJlc29sdXRpb246ICVkCgAAAAAAY291bGQgbm90IGNyZWF0ZSBkdW1teSBJUiBiZmQ6ICVGJUUKAAAAACVQJUY6IHBsdWdpbiBmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBpbnB1dDogJXMKAAAAJVAlRjogJXM6IHBsdWdpbiByZXBvcnRlZCBlcnJvciBjbGFpbWluZyBmaWxlCgAAJVAlRjogJXM6IGVycm9yIGxvYWRpbmcgcGx1Z2luOiAlcwoAAAAAACVQOiAlczogZXJyb3IgaW4gcGx1Z2luIGNsZWFudXA6ICVkIChpZ25vcmVkKQoAQAAuZ251LmxpbmtvbmNlLnQuACVQJUYAJVAlWAAlUDogd2FybmluZzogADogZXJyb3I6IAAgKHN5bWJvbCBmcm9tIHBsdWdpbikAPG5vIHBsdWdpbj4AcGFzcy10aHJvdWdoPQBfb25sb2FkACVQJUY6ICVzOiBwbHVnaW4gZXJyb3I6ICVkCgBgK0IAAAAAAOAsQgAAAAAAyCxCAAAAAAAwLEIAAAAAAAAsQgAAAAAAoztCAAAAAACWO0IAAAAAAKM7QgAAAAAAbTtCAAAAAACjO0IAAAAAAGA7QgAAAAAAUztCAAAAAABGO0IAAAAAADk7QgAAAAAALDtCAAAAAAAfO0IAAAAAABI7QgAAAAAABTtCAAAAAAD4OkIAAAAAAOs6QgAAAAAA2zpCAAAAAADOOkIAAAAAAME6QgAAAAAAtDpCAAAAAACjO0IAAAAAAKM7QgAAAAAAoztCAAAAAACjO0IAAAAAAKM7QgAAAAAAoztCAAAAAADcOEIAAAAAAGdldF9zeW1ib2xzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAEQAAAAMAAAAPAAAABQAAAAYAAAAHAAAACAAAAAwAAAASAAAADQAAAAkAAAAZAAAACgAAAA4AAAAQAAAAbWQ1AHNoYTEAdXVpZAAvZGV2L3VyYW5kb20AAC8qIFNjcmlwdCBmb3IgbGQgLVVyOiBsaW5rIHcvb3V0IHJlbG9jYXRpb24sIGRvIGNyZWF0ZSBjb25zdHJ1Y3RvcnMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWxpdHRsZWFhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCiAvKiBGb3Igc29tZSByZWFzb24sIHRoZSBTb2xhcmlzIGxpbmtlciBtYWtlcyBiYWQgZXhlY3V0YWJsZXMKICBpZiBnbGQgLXIgaXMgdXNlZCBhbmQgdGhlIGludGVybWVkaWF0ZSBmaWxlIGhhcyBzZWN0aW9ucyBzdGFydGluZwogIGF0IG5vbi16ZXJvIGFkZHJlc3Nlcy4gIENvdWxkIGJlIGEgU29sYXJpcyBsZCBidWcsIGNvdWxkIGJlIGEgR05VIGxkCiAgYnVnLiAgQnV0IGZvciBub3cgYXNzaWduaW5nIHRoZSB6ZXJvIHZtYXMgd29ya3MuICAqLwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLmludGVycCAgICAgICAwIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAwIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAwIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgMCA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAwIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gIDAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgMDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgMDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAwIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgIDAgOiB7ICooLnJlbGEudGV4dCkgfQogIC5yZWxhLmZpbmkgICAgMCA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAwIDogeyAqKC5yZWxhLnJvZGF0YSkgfQogIC5yZWxhLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8pIH0KICAucmVsYS5kYXRhICAgIDAgOiB7ICooLnJlbGEuZGF0YSkgfQogIC5yZWxhLnRkYXRhCTAgOiB7ICooLnJlbGEudGRhdGEpIH0KICAucmVsYS50YnNzCTAgOiB7ICooLnJlbGEudGJzcykgfQogIC5yZWxhLmN0b3JzICAgMCA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgMCA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgMCA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgIDAgOiB7ICooLnJlbGEuYnNzKSB9CiAgLnJlbGEuaWZ1bmMgICAwIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgIDAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgIDAgOgogIHsKICAgICooLnRleHQgLnN0dWIpCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIC5yb2RhdGEgICAgICAgMCA6IHsgKigucm9kYXRhKSB9CiAgLnJvZGF0YTEgICAgICAwIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAgfQogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgMCA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdudV9leHRhYiAgICAwIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkwIDogeyAqKC50ZGF0YSkgfQogIC50YnNzCQkwIDogeyAqKC50YnNzKSB9CiAgLnByZWluaXRfYXJyYXkgICAwIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmpjciAgICAgICAgICAwIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmR5bmFtaWMgICAgICAwIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAwIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuZ290LnBsdCAgICAgIDAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgMCA6CiAgewogICAgKiguZGF0YSkKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgIDAgOiB7ICooLmRhdGExKSB9CiAgLmJzcyAgICAgICAgICAwIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICB9CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQp9CgoAAC8qIFNjcmlwdCBmb3IgbGQgLXI6IGxpbmsgd2l0aG91dCByZWxvY2F0aW9uICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGY2NC1saXR0bGVhYXJjaDY0IiwgImVsZjY0LWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjY0LWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0KQogLyogRm9yIHNvbWUgcmVhc29uLCB0aGUgU29sYXJpcyBsaW5rZXIgbWFrZXMgYmFkIGV4ZWN1dGFibGVzCiAgaWYgZ2xkIC1yIGlzIHVzZWQgYW5kIHRoZSBpbnRlcm1lZGlhdGUgZmlsZSBoYXMgc2VjdGlvbnMgc3RhcnRpbmcKICBhdCBub24temVybyBhZGRyZXNzZXMuICBDb3VsZCBiZSBhIFNvbGFyaXMgbGQgYnVnLCBjb3VsZCBiZSBhIEdOVSBsZAogIGJ1Zy4gIEJ1dCBmb3Igbm93IGFzc2lnbmluZyB0aGUgemVybyB2bWFzIHdvcmtzLiAgKi8KU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC5pbnRlcnAgICAgICAgMCA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgMCA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgMCA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgIDAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgMCA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAwIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kIDA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yIDA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbGEudGV4dCAgICAwIDogeyAqKC5yZWxhLnRleHQpIH0KICAucmVsYS5maW5pICAgIDAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWxhLnJvZGF0YSAgMCA6IHsgKigucmVsYS5yb2RhdGEpIH0KICAucmVsYS5kYXRhLnJlbC5ybyAwIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YSAgICAwIDogeyAqKC5yZWxhLmRhdGEpIH0KICAucmVsYS50ZGF0YQkwIDogeyAqKC5yZWxhLnRkYXRhKSB9CiAgLnJlbGEudGJzcwkwIDogeyAqKC5yZWxhLnRic3MpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgIDAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgIDAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAwIDogeyAqKC5yZWxhLmJzcykgfQogIC5yZWxhLmlmdW5jICAgMCA6IHsgKigucmVsYS5pZnVuYykgfQogIC5yZWxhLnBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAwIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAwIDoKICB7CiAgICAqKC50ZXh0IC5zdHViKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICAucm9kYXRhICAgICAgIDAgOiB7ICooLnJvZGF0YSkgfQogIC5yb2RhdGExICAgICAgMCA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiIDAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nbnVfZXh0YWIgICAgMCA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJMCA6IHsgKigudGRhdGEpIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5wcmVpbml0X2FycmF5ICAgMCA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLmdvdC5wbHQgICAgICAwIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgIDAgOgogIHsKICAgICooLmRhdGEpCiAgfQogIC5kYXRhMSAgICAgICAgMCA6IHsgKiguZGF0YTEpIH0KICAuYnNzICAgICAgICAgIDAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MpCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogIH0KICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9Cn0KCgAAAAAAAAAALyogU2NyaXB0IGZvciAtTjogbWl4IHRleHQgYW5kIGRhdGEgb24gc2FtZSBwYWdlOyBkb24ndCBhbGlnbiBkYXRhICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGY2NC1saXR0bGVhYXJjaDY0IiwgImVsZjY0LWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjY0LWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0KQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliNjQiKTsgU0VBUkNIX0RJUigiPS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSAuOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gNjQgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oNjQgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTig2NCAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC1uOiBtaXggdGV4dCBhbmQgZGF0YSBvbiBzYW1lIHBhZ2UgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWxpdHRsZWFhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2MgLXogbm93IC16IHJlbHJvOiBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlLCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWxpdHRsZWFhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAALyogU2NyaXB0IGZvciAtcGllIC16IGNvbWJyZWxvYzogcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZSwgY29tYmluZSAmIHNvcnQgcmVsb2NzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGY2NC1saXR0bGVhYXJjaDY0IiwgImVsZjY0LWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjY0LWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0KQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliNjQiKTsgU0VBUkNIX0RJUigiPS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAC8qIFNjcmlwdCBmb3IgbGQgLXBpZTogbGluayBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGY2NC1saXR0bGVhYXJjaDY0IiwgImVsZjY0LWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjY0LWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0KQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliNjQiKTsgU0VBUkNIX0RJUigiPS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmlmdW5jICAgICA6IHsgKigucmVsYS5pZnVuYykgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDI0LCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gNjQgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oNjQgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTig2NCAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgLS1zaGFyZWQgLXogY29tYnJlbG9jIC16IG5vdyAteiByZWxybzogc2hhcmVkIGxpYnJhcnksIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtbGl0dGxlYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyA2NCAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTig2NCAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIC0tc2hhcmVkIC16IGNvbWJyZWxvYzogc2hhcmVkIGxpYnJhcnksIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtbGl0dGxlYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAvKiBTY3JpcHQgZm9yIGxkIC0tc2hhcmVkOiBsaW5rIHNoYXJlZCBsaWJyYXJ5ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGY2NC1saXR0bGVhYXJjaDY0IiwgImVsZjY0LWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjY0LWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0KQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliNjQiKTsgU0VBUkNIX0RJUigiPS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMjQsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyA2NCAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTig2NCAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAC8qIFNjcmlwdCBmb3IgLXogY29tYnJlbG9jIC16IG5vdyAteiByZWxybzogY29tYmluZSBhbmQgc29ydCByZWxvYyBzZWN0aW9ucyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtbGl0dGxlYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyA2NCAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTig2NCAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC16IGNvbWJyZWxvYzogY29tYmluZSBhbmQgc29ydCByZWxvYyBzZWN0aW9ucyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtbGl0dGxlYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAvKiBEZWZhdWx0IGxpbmtlciBzY3JpcHQsIGZvciBub3JtYWwgZXhlY3V0YWJsZXMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWxpdHRsZWFhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAACVQJUY6IC0tanVzdC1zeW1ib2xzIG1heSBub3QgYmUgdXNlZCBvbiBEU086ICVCCgAAAAAAAAAAICAtLW5vLWVudW0tc2l6ZS13YXJuaW5nICAgICAgRG9uJ3Qgd2FybiBhYm91dCBvYmplY3RzIHdpdGggaW5jb21wYXRpYmxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBzaXplcwoAAAAAICAtLW5vLXdjaGFyLXNpemUtd2FybmluZyAgICAgRG9uJ3Qgd2FybiBhYm91dCBvYmplY3RzIHdpdGggaW5jb21wYXRpYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y2hhcl90IHNpemVzCgAAICAtLXBpYy12ZW5lZXIgICAgICAgICAgICAgICAgQWx3YXlzIGdlbmVyYXRlIFBJQyBpbnRlcndvcmtpbmcgdmVuZWVycwoAICAgLS1zdHViLWdyb3VwLXNpemU9TiAgIE1heGltdW0gc2l6ZSBvZiBhIGdyb3VwIG9mIGlucHV0IHNlY3Rpb25zIHRoYXQgY2FuIGJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgYnkgb25lIHN0dWIgc2VjdGlvbi4gIEEgbmVnYXRpdmUgdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRlcyBhbGwgc3R1YnMgYWZ0ZXIgdGhlaXIgYnJhbmNoZXMgKHdpdGggYQogICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCBzaXplIG9mIC1OKSwgd2hpbGUgYSBwb3NpdGl2ZSB2YWx1ZSBhbGxvd3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdvIGdyb3VwcyBvZiBpbnB1dCBzZWN0aW9ucywgb25lIGJlZm9yZSwgYW5kIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlciBlYWNoIHN0dWIgc2VjdGlvbi4gIFZhbHVlcyBvZiArLy0xIGluZGljYXRlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBsaW5rZXIgc2hvdWxkIGNob29zZSBzdWl0YWJsZSBkZWZhdWx0cy4KAAAAAAAAAAAgIC0tZml4LWNvcnRleC1hNTMtODM1NzY5ICAgICAgRml4IGVycmF0dW0gODM1NzY5CgAAAAAAACAgLS1maXgtY29ydGV4LWE1My04NDM0MTkgICAgICBGaXggZXJyYXR1bSA4NDM0MTkKAAAAAAAAICAtLW5vLWFwcGx5LWR5bmFtaWMtcmVsb2NzCSAgIERvIG5vdCBhcHBseSBsaW5rLXRpbWUgdmFsdWVzIGZvciBkeW5hbWljIHJlbG9jYXRpb25zCgAAACVQJUY6IGludmFsaWQgLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucyBvcHRpb246IGAlcycKAAAAJVAlRjogaW52YWxpZCBoYXNoIHN0eWxlIGAlcycKAAAlUCVGOiBpbnZhbGlkIG1heGl1bSBwYWdlIHNpemUgYCVzJwoAAAAAJVAlRjogaW52YWxpZCBjb21tb24gcGFnZSBzaXplIGAlcycKAAAAACVQJUY6IGludmFsaWQgc3RhY2sgc2l6ZSBgJXMnCgAAJUYlWCVQOiBlcnJvcjogQ2Fubm90IGNoYW5nZSBvdXRwdXQgZm9ybWF0IHdoaWxzdCBsaW5raW5nIEFBcmNoNjQgYmluYXJpZXMuCgAAAAAlWCVQOiBjYW4gbm90IGJ1aWxkIHN0dWJzOiAlRQoAACVQJUY6IGZhaWxlZCB0byBzZXQgZHluYW1pYyBzZWN0aW9uIHNpemVzOiAlRQoAACVGJUI6IENhbid0IHJlYWQgY29udGVudHMgb2Ygc2VjdGlvbiAuZ251Lndhcm5pbmc6ICVFCgAAJVAlRjogZmFpbGVkIHRvIHJlY29yZCBhc3NpZ25tZW50IHRvICVzOiAlRQoAAAAAJVglUDogY2FuIG5vdCBtYWtlIHN0dWIgc2VjdGlvbjogJUUKAAAAACVGJVA6IG1hcCBzZWN0aW9ucyB0byBzZWdtZW50cyBmYWlsZWQ6ICVFCgAAAAAAACVYJVA6IC5laF9mcmFtZS8uc3RhYiBlZGl0OiAlRQoAJVglUDogY291bGQgbm90IGNvbXB1dGUgc2VjdGlvbnMgbGlzdHMgZm9yIHN0dWIgZ2VuZXJhdGlvbjogJUUKACVYJVA6IGNhbm5vdCBzaXplIHN0dWIgc2VjdGlvbjogJUUKAAAAAAAlUDogd2FybmluZzogLm5vdGUuZ251LmJ1aWxkLWlkIHNlY3Rpb24gZGlzY2FyZGVkLCAtLWJ1aWxkLWlkIGlnbm9yZWQuCgAlRiVQOiVCOiBiZmRfZWxmX2dldF9iZmRfbmVlZGVkX2xpc3QgZmFpbGVkOiAlRQoAAAAAAAAAACVQOiB3YXJuaW5nOiAlcywgbmVlZGVkIGJ5ICVCLCBtYXkgY29uZmxpY3Qgd2l0aCAlcwoAAAAAJVAlRjogY29tcGFjdCBmcmFtZSBkZXNjcmlwdGlvbnMgaW5jb21wYXRpYmxlIHdpdGggRFdBUkYyIC5laF9mcmFtZSBmcm9tICVCCgAAAAAlUDogd2FybmluZzogQ2Fubm90IGNyZWF0ZSAuZWhfZnJhbWVfaGRyIHNlY3Rpb24sIC0tZWgtZnJhbWUtaGRyIGlnbm9yZWQuCgAAAAAAACVQOiB3YXJuaW5nOiAlcywgbmVlZGVkIGJ5ICVCLCBub3QgZm91bmQgKHRyeSB1c2luZyAtcnBhdGggb3IgLXJwYXRoLWxpbmspCgAAAAAAJVAlRjogRmFpbGVkIHRvIHBhcnNlIEVIIGZyYW1lIGVudHJpZXMuCgAAAAAAAAAAJVA6IHdhcm5pbmc6IHVucmVjb2duaXplZCAtLWJ1aWxkLWlkIHN0eWxlIGlnbm9yZWQuCgAAAAAlUDogd2FybmluZzogQ2Fubm90IGNyZWF0ZSAubm90ZS5nbnUuYnVpbGQtaWQgc2VjdGlvbiwgLS1idWlsZC1pZCBpZ25vcmVkLgoAemxpYgB6bGliLWdudQB6bGliLWdhYmkAc3lzdgBib3RoAG11bGRlZnMAbWF4LXBhZ2Utc2l6ZT0AY29tbW9uLXBhZ2Utc2l6ZT0Ac3RhY2stc2l6ZT0Abm9leGVjc3RhY2sAaW5pdGZpcnN0AGludGVycG9zZQBsb2FkZmx0cgBub2RlZmF1bHRsaWIAbm9kZWxldGUAbm9kbG9wZW4Abm9kdW1wAGxhenkAb3JpZ2luAG5vY29tYnJlbG9jAG5vY29weXJlbG9jAG5vcmVscm8Abm9jb21tb24Abm90ZXh0AHRleHRvZmYAJVA6IHdhcm5pbmc6IC16ICVzIGlnbm9yZWQuCgBlYWFyY2g2NGxpbnV4LmMAJXMvJXMAJXMvbGliJXMlcy5zbwBsaW5rZXIgc3R1YnMAJVglUDogY2FuIG5vdCBjcmVhdGUgQkZEICVFCgBfX2VoZHJfc3RhcnQATERfUlVOX1BBVEgAL2xpYi9sZC1saW51eC1hYXJjaDY0LnNvLjEALmdudS53YXJuaW5nACVQJUY6IGxvb3BpbmcgaW4gbWFwX3NlZ21lbnRzAGluY2x1ZGUAbGliYy5zbwAlRiVQOiVCOiBiZmRfc3RhdCBmYWlsZWQ6ICVFCgBmb3VuZCAlcyBhdCAlcwoALnNvLgAucmVsYS5keW4ALnJlbC5keW4ALnJlbAAuZ251Lndhcm5pbmcuAC5ub3RlAC5wbHQALm5vdGUuR05VLXN0YWNrAC5laF9mcmFtZV9lbnRyeQAuZWhfZnJhbWUALmVoX2ZyYW1lX2hkcgAlcyBuZWVkZWQgYnkgJUIKAC91c3IvZXRjL2xkLnNvLmNvbmYALm5vdGUuZ251LmJ1aWxkLWlkAC5yb2RhdGEALnRkYXRhAC5pbnRlcnAALnNkYXRhAC5jb21tZW50AEJncm91cABjb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucwBkZXBhdWRpdABkaXNhYmxlLW5ldy1kdGFncwBlbmFibGUtbmV3LWR0YWdzAGVoLWZyYW1lLWhkcgBleGNsdWRlLWxpYnMAaGFzaC1zdHlsZQBuby1waXBlbGluZS1rbm93bGVkZ2UAbm8tZW51bS1zaXplLXdh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kwEAAAAAAADjBEgAAAAAAAEAAAAAAAAAAAAAAAAAAACUAQAAAAAAAPAESAAAAAAAAQAAAAAAAAAAAAAAAAAAAJUBAAAAAAAA+wRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAARBUgAAAAAAAAAAAAAAAAAAAAAAAAAAAA1AQAAAAAAACYFSAAAAAAAAAAAAAAAAAAAAAAAAAAAADYBAAAAAAAAMQVIAAAAAAABAAAAAAAAAAAAAAAAAAAANwEAAAAAAABBBUgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AQAAAAAAAFcFSAAAAAAAAAAAAAAAAAAAAAAAAAAAADkBAAAAAAAAbQVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAOgEAAAAAAACDBUgAAAAAAAAAAAAAAAAAAAAAAAAAAAA7AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGRzY3JpcHRzL2FybWVsZi54dQBsZHNjcmlwdHMvYXJtZWxmLnhyAGxkc2NyaXB0cy9hcm1lbGYueGJuAGxkc2NyaXB0cy9hcm1lbGYueG4AbGRzY3JpcHRzL2FybWVsZi54ZHcAbGRzY3JpcHRzL2FybWVsZi54ZGMAbGRzY3JpcHRzL2FybWVsZi54ZABsZHNjcmlwdHMvYXJtZWxmLnhzdwBsZHNjcmlwdHMvYXJtZWxmLnhzYwBsZHNjcmlwdHMvYXJtZWxmLnhzAGxkc2NyaXB0cy9hcm1lbGYueHcAbGRzY3JpcHRzL2FybWVsZi54YwBsZHNjcmlwdHMvYXJtZWxmLngAc2NhbGFyAHZlY3RvcgBlYXJtZWxmLmMAdGh1bWItZW50cnkAYmU4AHRhcmdldDEtcmVsAHRhcmdldDEtYWJzAHRhcmdldDIAZml4LXY0YngAZml4LXY0YngtaW50ZXJ3b3JraW5nAHVzZS1ibHgAdmZwMTEtZGVub3JtLWZpeABmaXgtc3RtMzJsNHh4LTYyOTM2MABuby1maXgtY29ydGV4LWE4AG5vLW1lcmdlLWV4aWR4LWVudHJpZXMAbm8tZml4LWFybTExNzYAbG9uZy1wbHQAYXJtZWxmAGVsZjMyLWxpdHRsZWFybQAAAAAAICAtLXRodW1iLWVudHJ5PTxzeW0+ICAgICAgICAgU2V0IHRoZSBlbnRyeSBwb2ludCB0byBiZSBUaHVtYiBzeW1ib2wgPHN5bT4KAAAAAAAgIC0tYmU4ICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQgQkU4IGZvcm1hdCBpbWFnZQoAACAgLS10YXJnZXQxLXJlbCAgICAgICAgICAgICAgIEludGVycHJldCBSX0FSTV9UQVJHRVQxIGFzIFJfQVJNX1JFTDMyCgAAACAgLS10YXJnZXQxLWFicyAgICAgICAgICAgICAgIEludGVycHJldCBSX0FSTV9UQVJHRVQxIGFzIFJfQVJNX0FCUzMyCgAAACAgLS10YXJnZXQyPTx0eXBlPiAgICAgICAgICAgIFNwZWNpZnkgZGVmaW5pdGlvbiBvZiBSX0FSTV9UQVJHRVQyCgAAAAAAACAgLS1maXgtdjRieCAgICAgICAgICAgICAgICAgIFJld3JpdGUgQlggcm4gYXMgTU9WIHBjLCBybiBmb3IgQVJNdjQKAAAAACAgLS1maXgtdjRieC1pbnRlcndvcmtpbmcgICAgIFJld3JpdGUgQlggcm4gYnJhbmNoIHRvIEFSTXY0IGludGVyd29ya2luZyB2ZW5lZXIKAAAAAAAAAAAgIC0tdXNlLWJseCAgICAgICAgICAgICAgICAgICBFbmFibGUgdXNlIG9mIEJMWCBpbnN0cnVjdGlvbnMKAAAAICAtLXZmcDExLWRlbm9ybS1maXggICAgICAgICAgU3BlY2lmeSBob3cgdG8gZml4IFZGUDExIGRlbm9ybSBlcnJhdHVtCgAAICAtLWZpeC1zdG0zMmw0eHgtNjI5MzYwICAgICAgU3BlY2lmeSBob3cgdG8gZml4IFNUTTMyTDRYWCA2MjkzNjAgZXJyYXR1bQoAAAAAAAAgIC0tbm8td2NoYXItc2l6ZS13YXJuaW5nICAgICBEb24ndCB3YXJuIGFib3V0IG9iamVjdHMgd2l0aCBpbmNvbXBhdGlibGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y2hhcl90IHNpemVzCgAgIC0tbG9uZy1wbHQgICAgICAgICAgICAgICAgICBHZW5lcmF0ZSBsb25nIC5wbHQgZW50cmllcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBoYW5kbGUgbGFyZ2UgLnBsdC8uZ290IGRpc3BsYWNlbWVudHMKACAgLS1zdHViLWdyb3VwLXNpemU9TiAgICAgICAgIE1heGltdW0gc2l6ZSBvZiBhIGdyb3VwIG9mIGlucHV0IHNlY3Rpb25zIHRoYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBoYW5kbGVkIGJ5IG9uZSBzdHViIHNlY3Rpb24uICBBIG5lZ2F0aXZlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsb2NhdGVzIGFsbCBzdHVicyBhZnRlciB0aGVpciBicmFuY2hlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdpdGggYSBncm91cCBzaXplIG9mIC1OKSwgd2hpbGUgYSBwb3NpdGl2ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgYWxsb3dzIHR3byBncm91cHMgb2YgaW5wdXQgc2VjdGlvbnMsIG9uZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLCBhbmQgb25lIGFmdGVyIGVhY2ggc3R1YiBzZWN0aW9uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVzIG9mICsvLTEgaW5kaWNhdGUgdGhlIGxpbmtlciBzaG91bGQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob29zZSBzdWl0YWJsZSBkZWZhdWx0cy4KAAAAAAAgIC0tW25vLV1maXgtY29ydGV4LWE4ICAgICAgICBEaXNhYmxlL2VuYWJsZSBDb3J0ZXgtQTggVGh1bWItMiBicmFuY2ggZXJyYXR1bSBmaXgKAAAAAAAAICAtLW5vLW1lcmdlLWV4aWR4LWVudHJpZXMgICAgRGlzYWJsZSBtZXJnaW5nIGV4aWR4IGVudHJpZXMKAAAAACAgLS1bbm8tXWZpeC1hcm0xMTc2ICAgICAgICAgIERpc2FibGUvZW5hYmxlIEFSTTExNzYgQkxYIGltbWVkaWF0ZSBlcnJhdHVtIGZpeAoAVW5yZWNvZ25pemVkIFZGUDExIGZpeCB0eXBlICclcycuCgAA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YXMgc2VjdGlvbnMgc3RhcnRpbmcKICBhdCBub24temVybyBhZGRyZXNzZXMuICBDb3VsZCBiZSBhIFNvbGFyaXMgbGQgYnVnLCBjb3VsZCBiZSBhIEdOVSBsZAogIGJ1Zy4gIEJ1dCBmb3Igbm93IGFzc2lnbmluZyB0aGUgemVybyB2bWFzIHdvcmtzLiAgKi8KU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC5pbnRlcnAgICAgICAgMCA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgMCA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgMCA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgIDAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgMCA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAwIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kIDA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yIDA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbGEudGV4dCAgICAwIDogeyAqKC5yZWxhLnRleHQpIH0KICAucmVsYS5maW5pICAgIDAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWxhLnJvZGF0YSAgMCA6IHsgKigucmVsYS5yb2RhdGEpIH0KICAucmVsYS5kYXRhLnJlbC5ybyAwIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YSAgICAwIDogeyAqKC5yZWxhLmRhdGEpIH0KICAucmVsYS50ZGF0YQkwIDogeyAqKC5yZWxhLnRkYXRhKSB9CiAgLnJlbGEudGJzcwkwIDogeyAqKC5yZWxhLnRic3MpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgIDAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgIDAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAwIDogeyAqKC5yZWxhLmJzcykgfQogIC5yZWxhLmlmdW5jICAgMCA6IHsgKigucmVsYS5pZnVuYykgfQogIC5yZWxhLnBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAwIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAwIDoKICB7CiAgICAqKC50ZXh0IC5zdHViKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICAucm9kYXRhICAgICAgIDAgOiB7ICooLnJvZGF0YSkgfQogIC5yb2RhdGExICAgICAgMCA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiIDAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nbnVfZXh0YWIgICAgMCA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJMCA6IHsgKigudGRhdGEpIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5wcmVpbml0X2FycmF5ICAgMCA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLmdvdC5wbHQgICAgICAwIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgIDAgOgogIHsKICAgICooLmRhdGEpCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAwIDogeyAqKC5kYXRhMSkgfQogIC5ic3MgICAgICAgICAgMCA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcykKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgfQogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8pIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIGxkIC1yOiBsaW5rIHdpdGhvdXQgcmVsb2NhdGlvbiAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtYmlnYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKIC8qIEZvciBzb21lIHJlYXNvbiwgdGhlIFNvbGFyaXMgbGlua2VyIG1ha2VzIGJhZCBleGVjdXRhYmxlcwogIGlmIGdsZCAtciBpcyB1c2VkIGFuZCB0aGUgaW50ZXJtZWRpYXRlIGZpbGUgaGFzIHNlY3Rpb25zIHN0YXJ0aW5nCiAgYXQgbm9uLXplcm8gYWRkcmVzc2VzLiAgQ291bGQgYmUgYSBTb2xhcmlzIGxkIGJ1ZywgY291bGQgYmUgYSBHTlUgbGQKICBidWcuICBCdXQgZm9yIG5vdyBhc3NpZ25pbmcgdGhlIHplcm8gdm1hcyB3b3Jrcy4gICovClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuaW50ZXJwICAgICAgIDAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgIDAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgIDAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAwIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgIDAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgMCA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAwOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAwOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgIDAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgMCA6IHsgKigucmVsYS50ZXh0KSB9CiAgLnJlbGEuZmluaSAgICAwIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgIDAgOiB7ICooLnJlbGEucm9kYXRhKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsYS5kYXRhLnJlbC5ybykgfQogIC5yZWxhLmRhdGEgICAgMCA6IHsgKigucmVsYS5kYXRhKSB9CiAgLnJlbGEudGRhdGEJMCA6IHsgKigucmVsYS50ZGF0YSkgfQogIC5yZWxhLnRic3MJMCA6IHsgKigucmVsYS50YnNzKSB9CiAgLnJlbGEuY3RvcnMgICAwIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAwIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbGEuZ290ICAgICAwIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWxhLmJzcyAgICAgMCA6IHsgKigucmVsYS5ic3MpIH0KICAucmVsYS5pZnVuYyAgIDAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgIDAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgMCA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgMCA6CiAgewogICAgKigudGV4dCAuc3R1YikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgLnJvZGF0YSAgICAgICAwIDogeyAqKC5yb2RhdGEpIH0KICAucm9kYXRhMSAgICAgIDAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICB9CiAgLmVoX2ZyYW1lICAgICAwIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAwIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAwIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgIH0KICAuZ251X2V4dGFiICAgIDAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCTAgOiB7ICooLnRkYXRhKSB9CiAgLnRic3MJCTAgOiB7ICooLnRic3MpIH0KICAucHJlaW5pdF9hcnJheSAgIDAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuamNyICAgICAgICAgIDAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZHluYW1pYyAgICAgIDAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgIDAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC5nb3QucGx0ICAgICAgMCA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAwIDoKICB7CiAgICAqKC5kYXRhKQogIH0KICAuZGF0YTEgICAgICAgIDAgOiB7ICooLmRhdGExKSB9CiAgLmJzcyAgICAgICAgICAwIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICB9CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQp9CgoAAAAvKiBTY3JpcHQgZm9yIC1OOiBtaXggdGV4dCBhbmQgZGF0YSBvbiBzYW1lIHBhZ2U7IGRvbid0IGFsaWduIGRhdGEgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWJpZ2FhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IC47CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyA2NCAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTig2NCAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgLW46IG1peCB0ZXh0IGFuZCBkYXRhIG9uIHNhbWUgcGFnZSAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtYmlnYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmlmdW5jICAgICA6IHsgKigucmVsYS5pZnVuYykgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDI0LCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gNjQgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oNjQgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTig2NCAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2MgLXogbm93IC16IHJlbHJvOiBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlLCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWJpZ2FhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2M6IHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUsIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtYmlnYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaWZ1bmMpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMjQsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyA2NCAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTig2NCAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIGxkIC1waWU6IGxpbmsgcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZSAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtYmlnYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAvKiBTY3JpcHQgZm9yIC0tc2hhcmVkIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IHNoYXJlZCBsaWJyYXJ5LCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWJpZ2FhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaWZ1bmMpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gNjQgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oNjQgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTig2NCAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgLS1zaGFyZWQgLXogY29tYnJlbG9jOiBzaGFyZWQgbGlicmFyeSwgY29tYmluZSAmIHNvcnQgcmVsb2NzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGY2NC1iaWdhYXJjaDY0IiwgImVsZjY0LWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjY0LWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0KQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliNjQiKTsgU0VBUkNIX0RJUigiPS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDI0LCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gNjQgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oNjQgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTig2NCAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAvKiBTY3JpcHQgZm9yIGxkIC0tc2hhcmVkOiBsaW5rIHNoYXJlZCBsaWJyYXJ5ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGY2NC1iaWdhYXJjaDY0IiwgImVsZjY0LWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjY0LWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0KQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliNjQiKTsgU0VBUkNIX0RJUigiPS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMjQsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyA2NCAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTig2NCAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXogY29tYnJlbG9jIC16IG5vdyAteiByZWxybzogY29tYmluZSBhbmQgc29ydCByZWxvYyBzZWN0aW9ucyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtYmlnYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyA2NCAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTig2NCAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIC16IGNvbWJyZWxvYzogY29tYmluZSBhbmQgc29ydCByZWxvYyBzZWN0aW9ucyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmNjQtYmlnYWFyY2g2NCIsICJlbGY2NC1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGY2NC1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NCkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliNjQiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAvKiBEZWZhdWx0IGxpbmtlciBzY3JpcHQsIGZvciBub3JtYWwgZXhlY3V0YWJsZXMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjY0LWJpZ2FhcmNoNjQiLCAiZWxmNjQtYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmNjQtbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWI2NCIpOyBTRUFSQ0hfRElSKCI9L2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYjY0Iik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgyNCwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDY0IC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDY0IC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oNjQgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAZWFhcmNoNjRsaW51eGIuYwAvbGliL2xkLWxpbnV4LWFhcmNoNjRfYmUuc28uMQBhYXJjaDY0bGludXhiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYs0MAAAAAAGizQwAAAAAAaLNDAAAAAABos0MAAAAAAKizQwAAAAAAgLNDAAAAAABos0MAAAAAAGizQwAAAAAAaLNDAAAAAABos0MAAAAAAGizQwAAAAAAaLNDAAAAAABos0MAAAAAAFizQwAAAAAA2LNDAAAAAADAs0MAAAAAAIC7QwAAAAAAYLtDAAAAAABQu0MAAAAAAEC7QwAAAAAAILtDAAAAAACQu0MAAAAAAJC7QwAAAAAAAAAAAAAAAACtBEgAAAAAAAEAAAAAAAAAAAAAAAAAAACXAQAAAAAAAIsESAAAAAAAAAAAAAAAAAAAAAAAAAAAAJIBAAAAAAAAWwRIAAAAAAACAAAAAAAAAAAAAAAAAAAAlgEAAAAAAACSBEgAAAAAAAEAAAAAAAAAAAAAAAAAAACYAQAAAAAAAKoESAAAAAAAAQAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAswRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAEAAAAAAADFBEgAAAAAAAAAAAAAAAAAAAAAAAAAAACRAQAAAAAAANYESAAAAAAAAAAAAAAAAAAAAAAAAAAAAJMBAAAAAAAA4wRIAAAAAAABAAAAAAAAAAAAAAAAAAAAlAEAAAAAAADwBEgAAAAAAAEAAAAAAAAAAAAAAAAAAACVAQAAAAAAAPsESAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAEQVIAAAAAAAAAAAAAAAAAAAAAAAAAAAANQEAAAAAAAAmBUgAAAAAAAAAAAAAAAAAAAAAAAAAAAA2AQAAAAAAADEFSAAAAAAAAQAAAAAAAAAAAAAAAAAAADcBAAAAAAAAQQVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAEAAAAAAABXBUgAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AQAAAAAAAG0FSAAAAAAAAAAAAAAAAAAAAAAAAAAAADoBAAAAAAAAgwVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIFNjcmlwdCBmb3IgbGQgLVVyOiBsaW5rIHcvb3V0IHJlbG9jYXRpb24sIGRvIGNyZWF0ZSBjb25zdHJ1Y3RvcnMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCiAvKiBGb3Igc29tZSByZWFzb24sIHRoZSBTb2xhcmlzIGxpbmtlciBtYWtlcyBiYWQgZXhlY3V0YWJsZXMKICBpZiBnbGQgLXIgaXMgdXNlZCBhbmQgdGhlIGludGVybWVkaWF0ZSBmaWxlIGhhcyBzZWN0aW9ucyBzdGFydGluZwogIGF0IG5vbi16ZXJvIGFkZHJlc3Nlcy4gIENvdWxkIGJlIGEgU29sYXJpcyBsZCBidWcsIGNvdWxkIGJlIGEgR05VIGxkCiAgYnVnLiAgQnV0IGZvciBub3cgYXNzaWduaW5nIHRoZSB6ZXJvIHZtYXMgd29ya3MuICAqLwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLmludGVycCAgICAgICAwIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAwIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAwIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgMCA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAwIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gIDAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgMDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgMDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAwIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgIDAgOiB7ICooLnJlbGEudGV4dCkgfQogIC5yZWxhLmZpbmkgICAgMCA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAwIDogeyAqKC5yZWxhLnJvZGF0YSkgfQogIC5yZWxhLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8pIH0KICAucmVsYS5kYXRhICAgIDAgOiB7ICooLnJlbGEuZGF0YSkgfQogIC5yZWxhLnRkYXRhCTAgOiB7ICooLnJlbGEudGRhdGEpIH0KICAucmVsYS50YnNzCTAgOiB7ICooLnJlbGEudGJzcykgfQogIC5yZWxhLmN0b3JzICAgMCA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgMCA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgMCA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgIDAgOiB7ICooLnJlbGEuYnNzKSB9CiAgLnJlbGEuaWZ1bmMgICAwIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgIDAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgIDAgOgogIHsKICAgICooLnRleHQgLnN0dWIpCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIC5yb2RhdGEgICAgICAgMCA6IHsgKigucm9kYXRhKSB9CiAgLnJvZGF0YTEgICAgICAwIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAgfQogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgMCA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdudV9leHRhYiAgICAwIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkwIDogeyAqKC50ZGF0YSkgfQogIC50YnNzCQkwIDogeyAqKC50YnNzKSB9CiAgLnByZWluaXRfYXJyYXkgICAwIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmpjciAgICAgICAgICAwIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmR5bmFtaWMgICAgICAwIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAwIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuZ290LnBsdCAgICAgIDAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgMCA6CiAgewogICAgKiguZGF0YSkKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgIDAgOiB7ICooLmRhdGExKSB9CiAgLmJzcyAgICAgICAgICAwIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICB9CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQp9CgoAAAAALyogU2NyaXB0IGZvciBsZCAtcjogbGluayB3aXRob3V0IHJlbG9jYXRpb24gKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCiAvKiBGb3Igc29tZSByZWFzb24sIHRoZSBTb2xhcmlzIGxpbmtlciBtYWtlcyBiYWQgZXhlY3V0YWJsZXMKICBpZiBnbGQgLXIgaXMgdXNlZCBhbmQgdGhlIGludGVybWVkaWF0ZSBmaWxlIGhhcyBzZWN0aW9ucyBzdGFydGluZwogIGF0IG5vbi16ZXJvIGFkZHJlc3Nlcy4gIENvdWxkIGJlIGEgU29sYXJpcyBsZCBidWcsIGNvdWxkIGJlIGEgR05VIGxkCiAgYnVnLiAgQnV0IGZvciBub3cgYXNzaWduaW5nIHRoZSB6ZXJvIHZtYXMgd29ya3MuICAqLwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLmludGVycCAgICAgICAwIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAwIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAwIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgMCA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAwIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gIDAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgMDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgMDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAwIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgIDAgOiB7ICooLnJlbGEudGV4dCkgfQogIC5yZWxhLmZpbmkgICAgMCA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAwIDogeyAqKC5yZWxhLnJvZGF0YSkgfQogIC5yZWxhLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8pIH0KICAucmVsYS5kYXRhICAgIDAgOiB7ICooLnJlbGEuZGF0YSkgfQogIC5yZWxhLnRkYXRhCTAgOiB7ICooLnJlbGEudGRhdGEpIH0KICAucmVsYS50YnNzCTAgOiB7ICooLnJlbGEudGJzcykgfQogIC5yZWxhLmN0b3JzICAgMCA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgMCA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgMCA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgIDAgOiB7ICooLnJlbGEuYnNzKSB9CiAgLnJlbGEuaWZ1bmMgICAwIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgIDAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgIDAgOgogIHsKICAgICooLnRleHQgLnN0dWIpCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIC5yb2RhdGEgICAgICAgMCA6IHsgKigucm9kYXRhKSB9CiAgLnJvZGF0YTEgICAgICAwIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAgfQogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgMCA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdudV9leHRhYiAgICAwIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkwIDogeyAqKC50ZGF0YSkgfQogIC50YnNzCQkwIDogeyAqKC50YnNzKSB9CiAgLnByZWluaXRfYXJyYXkgICAwIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmpjciAgICAgICAgICAwIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmR5bmFtaWMgICAgICAwIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAwIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuZ290LnBsdCAgICAgIDAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgMCA6CiAgewogICAgKiguZGF0YSkKICB9CiAgLmRhdGExICAgICAgICAwIDogeyAqKC5kYXRhMSkgfQogIC5ic3MgICAgICAgICAgMCA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcykKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgfQogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8pIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KfQoKAAAvKiBTY3JpcHQgZm9yIC1OOiBtaXggdGV4dCBhbmQgZGF0YSBvbiBzYW1lIHBhZ2U7IGRvbid0IGFsaWduIGRhdGEgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IC47CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAvKiBTY3JpcHQgZm9yIC1uOiBtaXggdGV4dCBhbmQgZGF0YSBvbiBzYW1lIHBhZ2UgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgxMiwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAvKiBTY3JpcHQgZm9yIC1waWUgLXogY29tYnJlbG9jIC16IG5vdyAteiByZWxybzogcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZSwgY29tYmluZSAmIHNvcnQgcmVsb2NzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC1waWUgLXogY29tYnJlbG9jOiBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlLCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDEyLCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgbGQgLXBpZTogbGluayBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmlmdW5jICAgICA6IHsgKigucmVsYS5pZnVuYykgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDEyLCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAvKiBTY3JpcHQgZm9yIC0tc2hhcmVkIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IHNoYXJlZCBsaWJyYXJ5LCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaWZ1bmMpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAC8qIFNjcmlwdCBmb3IgLS1zaGFyZWQgLXogY29tYnJlbG9jOiBzaGFyZWQgbGlicmFyeSwgY29tYmluZSAmIHNvcnQgcmVsb2NzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDEyLCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAvKiBTY3JpcHQgZm9yIGxkIC0tc2hhcmVkOiBsaW5rIHNoYXJlZCBsaWJyYXJ5ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMTIsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAvKiBTY3JpcHQgZm9yIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IGNvbWJpbmUgYW5kIHNvcnQgcmVsb2Mgc2VjdGlvbnMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaWZ1bmMpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAC8qIFNjcmlwdCBmb3IgLXogY29tYnJlbG9jOiBjb21iaW5lIGFuZCBzb3J0IHJlbG9jIHNlY3Rpb25zICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1saXR0bGVhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDEyLCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAvKiBEZWZhdWx0IGxpbmtlciBzY3JpcHQsIGZvciBub3JtYWwgZXhlY3V0YWJsZXMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgxMiwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAvbGliL2xkLWxpbnV4LWFhcmNoNjRfaWxwMzIuc28uMQBlYWFyY2g2NGxpbnV4MzIuYwBhYXJjaDY0bGludXgzMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOpDAAAAAAAo6kMAAAAAACjqQwAAAAAAKOpDAAAAAABo6kMAAAAAAEDqQwAAAAAAKOpDAAAAAAAo6kMAAAAAACjqQwAAAAAAKOpDAAAAAAAo6kMAAAAAACjqQwAAAAAAKOpDAAAAAAAY6kMAAAAAAJjqQwAAAAAAgOpDAAAAAABA8kMAAAAAACDyQwAAAAAAEPJDAAAAAAAA8kMAAAAAAODxQwAAAAAAUPJDAAAAAABQ8kMAAAAAAAAAAAAAAAAArQRIAAAAAAABAAAAAAAAAAAAAAAAAAAAlwEAAAAAAACLBEgAAAAAAAAAAAAAAAAAAAAAAAAAAACSAQAAAAAAAFsESAAAAAAAAgAAAAAAAAAAAAAAAAAAAJYBAAAAAAAAkgRIAAAAAAABAAAAAAAAAAAAAAAAAAAAmAEAAAAAAACqBEgAAAAAAAEAAAAAAAAAAAAAAAAAAABQAAAAAAAAALMESAAAAAAAAAAAAAAAAAAAAAAAAAAAAJABAAAAAAAAxQRIAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQEAAAAAAADWBEgAAAAAAAAAAAAAAAAAAAAAAAAAAACTAQAAAAAAAOMESAAAAAAAAQAAAAAAAAAAAAAAAAAAAJQBAAAAAAAA8ARIAAAAAAABAAAAAAAAAAAAAAAAAAAAlQEAAAAAAAD7BEgAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABEFSAAAAAAAAAAAAAAAAAAAAAAAAAAAADUBAAAAAAAAJgVIAAAAAAAAAAAAAAAAAAAAAAAAAAAANgEAAAAAAAAxBUgAAAAAAAEAAAAAAAAAAAAAAAAAAAA3AQAAAAAAAEEFSAAAAAAAAAAAAAAAAAAAAAAAAAAAADgBAAAAAAAAVwVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQEAAAAAAABtBUgAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AQAAAAAAAIMFSAAAAAAAAAAAAAAAAAAAAAAAAAAAADsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKiBTY3JpcHQgZm9yIGxkIC1VcjogbGluayB3L291dCByZWxvY2F0aW9uLCBkbyBjcmVhdGUgY29uc3RydWN0b3JzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQogLyogRm9yIHNvbWUgcmVhc29uLCB0aGUgU29sYXJpcyBsaW5rZXIgbWFrZXMgYmFkIGV4ZWN1dGFibGVzCiAgaWYgZ2xkIC1yIGlzIHVzZWQgYW5kIHRoZSBpbnRlcm1lZGlhdGUgZmlsZSBoYXMgc2VjdGlvbnMgc3RhcnRpbmcKICBhdCBub24temVybyBhZGRyZXNzZXMuICBDb3VsZCBiZSBhIFNvbGFyaXMgbGQgYnVnLCBjb3VsZCBiZSBhIEdOVSBsZAogIGJ1Zy4gIEJ1dCBmb3Igbm93IGFzc2lnbmluZyB0aGUgemVybyB2bWFzIHdvcmtzLiAgKi8KU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC5pbnRlcnAgICAgICAgMCA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgMCA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgMCA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgIDAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgMCA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAwIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kIDA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yIDA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbGEudGV4dCAgICAwIDogeyAqKC5yZWxhLnRleHQpIH0KICAucmVsYS5maW5pICAgIDAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWxhLnJvZGF0YSAgMCA6IHsgKigucmVsYS5yb2RhdGEpIH0KICAucmVsYS5kYXRhLnJlbC5ybyAwIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YSAgICAwIDogeyAqKC5yZWxhLmRhdGEpIH0KICAucmVsYS50ZGF0YQkwIDogeyAqKC5yZWxhLnRkYXRhKSB9CiAgLnJlbGEudGJzcwkwIDogeyAqKC5yZWxhLnRic3MpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgIDAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgIDAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAwIDogeyAqKC5yZWxhLmJzcykgfQogIC5yZWxhLmlmdW5jICAgMCA6IHsgKigucmVsYS5pZnVuYykgfQogIC5yZWxhLnBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAwIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAwIDoKICB7CiAgICAqKC50ZXh0IC5zdHViKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICAucm9kYXRhICAgICAgIDAgOiB7ICooLnJvZGF0YSkgfQogIC5yb2RhdGExICAgICAgMCA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiIDAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nbnVfZXh0YWIgICAgMCA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJMCA6IHsgKigudGRhdGEpIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5wcmVpbml0X2FycmF5ICAgMCA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLmdvdC5wbHQgICAgICAwIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgIDAgOgogIHsKICAgICooLmRhdGEpCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAwIDogeyAqKC5kYXRhMSkgfQogIC5ic3MgICAgICAgICAgMCA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcykKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgfQogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8pIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KfQoKAAAAAAAAAC8qIFNjcmlwdCBmb3IgbGQgLXI6IGxpbmsgd2l0aG91dCByZWxvY2F0aW9uICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQogLyogRm9yIHNvbWUgcmVhc29uLCB0aGUgU29sYXJpcyBsaW5rZXIgbWFrZXMgYmFkIGV4ZWN1dGFibGVzCiAgaWYgZ2xkIC1yIGlzIHVzZWQgYW5kIHRoZSBpbnRlcm1lZGlhdGUgZmlsZSBoYXMgc2VjdGlvbnMgc3RhcnRpbmcKICBhdCBub24temVybyBhZGRyZXNzZXMuICBDb3VsZCBiZSBhIFNvbGFyaXMgbGQgYnVnLCBjb3VsZCBiZSBhIEdOVSBsZAogIGJ1Zy4gIEJ1dCBmb3Igbm93IGFzc2lnbmluZyB0aGUgemVybyB2bWFzIHdvcmtzLiAgKi8KU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC5pbnRlcnAgICAgICAgMCA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgMCA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgMCA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgIDAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgMCA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAwIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kIDA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yIDA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbGEudGV4dCAgICAwIDogeyAqKC5yZWxhLnRleHQpIH0KICAucmVsYS5maW5pICAgIDAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWxhLnJvZGF0YSAgMCA6IHsgKigucmVsYS5yb2RhdGEpIH0KICAucmVsYS5kYXRhLnJlbC5ybyAwIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YSAgICAwIDogeyAqKC5yZWxhLmRhdGEpIH0KICAucmVsYS50ZGF0YQkwIDogeyAqKC5yZWxhLnRkYXRhKSB9CiAgLnJlbGEudGJzcwkwIDogeyAqKC5yZWxhLnRic3MpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgIDAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgIDAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAwIDogeyAqKC5yZWxhLmJzcykgfQogIC5yZWxhLmlmdW5jICAgMCA6IHsgKigucmVsYS5pZnVuYykgfQogIC5yZWxhLnBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAwIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAwIDoKICB7CiAgICAqKC50ZXh0IC5zdHViKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICAucm9kYXRhICAgICAgIDAgOiB7ICooLnJvZGF0YSkgfQogIC5yb2RhdGExICAgICAgMCA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiIDAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nbnVfZXh0YWIgICAgMCA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJMCA6IHsgKigudGRhdGEpIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5wcmVpbml0X2FycmF5ICAgMCA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLmdvdC5wbHQgICAgICAwIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgIDAgOgogIHsKICAgICooLmRhdGEpCiAgfQogIC5kYXRhMSAgICAgICAgMCA6IHsgKiguZGF0YTEpIH0KICAuYnNzICAgICAgICAgIDAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MpCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogIH0KICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9Cn0KCgAAAAAALyogU2NyaXB0IGZvciAtTjogbWl4IHRleHQgYW5kIGRhdGEgb24gc2FtZSBwYWdlOyBkb24ndCBhbGlnbiBkYXRhICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSAuOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAALyogU2NyaXB0IGZvciAtbjogbWl4IHRleHQgYW5kIGRhdGEgb24gc2FtZSBwYWdlICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMTIsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2MgLXogbm93IC16IHJlbHJvOiBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlLCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5BUk0uYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5BUk0uYXR0cmlidXRlcykpIEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgLXBpZSAteiBjb21icmVsb2M6IHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUsIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYWFyY2g2NCIsICJlbGYzMi1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGYzMi1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NDppbHAzMikKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaWZ1bmMpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMTIsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAALyogU2NyaXB0IGZvciBsZCAtcGllOiBsaW5rIHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMTIsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAC8qIFNjcmlwdCBmb3IgLS1zaGFyZWQgLXogY29tYnJlbG9jIC16IG5vdyAteiByZWxybzogc2hhcmVkIGxpYnJhcnksIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYWFyY2g2NCIsICJlbGYzMi1iaWdhYXJjaDY0IiwKCSAgICAgICJlbGYzMi1saXR0bGVhYXJjaDY0IikKT1VUUFVUX0FSQ0goYWFyY2g2NDppbHAzMikKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pZnVuYykKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAC8qIFNjcmlwdCBmb3IgLS1zaGFyZWQgLXogY29tYnJlbG9jOiBzaGFyZWQgbGlicmFyeSwgY29tYmluZSAmIHNvcnQgcmVsb2NzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDEyLCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAAAvKiBTY3JpcHQgZm9yIGxkIC0tc2hhcmVkOiBsaW5rIHNoYXJlZCBsaWJyYXJ5ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuaWZ1bmMgICAgIDogeyAqKC5yZWxhLmlmdW5jKSB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMTIsIC4pOwogIC5nb3QucGx0ICAgICAgICA6IHsgKiguZ290LnBsdCkgICooLmlnb3QucGx0KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuQVJNLmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguQVJNLmF0dHJpYnV0ZXMpKSBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAvKiBTY3JpcHQgZm9yIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IGNvbWJpbmUgYW5kIHNvcnQgcmVsb2Mgc2VjdGlvbnMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaWZ1bmMpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfSA9MAogIC5wbHQgICAgICAgICAgICA6IEFMSUdOKDE2KSB7ICooLnBsdCkgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICB9ID0wCiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0gPTAKICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAC8qIFNjcmlwdCBmb3IgLXogY29tYnJlbG9jOiBjb21iaW5lIGFuZCBzb3J0IHJlbG9jIHNlY3Rpb25zICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhYXJjaDY0IiwgImVsZjMyLWJpZ2FhcmNoNjQiLAoJICAgICAgImVsZjMyLWxpdHRsZWFhcmNoNjQiKQpPVVRQVVRfQVJDSChhYXJjaDY0OmlscDMyKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliaWxwMzIiKTsgU0VBUkNIX0RJUigiPS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHg0MDAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWxhLmlmdW5jKQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0gPTAKICAucGx0ICAgICAgICAgICAgOiBBTElHTigxNikgeyAqKC5wbHQpICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfSA9MAogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9ID0wCiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDEyLCAuKTsKICAuZ290LnBsdCAgICAgICAgOiB7ICooLmdvdC5wbHQpICAqKC5pZ290LnBsdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLkFSTS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLkFSTS5hdHRyaWJ1dGVzKSkgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAvKiBEZWZhdWx0IGxpbmtlciBzY3JpcHQsIGZvciBub3JtYWwgZXhlY3V0YWJsZXMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FhcmNoNjQiLCAiZWxmMzItYmlnYWFyY2g2NCIsCgkgICAgICAiZWxmMzItbGl0dGxlYWFyY2g2NCIpCk9VVFBVVF9BUkNIKGFhcmNoNjQ6aWxwMzIpCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWJpbHAzMiIpOyBTRUFSQ0hfRElSKCI9L2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYmlscDMyIik7IFNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4NDAwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDQwMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5pZnVuYyAgICAgOiB7ICooLnJlbGEuaWZ1bmMpIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9ID0wCiAgLnBsdCAgICAgICAgICAgIDogQUxJR04oMTYpIHsgKigucGx0KSAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0gPTAKICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfSA9MAogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgxMiwgLik7CiAgLmdvdC5wbHQgICAgICAgIDogeyAqKC5nb3QucGx0KSAgKiguaWdvdC5wbHQpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7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ImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQogLyogRm9yIHNvbWUgcmVhc29uLCB0aGUgU29sYXJpcyBsaW5rZXIgbWFrZXMgYmFkIGV4ZWN1dGFibGVzCiAgaWYgZ2xkIC1yIGlzIHVzZWQgYW5kIHRoZSBpbnRlcm1lZGlhdGUgZmlsZSBoYXMgc2VjdGlvbnMgc3RhcnRpbmcKICBhdCBub24temVybyBhZGRyZXNzZXMuICBDb3VsZCBiZSBhIFNvbGFyaXMgbGQgYnVnLCBjb3VsZCBiZSBhIEdOVSBsZAogIGJ1Zy4gIEJ1dCBmb3Igbm93IGFzc2lnbmluZyB0aGUgemVybyB2bWFzIHdvcmtzLiAgKi8KU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC5pbnRlcnAgICAgICAgMCA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgMCA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgMCA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgIDAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgMCA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAwIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kIDA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yIDA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgMCA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgIDAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgMCA6IHsgKigucmVsLnRleHQpIH0KICAucmVsYS50ZXh0ICAgIDAgOiB7ICooLnJlbGEudGV4dCkgfQogIC5yZWwuZmluaSAgICAgMCA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgIDAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgMCA6IHsgKigucmVsLnJvZGF0YSkgfQogIC5yZWxhLnJvZGF0YSAgMCA6IHsgKigucmVsYS5yb2RhdGEpIH0KICAucmVsLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybykgfQogIC5yZWxhLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8pIH0KICAucmVsLmRhdGEgICAgIDAgOiB7ICooLnJlbC5kYXRhKSB9CiAgLnJlbGEuZGF0YSAgICAwIDogeyAqKC5yZWxhLmRhdGEpIH0KICAucmVsLnRkYXRhCTAgOiB7ICooLnJlbC50ZGF0YSkgfQogIC5yZWxhLnRkYXRhCTAgOiB7ICooLnJlbGEudGRhdGEpIH0KICAucmVsLnRic3MJMCA6IHsgKigucmVsLnRic3MpIH0KICAucmVsYS50YnNzCTAgOiB7ICooLnJlbGEudGJzcykgfQogIC5yZWwuY3RvcnMgICAgMCA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAwIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAwIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgIDAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgIDAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgIDAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAwIDogeyAqKC5yZWwuYnNzKSB9CiAgLnJlbGEuYnNzICAgICAwIDogeyAqKC5yZWxhLmJzcykgfQogIC5yZWwuaXBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmlwbHQgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgIDAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAwIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgIDAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgIDAgOgogIHsKICAgICooLnRleHQgLnN0dWIpCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0KICAuZmluaSAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIC5yb2RhdGEgICAgICAgMCA6IHsgKigucm9kYXRhKSB9CiAgLnJvZGF0YTEgICAgICAwIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAwIDogeyAqKC5BUk0uZXh0YWIpIH0KICAuQVJNLmV4aWR4IDAgOiB7ICooLkFSTS5leGlkeCkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiIDAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nbnVfZXh0YWIgICAgMCA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJMCA6IHsgKigudGRhdGEpIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5wcmVpbml0X2FycmF5ICAgMCA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgMCA6CiAgewogICAgKiguZGF0YSkKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgIDAgOiB7ICooLmRhdGExKSB9CiAgLmJzcyAgICAgICAgICAwIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICB9CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KfQoKAC8qIFNjcmlwdCBmb3IgbGQgLXI6IGxpbmsgd2l0aG91dCByZWxvY2F0aW9uICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCiAvKiBGb3Igc29tZSByZWFzb24sIHRoZSBTb2xhcmlzIGxpbmtlciBtYWtlcyBiYWQgZXhlY3V0YWJsZXMKICBpZiBnbGQgLXIgaXMgdXNlZCBhbmQgdGhlIGludGVybWVkaWF0ZSBmaWxlIGhhcyBzZWN0aW9ucyBzdGFydGluZwogIGF0IG5vbi16ZXJvIGFkZHJlc3Nlcy4gIENvdWxkIGJlIGEgU29sYXJpcyBsZCBidWcsIGNvdWxkIGJlIGEgR05VIGxkCiAgYnVnLiAgQnV0IGZvciBub3cgYXNzaWduaW5nIHRoZSB6ZXJvIHZtYXMgd29ya3MuICAqLwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLmludGVycCAgICAgICAwIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAwIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAwIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgMCA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAwIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gIDAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgMDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgMDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAwIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAwIDogeyAqKC5yZWwudGV4dCkgfQogIC5yZWxhLnRleHQgICAgMCA6IHsgKigucmVsYS50ZXh0KSB9CiAgLnJlbC5maW5pICAgICAwIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgMCA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAwIDogeyAqKC5yZWwucm9kYXRhKSB9CiAgLnJlbGEucm9kYXRhICAwIDogeyAqKC5yZWxhLnJvZGF0YSkgfQogIC5yZWwuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsYS5kYXRhLnJlbC5ybykgfQogIC5yZWwuZGF0YSAgICAgMCA6IHsgKigucmVsLmRhdGEpIH0KICAucmVsYS5kYXRhICAgIDAgOiB7ICooLnJlbGEuZGF0YSkgfQogIC5yZWwudGRhdGEJMCA6IHsgKigucmVsLnRkYXRhKSB9CiAgLnJlbGEudGRhdGEJMCA6IHsgKigucmVsYS50ZGF0YSkgfQogIC5yZWwudGJzcwkwIDogeyAqKC5yZWwudGJzcykgfQogIC5yZWxhLnRic3MJMCA6IHsgKigucmVsYS50YnNzKSB9CiAgLnJlbC5jdG9ycyAgICAwIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgIDAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgMCA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgMCA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgMCA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgIDAgOiB7ICooLnJlbC5ic3MpIH0KICAucmVsYS5ic3MgICAgIDAgOiB7ICooLnJlbGEuYnNzKSB9CiAgLnJlbC5pcGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuaXBsdCAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgIDAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgMCA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgMCA6CiAgewogICAgKigudGV4dCAuc3R1YikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfQogIC5maW5pICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgLnJvZGF0YSAgICAgICAwIDogeyAqKC5yb2RhdGEpIH0KICAucm9kYXRhMSAgICAgIDAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiIDAgOiB7ICooLkFSTS5leHRhYikgfQogIC5BUk0uZXhpZHggMCA6IHsgKiguQVJNLmV4aWR4KSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAgfQogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgMCA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdudV9leHRhYiAgICAwIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkwIDogeyAqKC50ZGF0YSkgfQogIC50YnNzCQkwIDogeyAqKC50YnNzKSB9CiAgLnByZWluaXRfYXJyYXkgICAwIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmpjciAgICAgICAgICAwIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmR5bmFtaWMgICAgICAwIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAwIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAwIDoKICB7CiAgICAqKC5kYXRhKQogIH0KICAuZGF0YTEgICAgICAgIDAgOiB7ICooLmRhdGExKSB9CiAgLmJzcyAgICAgICAgICAwIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICB9CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbykgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KfQoKAAAAAAAAAC8qIFNjcmlwdCBmb3IgLU46IG1peCB0ZXh0IGFuZCBkYXRhIG9uIHNhbWUgcGFnZTsgZG9uJ3QgYWxpZ24gZGF0YSAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAgIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAgIDogeyAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWwuZmluaSAgICAgICA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgICA6IHsgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWwuZGF0YS5yZWwucm8gICA6IHsgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbC5kYXRhICAgICAgIDogeyAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWwudGRhdGEJICA6IHsgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbC50YnNzCSAgOiB7ICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsLmN0b3JzICAgICAgOiB7ICooLnJlbC5jdG9ycykgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWwuZHRvcnMgICAgICA6IHsgKigucmVsLmR0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbC5nb3QgICAgICAgIDogeyAqKC5yZWwuZ290KSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWwuYnNzICAgICAgICA6IHsgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWwuaXBsdCAgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAuQVJNLmV4aWR4ICAgOiB7ICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IC47CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAvKiBTY3JpcHQgZm9yIC1uOiBtaXggdGV4dCBhbmQgZGF0YSBvbiBzYW1lIHBhZ2UgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAALyogU2NyaXB0IGZvciAtcGllIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUsIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAuQVJNLmV4aWR4ICAgOiB7ICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAALyogU2NyaXB0IGZvciAtcGllIC16IGNvbWJyZWxvYzogcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZSwgY29tYmluZSAmIHNvcnQgcmVsb2NzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogIC5BUk0uZXhpZHggICA6IHsgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAvKiBTY3JpcHQgZm9yIGxkIC1waWU6IGxpbmsgcG9zaXRpb24gaW5kZXBlbmRlbnQgZXhlY3V0YWJsZSAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAgIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAgIDogeyAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWwuZmluaSAgICAgICA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgICA6IHsgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWwuZGF0YS5yZWwucm8gICA6IHsgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbC5kYXRhICAgICAgIDogeyAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWwudGRhdGEJICA6IHsgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbC50YnNzCSAgOiB7ICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsLmN0b3JzICAgICAgOiB7ICooLnJlbC5jdG9ycykgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWwuZHRvcnMgICAgICA6IHsgKigucmVsLmR0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbC5nb3QgICAgICAgIDogeyAqKC5yZWwuZ290KSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWwuYnNzICAgICAgICA6IHsgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWwuaXBsdCAgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbC5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAuQVJNLmV4aWR4ICAgOiB7ICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAC8qIFNjcmlwdCBmb3IgLS1zaGFyZWQgLXogY29tYnJlbG9jIC16IG5vdyAteiByZWxybzogc2hhcmVkIGxpYnJhcnksIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAvKiBTY3JpcHQgZm9yIC0tc2hhcmVkIC16IGNvbWJyZWxvYzogc2hhcmVkIGxpYnJhcnksIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItYmlnYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAvKiBTY3JpcHQgZm9yIGxkIC0tc2hhcmVkOiBsaW5rIHNoYXJlZCBsaWJyYXJ5ICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5pcGx0ICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmlwbHQpCiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAuQVJNLmV4aWR4ICAgOiB7ICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAAAvKiBTY3JpcHQgZm9yIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IGNvbWJpbmUgYW5kIHNvcnQgcmVsb2Mgc2VjdGlvbnMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAALyogU2NyaXB0IGZvciAteiBjb21icmVsb2M6IGNvbWJpbmUgYW5kIHNvcnQgcmVsb2Mgc2VjdGlvbnMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWJpZ2FybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAALyogRGVmYXVsdCBsaW5rZXIgc2NyaXB0LCBmb3Igbm9ybWFsIGV4ZWN1dGFibGVzICovCi8qIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBDb3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBzY3JpcHQsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCiAgIGFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodAogICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAqLwpPVVRQVVRfRk9STUFUKCJlbGYzMi1iaWdhcm0iLCAiZWxmMzItYmlnYXJtIiwKCSAgICAgICJlbGYzMi1saXR0bGVhcm0iKQpPVVRQVVRfQVJDSChhcm0pCkVOVFJZKF9zdGFydCkKU0VBUkNIX0RJUigiPS91c3IvYWFyY2g2NC1jcm9zLWxpbnV4LWdudS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbG9jYWwvbGliIik7IFNFQVJDSF9ESVIoIj0vbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xpYiIpOwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgUFJPVklERSAoX19leGVjdXRhYmxlX3N0YXJ0ID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkpOyAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMHgwMDAxMDAwMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAuaW50ZXJwICAgICAgICAgOiB7ICooLmludGVycCkgfQogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmluaXQgICAgICAgOiB7ICooLnJlbC5pbml0KSB9CiAgLnJlbGEuaW5pdCAgICAgIDogeyAqKC5yZWxhLmluaXQpIH0KICAucmVsLnRleHQgICAgICAgOiB7ICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWxhLnRleHQgICAgICA6IHsgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbC5maW5pICAgICAgIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgICA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAgIDogeyAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbGEucm9kYXRhICAgIDogeyAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJlbC5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsYS5kYXRhLnJlbC5ybyAgIDogeyAqKC5yZWxhLmRhdGEucmVsLnJvIC5yZWxhLmRhdGEucmVsLnJvLiogLnJlbGEuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAucmVsLmRhdGEgICAgICAgOiB7ICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWxhLmRhdGEgICAgICA6IHsgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbC50ZGF0YQkgIDogeyAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsYS50ZGF0YQkgIDogeyAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopIH0KICAucmVsLnRic3MJICA6IHsgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWxhLnRic3MJICA6IHsgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikgfQogIC5yZWwuY3RvcnMgICAgICA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAgIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAgIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgICAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgICAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgICAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAgIDogeyAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbGEuYnNzICAgICAgIDogeyAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKSB9CiAgLnJlbC5pcGx0ICAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWxhLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbGFfaXBsdF9lbmQgPSAuKTsKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogIC5BUk0uZXhpZHggICA6IHsgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguaW5pdF9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmluaXRfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9lbmQgPSAuKTsKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAGVhcm1lbGZiX2xpbnV4X2VhYmkuYwBhcm1lbGZiX2xpbnV4X2Vh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dWxkIGJlIGEgU29sYXJpcyBsZCBidWcsIGNvdWxkIGJlIGEgR05VIGxkCiAgYnVnLiAgQnV0IGZvciBub3cgYXNzaWduaW5nIHRoZSB6ZXJvIHZtYXMgd29ya3MuICAqLwpTRUNUSU9OUwp7CiAgLyogUmVhZC1vbmx5IHNlY3Rpb25zLCBtZXJnZWQgaW50byB0ZXh0IHNlZ21lbnQ6ICovCiAgLmludGVycCAgICAgICAwIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAwIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAwIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgMCA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAwIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gIDAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgMDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgMDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAwIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgMCA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAwIDogeyAqKC5yZWwudGV4dCkgfQogIC5yZWxhLnRleHQgICAgMCA6IHsgKigucmVsYS50ZXh0KSB9CiAgLnJlbC5maW5pICAgICAwIDogeyAqKC5yZWwuZmluaSkgfQogIC5yZWxhLmZpbmkgICAgMCA6IHsgKigucmVsYS5maW5pKSB9CiAgLnJlbC5yb2RhdGEgICAwIDogeyAqKC5yZWwucm9kYXRhKSB9CiAgLnJlbGEucm9kYXRhICAwIDogeyAqKC5yZWxhLnJvZGF0YSkgfQogIC5yZWwuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsLmRhdGEucmVsLnJvKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gMCA6IHsgKigucmVsYS5kYXRhLnJlbC5ybykgfQogIC5yZWwuZGF0YSAgICAgMCA6IHsgKigucmVsLmRhdGEpIH0KICAucmVsYS5kYXRhICAgIDAgOiB7ICooLnJlbGEuZGF0YSkgfQogIC5yZWwudGRhdGEJMCA6IHsgKigucmVsLnRkYXRhKSB9CiAgLnJlbGEudGRhdGEJMCA6IHsgKigucmVsYS50ZGF0YSkgfQogIC5yZWwudGJzcwkwIDogeyAqKC5yZWwudGJzcykgfQogIC5yZWxhLnRic3MJMCA6IHsgKigucmVsYS50YnNzKSB9CiAgLnJlbC5jdG9ycyAgICAwIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgIDAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgIDAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgMCA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgMCA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgMCA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgIDAgOiB7ICooLnJlbC5ic3MpIH0KICAucmVsYS5ic3MgICAgIDAgOiB7ICooLnJlbGEuYnNzKSB9CiAgLnJlbC5pcGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsLmlwbHQpCiAgICB9CiAgLnJlbGEuaXBsdCAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAwIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAwIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgIDAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgMCA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgMCA6CiAgewogICAgKigudGV4dCAuc3R1YikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgfQogIC5maW5pICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgLnJvZGF0YSAgICAgICAwIDogeyAqKC5yb2RhdGEpIH0KICAucm9kYXRhMSAgICAgIDAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiIDAgOiB7ICooLkFSTS5leHRhYikgfQogIC5BUk0uZXhpZHggMCA6IHsgKiguQVJNLmV4aWR4KSB9CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAgfQogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdjY19leGNlcHRfdGFibGUgMCA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgMCA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgMCA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICB9CiAgLmdudV9leHRhYiAgICAwIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgMCA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkwIDogeyAqKC50ZGF0YSkgfQogIC50YnNzCQkwIDogeyAqKC50YnNzKSB9CiAgLnByZWluaXRfYXJyYXkgICAwIDoKICB7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICB9CiAgLmpjciAgICAgICAgICAwIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmR5bmFtaWMgICAgICAwIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAwIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAwIDoKICB7CiAgICAqKC5kYXRhKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgMCA6IHsgKiguZGF0YTEpIH0KICAuYnNzICAgICAgICAgIDAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MpCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogIH0KICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQp9CgoAAAAAAAAvKiBTY3JpcHQgZm9yIGxkIC1yOiBsaW5rIHdpdGhvdXQgcmVsb2NhdGlvbiAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQogLyogRm9yIHNvbWUgcmVhc29uLCB0aGUgU29sYXJpcyBsaW5rZXIgbWFrZXMgYmFkIGV4ZWN1dGFibGVzCiAgaWYgZ2xkIC1yIGlzIHVzZWQgYW5kIHRoZSBpbnRlcm1lZGlhdGUgZmlsZSBoYXMgc2VjdGlvbnMgc3RhcnRpbmcKICBhdCBub24temVybyBhZGRyZXNzZXMuICBDb3VsZCBiZSBhIFNvbGFyaXMgbGQgYnVnLCBjb3VsZCBiZSBhIEdOVSBsZAogIGJ1Zy4gIEJ1dCBmb3Igbm93IGFzc2lnbmluZyB0aGUgemVybyB2bWFzIHdvcmtzLiAgKi8KU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC5pbnRlcnAgICAgICAgMCA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgMCA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgMCA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgIDAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgMCA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAwIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kIDA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yIDA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgMCA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgIDAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgMCA6IHsgKigucmVsLnRleHQpIH0KICAucmVsYS50ZXh0ICAgIDAgOiB7ICooLnJlbGEudGV4dCkgfQogIC5yZWwuZmluaSAgICAgMCA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgIDAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgMCA6IHsgKigucmVsLnJvZGF0YSkgfQogIC5yZWxhLnJvZGF0YSAgMCA6IHsgKigucmVsYS5yb2RhdGEpIH0KICAucmVsLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybykgfQogIC5yZWxhLmRhdGEucmVsLnJvIDAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8pIH0KICAucmVsLmRhdGEgICAgIDAgOiB7ICooLnJlbC5kYXRhKSB9CiAgLnJlbGEuZGF0YSAgICAwIDogeyAqKC5yZWxhLmRhdGEpIH0KICAucmVsLnRkYXRhCTAgOiB7ICooLnJlbC50ZGF0YSkgfQogIC5yZWxhLnRkYXRhCTAgOiB7ICooLnJlbGEudGRhdGEpIH0KICAucmVsLnRic3MJMCA6IHsgKigucmVsLnRic3MpIH0KICAucmVsYS50YnNzCTAgOiB7ICooLnJlbGEudGJzcykgfQogIC5yZWwuY3RvcnMgICAgMCA6IHsgKigucmVsLmN0b3JzKSB9CiAgLnJlbGEuY3RvcnMgICAwIDogeyAqKC5yZWxhLmN0b3JzKSB9CiAgLnJlbC5kdG9ycyAgICAwIDogeyAqKC5yZWwuZHRvcnMpIH0KICAucmVsYS5kdG9ycyAgIDAgOiB7ICooLnJlbGEuZHRvcnMpIH0KICAucmVsLmdvdCAgICAgIDAgOiB7ICooLnJlbC5nb3QpIH0KICAucmVsYS5nb3QgICAgIDAgOiB7ICooLnJlbGEuZ290KSB9CiAgLnJlbC5ic3MgICAgICAwIDogeyAqKC5yZWwuYnNzKSB9CiAgLnJlbGEuYnNzICAgICAwIDogeyAqKC5yZWxhLmJzcykgfQogIC5yZWwuaXBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmlwbHQgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgIDAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgMCA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgMCA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAwIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgIDAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgIDAgOgogIHsKICAgICooLnRleHQgLnN0dWIpCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogIH0KICAuZmluaSAgICAgICAgIDAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIC5yb2RhdGEgICAgICAgMCA6IHsgKigucm9kYXRhKSB9CiAgLnJvZGF0YTEgICAgICAwIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAwIDogeyAqKC5BUk0uZXh0YWIpIH0KICAuQVJNLmV4aWR4IDAgOiB7ICooLkFSTS5leGlkeCkgfQogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgIH0KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nY2NfZXhjZXB0X3RhYmxlIDAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiIDAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAwIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgIDAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAgfQogIC5nbnVfZXh0YWIgICAgMCA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAwIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzIDAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJMCA6IHsgKigudGRhdGEpIH0KICAudGJzcwkJMCA6IHsgKigudGJzcykgfQogIC5wcmVpbml0X2FycmF5ICAgMCA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5qY3IgICAgICAgICAgMCA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5keW5hbWljICAgICAgMCA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgMCA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgMCA6CiAgewogICAgKiguZGF0YSkKICB9CiAgLmRhdGExICAgICAgICAwIDogeyAqKC5kYXRhMSkgfQogIC5ic3MgICAgICAgICAgMCA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcykKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgfQogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8pIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9Cn0KCgAAAAAvKiBTY3JpcHQgZm9yIC1OOiBtaXggdGV4dCBhbmQgZGF0YSBvbiBzYW1lIHBhZ2U7IGRvbid0IGFsaWduIGRhdGEgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSAuOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIC1uOiBtaXggdGV4dCBhbmQgZGF0YSBvbiBzYW1lIHBhZ2UgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAALyogU2NyaXB0IGZvciAtcGllIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUsIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAuQVJNLmV4aWR4ICAgOiB7ICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAAAAAAAAAvKiBTY3JpcHQgZm9yIC1waWUgLXogY29tYnJlbG9jOiBwb3NpdGlvbiBpbmRlcGVuZGVudCBleGVjdXRhYmxlLCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuZHluICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pbml0KQogICAgICAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbC5maW5pKQogICAgICAqKC5yZWwucm9kYXRhIC5yZWwucm9kYXRhLiogLnJlbC5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWwuZGF0YS5yZWwucm8gLnJlbC5kYXRhLnJlbC5yby4qIC5yZWwuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopCiAgICAgICooLnJlbC5kYXRhIC5yZWwuZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWwuY3RvcnMpCiAgICAgICooLnJlbC5kdG9ycykKICAgICAgKigucmVsLmdvdCkKICAgICAgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsLmlwbHQpCiAgICAgIFBST1ZJREVfSElEREVOIChfX3JlbF9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAALyogU2NyaXB0IGZvciBsZCAtcGllOiBsaW5rIHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAvKiBTY3JpcHQgZm9yIC0tc2hhcmVkIC16IGNvbWJyZWxvYyAteiBub3cgLXogcmVscm86IHNoYXJlZCBsaWJyYXJ5LCBjb21iaW5lICYgc29ydCByZWxvY3MgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICAqKC5yZWwuaXBsdCkKICAgIH0KICAucmVsYS5keW4gICAgICAgOgogICAgewogICAgICAqKC5yZWxhLmluaXQpCiAgICAgICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsYS5maW5pKQogICAgICAqKC5yZWxhLnJvZGF0YSAucmVsYS5yb2RhdGEuKiAucmVsYS5nbnUubGlua29uY2Uuci4qKQogICAgICAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsYS50YnNzIC5yZWxhLnRic3MuKiAucmVsYS5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsYS5jdG9ycykKICAgICAgKigucmVsYS5kdG9ycykKICAgICAgKigucmVsYS5nb3QpCiAgICAgICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogIC5BUk0uZXhpZHggICA6IHsgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAAAAAAAvKiBTY3JpcHQgZm9yIC0tc2hhcmVkIC16IGNvbWJyZWxvYzogc2hhcmVkIGxpYnJhcnksIGNvbWJpbmUgJiBzb3J0IHJlbG9jcyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5ub3RlLmdudS5idWlsZC1pZCA6IHsgKigubm90ZS5nbnUuYnVpbGQtaWQpIH0KICAuaGFzaCAgICAgICAgICAgOiB7ICooLmhhc2gpIH0KICAuZ251Lmhhc2ggICAgICAgOiB7ICooLmdudS5oYXNoKSB9CiAgLmR5bnN5bSAgICAgICAgIDogeyAqKC5keW5zeW0pIH0KICAuZHluc3RyICAgICAgICAgOiB7ICooLmR5bnN0cikgfQogIC5nbnUudmVyc2lvbiAgICA6IHsgKiguZ251LnZlcnNpb24pIH0KICAuZ251LnZlcnNpb25fZCAgOiB7ICooLmdudS52ZXJzaW9uX2QpIH0KICAuZ251LnZlcnNpb25fciAgOiB7ICooLmdudS52ZXJzaW9uX3IpIH0KICAucmVsLmR5biAgICAgICAgOgogICAgewogICAgICAqKC5yZWwuaW5pdCkKICAgICAgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWwuZmluaSkKICAgICAgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKQogICAgICAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopCiAgICAgICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikKICAgICAgKigucmVsLnRic3MgLnJlbC50YnNzLiogLnJlbC5nbnUubGlua29uY2UudGIuKikKICAgICAgKigucmVsLmN0b3JzKQogICAgICAqKC5yZWwuZHRvcnMpCiAgICAgICooLnJlbC5nb3QpCiAgICAgICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopCiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmR5biAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaW5pdCkKICAgICAgKigucmVsYS50ZXh0IC5yZWxhLnRleHQuKiAucmVsYS5nbnUubGlua29uY2UudC4qKQogICAgICAqKC5yZWxhLmZpbmkpCiAgICAgICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikKICAgICAgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKQogICAgICAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKQogICAgICAqKC5yZWxhLmN0b3JzKQogICAgICAqKC5yZWxhLmR0b3JzKQogICAgICAqKC5yZWxhLmdvdCkKICAgICAgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikKICAgICAgKigucmVsYS5pcGx0KQogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICB9CiAgLmZpbmlfYXJyYXkgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfQllfSU5JVF9QUklPUklUWSguZmluaV9hcnJheS4qKSBTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmZpbmlfYXJyYXkgRVhDTFVERV9GSUxFICgqY3J0YmVnaW4ubyAqY3J0YmVnaW4/Lm8gKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9jICAgICAgMCA6IHsgKiguZGVidWdfbG9jKSB9CiAgLmRlYnVnX21hY2luZm8gIDAgOiB7ICooLmRlYnVnX21hY2luZm8pIH0KICAvKiBTR0kvTUlQUyBEV0FSRiAyIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfd2Vha25hbWVzIDAgOiB7ICooLmRlYnVnX3dlYWtuYW1lcykgfQogIC5kZWJ1Z19mdW5jbmFtZXMgMCA6IHsgKiguZGVidWdfZnVuY25hbWVzKSB9CiAgLmRlYnVnX3R5cGVuYW1lcyAwIDogeyAqKC5kZWJ1Z190eXBlbmFtZXMpIH0KICAuZGVidWdfdmFybmFtZXMgIDAgOiB7ICooLmRlYnVnX3Zhcm5hbWVzKSB9CiAgLyogRFdBUkYgMyAqLwogIC5kZWJ1Z19wdWJ0eXBlcyAwIDogeyAqKC5kZWJ1Z19wdWJ0eXBlcykgfQogIC5kZWJ1Z19yYW5nZXMgICAwIDogeyAqKC5kZWJ1Z19yYW5nZXMpIH0KICAvKiBEV0FSRiBFeHRlbnNpb24uICAqLwogIC5kZWJ1Z19tYWNybyAgICAwIDogeyAqKC5kZWJ1Z19tYWNybykgfQogIC5kZWJ1Z19hZGRyICAgICAwIDogeyAqKC5kZWJ1Z19hZGRyKSB9CiAgLmdudS5hdHRyaWJ1dGVzIDAgOiB7IEtFRVAgKCooLmdudS5hdHRyaWJ1dGVzKSkgfQogIC5ub3RlLmdudS5hcm0uaWRlbnQgMCA6IHsgS0VFUCAoKigubm90ZS5nbnUuYXJtLmlkZW50KSkgfQogIC9ESVNDQVJELyA6IHsgKigubm90ZS5HTlUtc3RhY2spICooLmdudV9kZWJ1Z2xpbmspICooLmdudS5sdG9fKikgfQp9CgoAAAAAAAAAAC8qIFNjcmlwdCBmb3IgbGQgLS1zaGFyZWQ6IGxpbmsgc2hhcmVkIGxpYnJhcnkgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICAuID0gU0VHTUVOVF9TVEFSVCgidGV4dC1zZWdtZW50IiwgMCkgKyBTSVpFT0ZfSEVBREVSUzsKICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5pbml0ICAgICAgIDogeyAqKC5yZWwuaW5pdCkgfQogIC5yZWxhLmluaXQgICAgICA6IHsgKigucmVsYS5pbml0KSB9CiAgLnJlbC50ZXh0ICAgICAgIDogeyAqKC5yZWwudGV4dCAucmVsLnRleHQuKiAucmVsLmdudS5saW5rb25jZS50LiopIH0KICAucmVsYS50ZXh0ICAgICAgOiB7ICooLnJlbGEudGV4dCAucmVsYS50ZXh0LiogLnJlbGEuZ251LmxpbmtvbmNlLnQuKikgfQogIC5yZWwuZmluaSAgICAgICA6IHsgKigucmVsLmZpbmkpIH0KICAucmVsYS5maW5pICAgICAgOiB7ICooLnJlbGEuZmluaSkgfQogIC5yZWwucm9kYXRhICAgICA6IHsgKigucmVsLnJvZGF0YSAucmVsLnJvZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWxhLnJvZGF0YSAgICA6IHsgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yZWwuZGF0YS5yZWwucm8gICA6IHsgKigucmVsLmRhdGEucmVsLnJvIC5yZWwuZGF0YS5yZWwucm8uKiAucmVsLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbGEuZGF0YS5yZWwucm8gICA6IHsgKigucmVsYS5kYXRhLnJlbC5ybyAucmVsYS5kYXRhLnJlbC5yby4qIC5yZWxhLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLnJlbC5kYXRhICAgICAgIDogeyAqKC5yZWwuZGF0YSAucmVsLmRhdGEuKiAucmVsLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsYS5kYXRhICAgICAgOiB7ICooLnJlbGEuZGF0YSAucmVsYS5kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLmQuKikgfQogIC5yZWwudGRhdGEJICA6IHsgKigucmVsLnRkYXRhIC5yZWwudGRhdGEuKiAucmVsLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbGEudGRhdGEJICA6IHsgKigucmVsYS50ZGF0YSAucmVsYS50ZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnJlbC50YnNzCSAgOiB7ICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsYS50YnNzCSAgOiB7ICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopIH0KICAucmVsLmN0b3JzICAgICAgOiB7ICooLnJlbC5jdG9ycykgfQogIC5yZWxhLmN0b3JzICAgICA6IHsgKigucmVsYS5jdG9ycykgfQogIC5yZWwuZHRvcnMgICAgICA6IHsgKigucmVsLmR0b3JzKSB9CiAgLnJlbGEuZHRvcnMgICAgIDogeyAqKC5yZWxhLmR0b3JzKSB9CiAgLnJlbC5nb3QgICAgICAgIDogeyAqKC5yZWwuZ290KSB9CiAgLnJlbGEuZ290ICAgICAgIDogeyAqKC5yZWxhLmdvdCkgfQogIC5yZWwuYnNzICAgICAgICA6IHsgKigucmVsLmJzcyAucmVsLmJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWxhLmJzcyAgICAgICA6IHsgKigucmVsYS5ic3MgLnJlbGEuYnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLmIuKikgfQogIC5yZWwuaXBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5pcGx0KQogICAgfQogIC5yZWxhLmlwbHQgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEuaXBsdCkKICAgIH0KICAucmVsLnBsdCAgICAgICAgOgogICAgewogICAgICAqKC5yZWwucGx0KQogICAgfQogIC5yZWxhLnBsdCAgICAgICA6CiAgICB7CiAgICAgICooLnJlbGEucGx0KQogICAgfQogIC5pbml0ICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmluaXQpKSkKICB9CiAgLnBsdCAgICAgICAgICAgIDogeyAqKC5wbHQpIH0KICAuaXBsdCAgICAgICAgICAgOiB7ICooLmlwbHQpIH0KICAudGV4dCAgICAgICAgICAgOgogIHsKICAgICooLnRleHQudW5saWtlbHkgLnRleHQuKl91bmxpa2VseSAudGV4dC51bmxpa2VseS4qKQogICAgKigudGV4dC5leGl0IC50ZXh0LmV4aXQuKikKICAgICooLnRleHQuc3RhcnR1cCAudGV4dC5zdGFydHVwLiopCiAgICAqKC50ZXh0LmhvdCAudGV4dC5ob3QuKikKICAgICooLnRleHQgLnN0dWIgLnRleHQuKiAuZ251LmxpbmtvbmNlLnQuKikKICAgIC8qIC5nbnUud2FybmluZyBzZWN0aW9ucyBhcmUgaGFuZGxlZCBzcGVjaWFsbHkgYnkgZWxmMzIuZW0uICAqLwogICAgKiguZ251Lndhcm5pbmcpCiAgICAqKC5nbHVlXzd0KSAqKC5nbHVlXzcpICooLnZmcDExX3ZlbmVlcikgKigudjRfYngpCiAgfQogIC5maW5pICAgICAgICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX05PTkUoLmZpbmkpKSkKICB9CiAgUFJPVklERSAoX19ldGV4dCA9IC4pOwogIFBST1ZJREUgKF9ldGV4dCA9IC4pOwogIFBST1ZJREUgKGV0ZXh0ID0gLik7CiAgLnJvZGF0YSAgICAgICAgIDogeyAqKC5yb2RhdGEgLnJvZGF0YS4qIC5nbnUubGlua29uY2Uuci4qKSB9CiAgLnJvZGF0YTEgICAgICAgIDogeyAqKC5yb2RhdGExKSB9CiAgLkFSTS5leHRhYiAgIDogeyAqKC5BUk0uZXh0YWIqIC5nbnUubGlua29uY2UuYXJtZXh0YWIuKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9zdGFydCA9IC4pOwogIC5BUk0uZXhpZHggICA6IHsgKiguQVJNLmV4aWR4KiAuZ251LmxpbmtvbmNlLmFybWV4aWR4LiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfZW5kID0gLik7CiAgLmVoX2ZyYW1lX2hkciA6IHsgKiguZWhfZnJhbWVfaGRyKSAqKC5laF9mcmFtZV9lbnRyeSAuZWhfZnJhbWVfZW50cnkuKikgfQogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUk8geyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9STyB7ICooLmdjY19leGNlcHRfdGFibGUKICAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmdudV9leHRhYiAgIDogT05MWV9JRl9STyB7ICooLmdudV9leHRhYiopIH0KICAvKiBUaGVzZSBzZWN0aW9ucyBhcmUgZ2VuZXJhdGVkIGJ5IHRoZSBTdW4vT3JhY2xlIEMrKyBjb21waWxlci4gICovCiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUk8geyAqKC5leGNlcHRpb25fcmFuZ2VzCiAgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogQWRqdXN0IHRoZSBhZGRyZXNzIGZvciB0aGUgZGF0YSBzZWdtZW50LiAgV2Ugd2FudCB0byBhZGp1c3QgdXAgdG8KICAgICB0aGUgc2FtZSBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZSBvbiB0aGUgbmV4dCBwYWdlIHVwLiAgKi8KICAuID0gREFUQV9TRUdNRU5UX0FMSUdOIChDT05TVEFOVCAoTUFYUEFHRVNJWkUpLCBDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpKTsKICAvKiBFeGNlcHRpb24gaGFuZGxpbmcgICovCiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9SVyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nbnVfZXh0YWIgICAgICA6IE9OTFlfSUZfUlcgeyAqKC5nbnVfZXh0YWIpIH0KICAuZ2NjX2V4Y2VwdF90YWJsZSAgIDogT05MWV9JRl9SVyB7ICooLmdjY19leGNlcHRfdGFibGUgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JXIHsgKiguZXhjZXB0aW9uX3JhbmdlcyAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBUaHJlYWQgTG9jYWwgU3RvcmFnZSBzZWN0aW9ucyAgKi8KICAudGRhdGEJICA6IHsgKigudGRhdGEgLnRkYXRhLiogLmdudS5saW5rb25jZS50ZC4qKSB9CiAgLnRic3MJCSAgOiB7ICooLnRic3MgLnRic3MuKiAuZ251LmxpbmtvbmNlLnRiLiopICooLnRjb21tb24pIH0KICAucHJlaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooLnByZWluaXRfYXJyYXkpKQogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICB9CiAgLmN0b3JzICAgICAgICAgIDoKICB7CiAgICAvKiBnY2MgdXNlcyBjcnRiZWdpbi5vIHRvIGZpbmQgdGhlIHN0YXJ0IG9mCiAgICAgICB0aGUgY29uc3RydWN0b3JzLCBzbyB3ZSBtYWtlIHN1cmUgaXQgaXMKICAgICAgIGZpcnN0LiAgQmVjYXVzZSB0aGlzIGlzIGEgd2lsZGNhcmQsIGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciBpZiB0aGUgdXNlciBkb2VzIG5vdAogICAgICAgYWN0dWFsbHkgbGluayBhZ2FpbnN0IGNydGJlZ2luLm87IHRoZQogICAgICAgbGlua2VyIHdvbid0IGxvb2sgZm9yIGEgZmlsZSB0byBtYXRjaCBhCiAgICAgICB3aWxkY2FyZC4gIFRoZSB3aWxkY2FyZCBhbHNvIG1lYW5zIHRoYXQgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGRpcmVjdG9yeSBjcnRiZWdpbi5vCiAgICAgICBpcyBpbi4gICovCiAgICBLRUVQICgqY3J0YmVnaW4ubyguY3RvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5jdG9ycykpCiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluY2x1ZGUgdGhlIC5jdG9yIHNlY3Rpb24gZnJvbQogICAgICAgdGhlIGNydGVuZC5vIGZpbGUgdW50aWwgYWZ0ZXIgdGhlIHNvcnRlZCBjdG9ycy4KICAgICAgIFRoZSAuY3RvciBzZWN0aW9uIGZyb20gdGhlIGNydGVuZCBmaWxlIGNvbnRhaW5zIHRoZQogICAgICAgZW5kIG9mIGN0b3JzIG1hcmtlciBhbmQgaXQgbXVzdCBiZSBsYXN0ICovCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuY3RvcnMpKQogICAgS0VFUCAoKihTT1JUKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5jdG9ycykpCiAgfQogIC5kdG9ycyAgICAgICAgICA6CiAgewogICAgS0VFUCAoKmNydGJlZ2luLm8oLmR0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguZHRvcnMpKQogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIEtFRVAgKCooU09SVCguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZHRvcnMpKQogIH0KICAuamNyICAgICAgICAgICAgOiB7IEtFRVAgKCooLmpjcikpIH0KICAuZGF0YS5yZWwucm8gOiB7ICooLmRhdGEucmVsLnJvLmxvY2FsKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLmxvY2FsLiopICooLmRhdGEucmVsLnJvIC5kYXRhLnJlbC5yby4qIC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5keW5hbWljICAgICAgICA6IHsgKiguZHluYW1pYykgfQogIC4gPSBEQVRBX1NFR01FTlRfUkVMUk9fRU5EICgwLCAuKTsKICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuZGF0YSAgICAgICAgICAgOgogIHsKICAgIFBST1ZJREUgKF9fZGF0YV9zdGFydCA9IC4pOwogICAgKiguZGF0YSAuZGF0YS4qIC5nbnUubGlua29uY2UuZC4qKQogICAgU09SVChDT05TVFJVQ1RPUlMpCiAgfQogIC5kYXRhMSAgICAgICAgICA6IHsgKiguZGF0YTEpIH0KICBfZWRhdGEgPSAuOyBQUk9WSURFIChlZGF0YSA9IC4pOwogIF9fYnNzX3N0YXJ0ID0gLjsKICBfX2Jzc19zdGFydF9fID0gLjsKICAuYnNzICAgICAgICAgICAgOgogIHsKICAgKiguZHluYnNzKQogICAqKC5ic3MgLmJzcy4qIC5nbnUubGlua29uY2UuYi4qKQogICAqKENPTU1PTikKICAgLyogQWxpZ24gaGVyZSB0byBlbnN1cmUgdGhhdCB0aGUgLmJzcyBzZWN0aW9uIG9jY3VwaWVzIHNwYWNlIHVwIHRvCiAgICAgIF9lbmQuICBBbGlnbiBhZnRlciAuYnNzIHRvIGVuc3VyZSBjb3JyZWN0IGFsaWdubWVudCBldmVuIGlmIHRoZQogICAgICAuYnNzIHNlY3Rpb24gZGlzYXBwZWFycyBiZWNhdXNlIHRoZXJlIGFyZSBubyBpbnB1dCBzZWN0aW9ucy4KICAgICAgRklYTUU6IFdoeSBkbyB3ZSBuZWVkIGl0PyBXaGVuIHRoZXJlIGlzIG5vIC5ic3Mgc2VjdGlvbiwgd2UgZG9uJ3QKICAgICAgcGFkIHRoZSAuZGF0YSBzZWN0aW9uLiAgKi8KICAgLiA9IEFMSUdOKC4gIT0gMCA/IDMyIC8gOCA6IDEpOwogIH0KICBfYnNzX2VuZF9fID0gLiA7IF9fYnNzX2VuZF9fID0gLiA7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgLiA9IFNFR01FTlRfU1RBUlQoImxkYXRhLXNlZ21lbnQiLCAuKTsKICAuID0gQUxJR04oMzIgLyA4KTsKICBfX2VuZF9fID0gLiA7CiAgX2VuZCA9IC47IFBST1ZJREUgKGVuZCA9IC4pOwogIC4gPSBEQVRBX1NFR01FTlRfRU5EICguKTsKICAvKiBTdGFicyBkZWJ1Z2dpbmcgc2VjdGlvbnMuICAqLwogIC5zdGFiICAgICAgICAgIDAgOiB7ICooLnN0YWIpIH0KICAuc3RhYnN0ciAgICAgICAwIDogeyAqKC5zdGFic3RyKSB9CiAgLnN0YWIuZXhjbCAgICAgMCA6IHsgKiguc3RhYi5leGNsKSB9CiAgLnN0YWIuZXhjbHN0ciAgMCA6IHsgKiguc3RhYi5leGNsc3RyKSB9CiAgLnN0YWIuaW5kZXggICAgMCA6IHsgKiguc3RhYi5pbmRleCkgfQogIC5zdGFiLmluZGV4c3RyIDAgOiB7ICooLnN0YWIuaW5kZXhzdHIpIH0KICAuY29tbWVudCAgICAgICAwIDogeyAqKC5jb21tZW50KSB9CiAgLyogRFdBUkYgZGVidWcgc2VjdGlvbnMuCiAgICAgU3ltYm9scyBpbiB0aGUgRFdBUkYgZGVidWdnaW5nIHNlY3Rpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nCiAgICAgb2YgdGhlIHNlY3Rpb24gc28gd2UgYmVnaW4gdGhlbSBhdCAwLiAgKi8KICAvKiBEV0FSRiAxICovCiAgLmRlYnVnICAgICAgICAgIDAgOiB7ICooLmRlYnVnKSB9CiAgLmxpbmUgICAgICAgICAgIDAgOiB7ICooLmxpbmUpIH0KICAvKiBHTlUgRFdBUkYgMSBleHRlbnNpb25zICovCiAgLmRlYnVnX3NyY2luZm8gIDAgOiB7ICooLmRlYnVnX3NyY2luZm8pIH0KICAuZGVidWdfc2ZuYW1lcyAgMCA6IHsgKiguZGVidWdfc2ZuYW1lcykgfQogIC8qIERXQVJGIDEuMSBhbmQgRFdBUkYgMiAqLwogIC5kZWJ1Z19hcmFuZ2VzICAwIDogeyAqKC5kZWJ1Z19hcmFuZ2VzKSB9CiAgLmRlYnVnX3B1Ym5hbWVzIDAgOiB7ICooLmRlYnVnX3B1Ym5hbWVzKSB9CiAgLyogRFdBUkYgMiAqLwogIC5kZWJ1Z19pbmZvICAgICAwIDogeyAqKC5kZWJ1Z19pbmZvIC5nbnUubGlua29uY2Uud2kuKikgfQogIC5kZWJ1Z19hYmJyZXYgICAwIDogeyAqKC5kZWJ1Z19hYmJyZXYpIH0KICAuZGVidWdfbGluZSAgICAgMCA6IHsgKiguZGVidWdfbGluZSAuZGVidWdfbGluZS4qIC5kZWJ1Z19saW5lX2VuZCApIH0KICAuZGVidWdfZnJhbWUgICAgMCA6IHsgKiguZGVidWdfZnJhbWUpIH0KICAuZGVidWdfc3RyICAgICAgMCA6IHsgKiguZGVidWdfc3RyKSB9CiAgLmRlYnVnX2xvYyAgICAgIDAgOiB7ICooLmRlYnVnX2xvYykgfQogIC5kZWJ1Z19tYWNpbmZvICAwIDogeyAqKC5kZWJ1Z19tYWNpbmZvKSB9CiAgLyogU0dJL01JUFMgRFdBUkYgMiBleHRlbnNpb25zICovCiAgLmRlYnVnX3dlYWtuYW1lcyAwIDogeyAqKC5kZWJ1Z193ZWFrbmFtZXMpIH0KICAuZGVidWdfZnVuY25hbWVzIDAgOiB7ICooLmRlYnVnX2Z1bmNuYW1lcykgfQogIC5kZWJ1Z190eXBlbmFtZXMgMCA6IHsgKiguZGVidWdfdHlwZW5hbWVzKSB9CiAgLmRlYnVnX3Zhcm5hbWVzICAwIDogeyAqKC5kZWJ1Z192YXJuYW1lcykgfQogIC8qIERXQVJGIDMgKi8KICAuZGVidWdfcHVidHlwZXMgMCA6IHsgKiguZGVidWdfcHVidHlwZXMpIH0KICAuZGVidWdfcmFuZ2VzICAgMCA6IHsgKiguZGVidWdfcmFuZ2VzKSB9CiAgLyogRFdBUkYgRXh0ZW5zaW9uLiAgKi8KICAuZGVidWdfbWFjcm8gICAgMCA6IHsgKiguZGVidWdfbWFjcm8pIH0KICAuZGVidWdfYWRkciAgICAgMCA6IHsgKiguZGVidWdfYWRkcikgfQogIC5nbnUuYXR0cmlidXRlcyAwIDogeyBLRUVQICgqKC5nbnUuYXR0cmlidXRlcykpIH0KICAubm90ZS5nbnUuYXJtLmlkZW50IDAgOiB7IEtFRVAgKCooLm5vdGUuZ251LmFybS5pZGVudCkpIH0KICAvRElTQ0FSRC8gOiB7ICooLm5vdGUuR05VLXN0YWNrKSAqKC5nbnVfZGVidWdsaW5rKSAqKC5nbnUubHRvXyopIH0KfQoKAAAAAC8qIFNjcmlwdCBmb3IgLXogY29tYnJlbG9jIC16IG5vdyAteiByZWxybzogY29tYmluZSBhbmQgc29ydCByZWxvYyBzZWN0aW9ucyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAuQVJNLmV4aWR4ICAgOiB7ICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuZ290ICAgICAgICAgICAgOiB7ICooLmdvdC5wbHQpICooLmlnb3QucGx0KSAqKC5nb3QpICooLmlnb3QpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAvKiBTY3JpcHQgZm9yIC16IGNvbWJyZWxvYzogY29tYmluZSBhbmQgc29ydCByZWxvYyBzZWN0aW9ucyAqLwovKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgQ29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgc2NyaXB0LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAogICBhcmUgcGVybWl0dGVkIGluIGFueSBtZWRpdW0gd2l0aG91dCByb3lhbHR5IHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQKICAgbm90aWNlIGFuZCB0aGlzIG5vdGljZSBhcmUgcHJlc2VydmVkLiAgKi8KT1VUUFVUX0ZPUk1BVCgiZWxmMzItbGl0dGxlYXJtIiwgImVsZjMyLWJpZ2FybSIsCgkgICAgICAiZWxmMzItbGl0dGxlYXJtIikKT1VUUFVUX0FSQ0goYXJtKQpFTlRSWShfc3RhcnQpClNFQVJDSF9ESVIoIj0vdXNyL2FhcmNoNjQtY3Jvcy1saW51eC1nbnUvbGliIik7IFNFQVJDSF9ESVIoIj0vdXNyL2xvY2FsL2xpYiIpOyBTRUFSQ0hfRElSKCI9L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9saWIiKTsKU0VDVElPTlMKewogIC8qIFJlYWQtb25seSBzZWN0aW9ucywgbWVyZ2VkIGludG8gdGV4dCBzZWdtZW50OiAqLwogIFBST1ZJREUgKF9fZXhlY3V0YWJsZV9zdGFydCA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApKTsgLiA9IFNFR01FTlRfU1RBUlQoInRleHQtc2VnbWVudCIsIDB4MDAwMTAwMDApICsgU0laRU9GX0hFQURFUlM7CiAgLmludGVycCAgICAgICAgIDogeyAqKC5pbnRlcnApIH0KICAubm90ZS5nbnUuYnVpbGQtaWQgOiB7ICooLm5vdGUuZ251LmJ1aWxkLWlkKSB9CiAgLmhhc2ggICAgICAgICAgIDogeyAqKC5oYXNoKSB9CiAgLmdudS5oYXNoICAgICAgIDogeyAqKC5nbnUuaGFzaCkgfQogIC5keW5zeW0gICAgICAgICA6IHsgKiguZHluc3ltKSB9CiAgLmR5bnN0ciAgICAgICAgIDogeyAqKC5keW5zdHIpIH0KICAuZ251LnZlcnNpb24gICAgOiB7ICooLmdudS52ZXJzaW9uKSB9CiAgLmdudS52ZXJzaW9uX2QgIDogeyAqKC5nbnUudmVyc2lvbl9kKSB9CiAgLmdudS52ZXJzaW9uX3IgIDogeyAqKC5nbnUudmVyc2lvbl9yKSB9CiAgLnJlbC5keW4gICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLmluaXQpCiAgICAgICooLnJlbC50ZXh0IC5yZWwudGV4dC4qIC5yZWwuZ251LmxpbmtvbmNlLnQuKikKICAgICAgKigucmVsLmZpbmkpCiAgICAgICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopCiAgICAgICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikKICAgICAgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWwudGRhdGEgLnJlbC50ZGF0YS4qIC5yZWwuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbC50YnNzIC5yZWwudGJzcy4qIC5yZWwuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbC5jdG9ycykKICAgICAgKigucmVsLmR0b3JzKQogICAgICAqKC5yZWwuZ290KQogICAgICAqKC5yZWwuYnNzIC5yZWwuYnNzLiogLnJlbC5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuZHluICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5pbml0KQogICAgICAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopCiAgICAgICooLnJlbGEuZmluaSkKICAgICAgKigucmVsYS5yb2RhdGEgLnJlbGEucm9kYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnIuKikKICAgICAgKigucmVsYS5kYXRhIC5yZWxhLmRhdGEuKiAucmVsYS5nbnUubGlua29uY2UuZC4qKQogICAgICAqKC5yZWxhLnRkYXRhIC5yZWxhLnRkYXRhLiogLnJlbGEuZ251LmxpbmtvbmNlLnRkLiopCiAgICAgICooLnJlbGEudGJzcyAucmVsYS50YnNzLiogLnJlbGEuZ251LmxpbmtvbmNlLnRiLiopCiAgICAgICooLnJlbGEuY3RvcnMpCiAgICAgICooLnJlbGEuZHRvcnMpCiAgICAgICooLnJlbGEuZ290KQogICAgICAqKC5yZWxhLmJzcyAucmVsYS5ic3MuKiAucmVsYS5nbnUubGlua29uY2UuYi4qKQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfc3RhcnQgPSAuKTsKICAgICAgKigucmVsYS5pcGx0KQogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxhX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbC5wbHQgICAgICAgIDoKICAgIHsKICAgICAgKigucmVsLnBsdCkKICAgIH0KICAucmVsYS5wbHQgICAgICAgOgogICAgewogICAgICAqKC5yZWxhLnBsdCkKICAgIH0KICAuaW5pdCAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5pbml0KSkpCiAgfQogIC5wbHQgICAgICAgICAgICA6IHsgKigucGx0KSB9CiAgLmlwbHQgICAgICAgICAgIDogeyAqKC5pcGx0KSB9CiAgLnRleHQgICAgICAgICAgIDoKICB7CiAgICAqKC50ZXh0LnVubGlrZWx5IC50ZXh0LipfdW5saWtlbHkgLnRleHQudW5saWtlbHkuKikKICAgICooLnRleHQuZXhpdCAudGV4dC5leGl0LiopCiAgICAqKC50ZXh0LnN0YXJ0dXAgLnRleHQuc3RhcnR1cC4qKQogICAgKigudGV4dC5ob3QgLnRleHQuaG90LiopCiAgICAqKC50ZXh0IC5zdHViIC50ZXh0LiogLmdudS5saW5rb25jZS50LiopCiAgICAvKiAuZ251Lndhcm5pbmcgc2VjdGlvbnMgYXJlIGhhbmRsZWQgc3BlY2lhbGx5IGJ5IGVsZjMyLmVtLiAgKi8KICAgICooLmdudS53YXJuaW5nKQogICAgKiguZ2x1ZV83dCkgKiguZ2x1ZV83KSAqKC52ZnAxMV92ZW5lZXIpICooLnY0X2J4KQogIH0KICAuZmluaSAgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCooU09SVF9OT05FKC5maW5pKSkpCiAgfQogIFBST1ZJREUgKF9fZXRleHQgPSAuKTsKICBQUk9WSURFIChfZXRleHQgPSAuKTsKICBQUk9WSURFIChldGV4dCA9IC4pOwogIC5yb2RhdGEgICAgICAgICA6IHsgKigucm9kYXRhIC5yb2RhdGEuKiAuZ251LmxpbmtvbmNlLnIuKikgfQogIC5yb2RhdGExICAgICAgICA6IHsgKigucm9kYXRhMSkgfQogIC5BUk0uZXh0YWIgICA6IHsgKiguQVJNLmV4dGFiKiAuZ251LmxpbmtvbmNlLmFybWV4dGFiLiopIH0KICAgUFJPVklERV9ISURERU4gKF9fZXhpZHhfc3RhcnQgPSAuKTsKICAuQVJNLmV4aWR4ICAgOiB7ICooLkFSTS5leGlkeCogLmdudS5saW5rb25jZS5hcm1leGlkeC4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X2VuZCA9IC4pOwogIC5laF9mcmFtZV9oZHIgOiB7ICooLmVoX2ZyYW1lX2hkcikgKiguZWhfZnJhbWVfZW50cnkgLmVoX2ZyYW1lX2VudHJ5LiopIH0KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JPIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUk8geyAqKC5nY2NfZXhjZXB0X3RhYmxlCiAgLmdjY19leGNlcHRfdGFibGUuKikgfQogIC5nbnVfZXh0YWIgICA6IE9OTFlfSUZfUk8geyAqKC5nbnVfZXh0YWIqKSB9CiAgLyogVGhlc2Ugc2VjdGlvbnMgYXJlIGdlbmVyYXRlZCBieSB0aGUgU3VuL09yYWNsZSBDKysgY29tcGlsZXIuICAqLwogIC5leGNlcHRpb25fcmFuZ2VzICAgOiBPTkxZX0lGX1JPIHsgKiguZXhjZXB0aW9uX3JhbmdlcwogIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIEFkanVzdCB0aGUgYWRkcmVzcyBmb3IgdGhlIGRhdGEgc2VnbWVudC4gIFdlIHdhbnQgdG8gYWRqdXN0IHVwIHRvCiAgICAgdGhlIHNhbWUgYWRkcmVzcyB3aXRoaW4gdGhlIHBhZ2Ugb24gdGhlIG5leHQgcGFnZSB1cC4gICovCiAgLiA9IERBVEFfU0VHTUVOVF9BTElHTiAoQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSwgQ09OU1RBTlQgKENPTU1PTlBBR0VTSVpFKSk7CiAgLyogRXhjZXB0aW9uIGhhbmRsaW5nICAqLwogIC5laF9mcmFtZSAgICAgICA6IE9OTFlfSUZfUlcgeyBLRUVQICgqKC5laF9mcmFtZSkpICooLmVoX2ZyYW1lLiopIH0KICAuZ251X2V4dGFiICAgICAgOiBPTkxZX0lGX1JXIHsgKiguZ251X2V4dGFiKSB9CiAgLmdjY19leGNlcHRfdGFibGUgICA6IE9OTFlfSUZfUlcgeyAqKC5nY2NfZXhjZXB0X3RhYmxlIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9SVyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMgLmV4Y2VwdGlvbl9yYW5nZXMqKSB9CiAgLyogVGhyZWFkIExvY2FsIFN0b3JhZ2Ugc2VjdGlvbnMgICovCiAgLnRkYXRhCSAgOiB7ICooLnRkYXRhIC50ZGF0YS4qIC5nbnUubGlua29uY2UudGQuKikgfQogIC50YnNzCQkgIDogeyAqKC50YnNzIC50YnNzLiogLmdudS5saW5rb25jZS50Yi4qKSAqKC50Y29tbW9uKSB9CiAgLnByZWluaXRfYXJyYXkgICAgIDoKICB7CiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X3N0YXJ0ID0gLik7CiAgICBLRUVQICgqKC5wcmVpbml0X2FycmF5KSkKICAgIFBST1ZJREVfSElEREVOIChfX3ByZWluaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5pbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9faW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmluaXRfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5jdG9ycy4qKSkpCiAgICBLRUVQICgqKC5pbml0X2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfZW5kID0gLik7CiAgfQogIC5maW5pX2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fZmluaV9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKihTT1JUX0JZX0lOSVRfUFJJT1JJVFkoLmZpbmlfYXJyYXkuKikgU09SVF9CWV9JTklUX1BSSU9SSVRZKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5maW5pX2FycmF5IEVYQ0xVREVfRklMRSAoKmNydGJlZ2luLm8gKmNydGJlZ2luPy5vICpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmR0b3JzKSkKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfZW5kID0gLik7CiAgfQogIC5jdG9ycyAgICAgICAgICA6CiAgewogICAgLyogZ2NjIHVzZXMgY3J0YmVnaW4ubyB0byBmaW5kIHRoZSBzdGFydCBvZgogICAgICAgdGhlIGNvbnN0cnVjdG9ycywgc28gd2UgbWFrZSBzdXJlIGl0IGlzCiAgICAgICBmaXJzdC4gIEJlY2F1c2UgdGhpcyBpcyBhIHdpbGRjYXJkLCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgaWYgdGhlIHVzZXIgZG9lcyBub3QKICAgICAgIGFjdHVhbGx5IGxpbmsgYWdhaW5zdCBjcnRiZWdpbi5vOyB0aGUKICAgICAgIGxpbmtlciB3b24ndCBsb29rIGZvciBhIGZpbGUgdG8gbWF0Y2ggYQogICAgICAgd2lsZGNhcmQuICBUaGUgd2lsZGNhcmQgYWxzbyBtZWFucyB0aGF0IGl0CiAgICAgICBkb2Vzbid0IG1hdHRlciB3aGljaCBkaXJlY3RvcnkgY3J0YmVnaW4ubwogICAgICAgaXMgaW4uICAqLwogICAgS0VFUCAoKmNydGJlZ2luLm8oLmN0b3JzKSkKICAgIEtFRVAgKCpjcnRiZWdpbj8ubyguY3RvcnMpKQogICAgLyogV2UgZG9uJ3Qgd2FudCB0byBpbmNsdWRlIHRoZSAuY3RvciBzZWN0aW9uIGZyb20KICAgICAgIHRoZSBjcnRlbmQubyBmaWxlIHVudGlsIGFmdGVyIHRoZSBzb3J0ZWQgY3RvcnMuCiAgICAgICBUaGUgLmN0b3Igc2VjdGlvbiBmcm9tIHRoZSBjcnRlbmQgZmlsZSBjb250YWlucyB0aGUKICAgICAgIGVuZCBvZiBjdG9ycyBtYXJrZXIgYW5kIGl0IG11c3QgYmUgbGFzdCAqLwogICAgS0VFUCAoKihFWENMVURFX0ZJTEUgKCpjcnRlbmQubyAqY3J0ZW5kPy5vICkgLmN0b3JzKSkKICAgIEtFRVAgKCooU09SVCguY3RvcnMuKikpKQogICAgS0VFUCAoKiguY3RvcnMpKQogIH0KICAuZHRvcnMgICAgICAgICAgOgogIHsKICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5kdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmR0b3JzKSkKICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmR0b3JzLiopKSkKICAgIEtFRVAgKCooLmR0b3JzKSkKICB9CiAgLmpjciAgICAgICAgICAgIDogeyBLRUVQICgqKC5qY3IpKSB9CiAgLmRhdGEucmVsLnJvIDogeyAqKC5kYXRhLnJlbC5yby5sb2NhbCogLmdudS5saW5rb25jZS5kLnJlbC5yby5sb2NhbC4qKSAqKC5kYXRhLnJlbC5ybyAuZGF0YS5yZWwucm8uKiAuZ251LmxpbmtvbmNlLmQucmVsLnJvLiopIH0KICAuZHluYW1pYyAgICAgICAgOiB7ICooLmR5bmFtaWMpIH0KICAuID0gREFUQV9TRUdNRU5UX1JFTFJPX0VORCAoMCwgLik7CiAgLmdvdCAgICAgICAgICAgIDogeyAqKC5nb3QucGx0KSAqKC5pZ290LnBsdCkgKiguZ290KSAqKC5pZ290KSB9CiAgLmRhdGEgICAgICAgICAgIDoKICB7CiAgICBQUk9WSURFIChfX2RhdGFfc3RhcnQgPSAuKTsKICAgICooLmRhdGEgLmRhdGEuKiAuZ251LmxpbmtvbmNlLmQuKikKICAgIFNPUlQoQ09OU1RSVUNUT1JTKQogIH0KICAuZGF0YTEgICAgICAgICAgOiB7ICooLmRhdGExKSB9CiAgX2VkYXRhID0gLjsgUFJPVklERSAoZWRhdGEgPSAuKTsKICBfX2Jzc19zdGFydCA9IC47CiAgX19ic3Nfc3RhcnRfXyA9IC47CiAgLmJzcyAgICAgICAgICAgIDoKICB7CiAgICooLmR5bmJzcykKICAgKiguYnNzIC5ic3MuKiAuZ251LmxpbmtvbmNlLmIuKikKICAgKihDT01NT04pCiAgIC8qIEFsaWduIGhlcmUgdG8gZW5zdXJlIHRoYXQgdGhlIC5ic3Mgc2VjdGlvbiBvY2N1cGllcyBzcGFjZSB1cCB0bwogICAgICBfZW5kLiAgQWxpZ24gYWZ0ZXIgLmJzcyB0byBlbnN1cmUgY29ycmVjdCBhbGlnbm1lbnQgZXZlbiBpZiB0aGUKICAgICAgLmJzcyBzZWN0aW9uIGRpc2FwcGVhcnMgYmVjYXVzZSB0aGVyZSBhcmUgbm8gaW5wdXQgc2VjdGlvbnMuCiAgICAgIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCBpdD8gV2hlbiB0aGVyZSBpcyBubyAuYnNzIHNlY3Rpb24sIHdlIGRvbid0CiAgICAgIHBhZCB0aGUgLmRhdGEgc2VjdGlvbi4gICovCiAgIC4gPSBBTElHTiguICE9IDAgPyAzMiAvIDggOiAxKTsKICB9CiAgX2Jzc19lbmRfXyA9IC4gOyBfX2Jzc19lbmRfXyA9IC4gOwogIC4gPSBBTElHTigzMiAvIDgpOwogIC4gPSBTRUdNRU5UX1NUQVJUKCJsZGF0YS1zZWdtZW50IiwgLik7CiAgLiA9IEFMSUdOKDMyIC8gOCk7CiAgX19lbmRfXyA9IC4gOwogIF9lbmQgPSAuOyBQUk9WSURFIChlbmQgPSAuKTsKICAuID0gREFUQV9TRUdNRU5UX0VORCAoLik7CiAgLyogU3RhYnMgZGVidWdnaW5nIHNlY3Rpb25zLiAgKi8KICAuc3RhYiAgICAgICAgICAwIDogeyAqKC5zdGFiKSB9CiAgLnN0YWJzdHIgICAgICAgMCA6IHsgKiguc3RhYnN0cikgfQogIC5zdGFiLmV4Y2wgICAgIDAgOiB7ICooLnN0YWIuZXhjbCkgfQogIC5zdGFiLmV4Y2xzdHIgIDAgOiB7ICooLnN0YWIuZXhjbHN0cikgfQogIC5zdGFiLmluZGV4ICAgIDAgOiB7ICooLnN0YWIuaW5kZXgpIH0KICAuc3RhYi5pbmRleHN0ciAwIDogeyAqKC5zdGFiLmluZGV4c3RyKSB9CiAgLmNvbW1lbnQgICAgICAgMCA6IHsgKiguY29tbWVudCkgfQogIC8qIERXQVJGIGRlYnVnIHNlY3Rpb25zLgogICAgIFN5bWJvbHMgaW4gdGhlIERXQVJGIGRlYnVnZ2luZyBzZWN0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZwogICAgIG9mIHRoZSBzZWN0aW9uIHNvIHdlIGJlZ2luIHRoZW0gYXQgMC4gICovCiAgLyogRFdBUkYgMSAqLwogIC5kZWJ1ZyAgICAgICAgICAwIDogeyAqKC5kZWJ1ZykgfQogIC5saW5lICAgICAgICAgICAwIDogeyAqKC5saW5lKSB9CiAgLyogR05VIERXQVJGIDEgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z19zcmNpbmZvICAwIDogeyAqKC5kZWJ1Z19zcmNpbmZvKSB9CiAgLmRlYnVnX3NmbmFtZXMgIDAgOiB7ICooLmRlYnVnX3NmbmFtZXMpIH0KICAvKiBEV0FSRiAxLjEgYW5kIERXQVJGIDIgKi8KICAuZGVidWdfYXJhbmdlcyAgMCA6IHsgKiguZGVidWdfYXJhbmdlcykgfQogIC5kZWJ1Z19wdWJuYW1lcyAwIDogeyAqKC5kZWJ1Z19wdWJuYW1lcykgfQogIC8qIERXQVJGIDIgKi8KICAuZGVidWdfaW5mbyAgICAgMCA6IHsgKiguZGVidWdfaW5mbyAuZ251LmxpbmtvbmNlLndpLiopIH0KICAuZGVidWdfYWJicmV2ICAgMCA6IHsgKiguZGVidWdfYWJicmV2KSB9CiAgLmRlYnVnX2xpbmUgICAgIDAgOiB7ICooLmRlYnVnX2xpbmUgLmRlYnVnX2xpbmUuKiAuZGVidWdfbGluZV9lbmQgKSB9CiAgLmRlYnVnX2ZyYW1lICAgIDAgOiB7ICooLmRlYnVnX2ZyYW1lKSB9CiAgLmRlYnVnX3N0ciAgICAgIDAgOiB7ICooLmRlYnVnX3N0cikgfQogIC5kZWJ1Z19sb2MgICAgICAwIDogeyAqKC5kZWJ1Z19sb2MpIH0KICAuZGVidWdfbWFjaW5mbyAgMCA6IHsgKiguZGVidWdfbWFjaW5mbykgfQogIC8qIFNHSS9NSVBTIERXQVJGIDIgZXh0ZW5zaW9ucyAqLwogIC5kZWJ1Z193ZWFrbmFtZXMgMCA6IHsgKiguZGVidWdfd2Vha25hbWVzKSB9CiAgLmRlYnVnX2Z1bmNuYW1lcyAwIDogeyAqKC5kZWJ1Z19mdW5jbmFtZXMpIH0KICAuZGVidWdfdHlwZW5hbWVzIDAgOiB7ICooLmRlYnVnX3R5cGVuYW1lcykgfQogIC5kZWJ1Z192YXJuYW1lcyAgMCA6IHsgKiguZGVidWdfdmFybmFtZXMpIH0KICAvKiBEV0FSRiAzICovCiAgLmRlYnVnX3B1YnR5cGVzIDAgOiB7ICooLmRlYnVnX3B1YnR5cGVzKSB9CiAgLmRlYnVnX3JhbmdlcyAgIDAgOiB7ICooLmRlYnVnX3JhbmdlcykgfQogIC8qIERXQVJGIEV4dGVuc2lvbi4gICovCiAgLmRlYnVnX21hY3JvICAgIDAgOiB7ICooLmRlYnVnX21hY3JvKSB9CiAgLmRlYnVnX2FkZHIgICAgIDAgOiB7ICooLmRlYnVnX2FkZHIpIH0KICAuZ251LmF0dHJpYnV0ZXMgMCA6IHsgS0VFUCAoKiguZ251LmF0dHJpYnV0ZXMpKSB9CiAgLm5vdGUuZ251LmFybS5pZGVudCAwIDogeyBLRUVQICgqKC5ub3RlLmdudS5hcm0uaWRlbnQpKSB9CiAgL0RJU0NBUkQvIDogeyAqKC5ub3RlLkdOVS1zdGFjaykgKiguZ251X2RlYnVnbGluaykgKiguZ251Lmx0b18qKSB9Cn0KCgAvKiBEZWZhdWx0IGxpbmtlciBzY3JpcHQsIGZvciBub3JtYWwgZXhlY3V0YWJsZXMgKi8KLyogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgIENvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHNjcmlwdCwgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKICAgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CiAgIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNlcnZlZC4gICovCk9VVFBVVF9GT1JNQVQoImVsZjMyLWxpdHRsZWFybSIsICJlbGYzMi1iaWdhcm0iLAoJICAgICAgImVsZjMyLWxpdHRsZWFybSIpCk9VVFBVVF9BUkNIKGFybSkKRU5UUlkoX3N0YXJ0KQpTRUFSQ0hfRElSKCI9L3Vzci9hYXJjaDY0LWNyb3MtbGludXgtZ251L2xpYiIpOyBTRUFSQ0hfRElSKCI9L3Vzci9sb2NhbC9saWIiKTsgU0VBUkNIX0RJUigiPS9saWIiKTsgU0VBUkNIX0RJUigiPS91c3IvbGliIik7ClNFQ1RJT05TCnsKICAvKiBSZWFkLW9ubHkgc2VjdGlvbnMsIG1lcmdlZCBpbnRvIHRleHQgc2VnbWVudDogKi8KICBQUk9WSURFIChfX2V4ZWN1dGFibGVfc3RhcnQgPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSk7IC4gPSBTRUdNRU5UX1NUQVJUKCJ0ZXh0LXNlZ21lbnQiLCAweDAwMDEwMDAwKSArIFNJWkVPRl9IRUFERVJTOwogIC5pbnRlcnAgICAgICAgICA6IHsgKiguaW50ZXJwKSB9CiAgLm5vdGUuZ251LmJ1aWxkLWlkIDogeyAqKC5ub3RlLmdudS5idWlsZC1pZCkgfQogIC5oYXNoICAgICAgICAgICA6IHsgKiguaGFzaCkgfQogIC5nbnUuaGFzaCAgICAgICA6IHsgKiguZ251Lmhhc2gpIH0KICAuZHluc3ltICAgICAgICAgOiB7ICooLmR5bnN5bSkgfQogIC5keW5zdHIgICAgICAgICA6IHsgKiguZHluc3RyKSB9CiAgLmdudS52ZXJzaW9uICAgIDogeyAqKC5nbnUudmVyc2lvbikgfQogIC5nbnUudmVyc2lvbl9kICA6IHsgKiguZ251LnZlcnNpb25fZCkgfQogIC5nbnUudmVyc2lvbl9yICA6IHsgKiguZ251LnZlcnNpb25fcikgfQogIC5yZWwuaW5pdCAgICAgICA6IHsgKigucmVsLmluaXQpIH0KICAucmVsYS5pbml0ICAgICAgOiB7ICooLnJlbGEuaW5pdCkgfQogIC5yZWwudGV4dCAgICAgICA6IHsgKigucmVsLnRleHQgLnJlbC50ZXh0LiogLnJlbC5nbnUubGlua29uY2UudC4qKSB9CiAgLnJlbGEudGV4dCAgICAgIDogeyAqKC5yZWxhLnRleHQgLnJlbGEudGV4dC4qIC5yZWxhLmdudS5saW5rb25jZS50LiopIH0KICAucmVsLmZpbmkgICAgICAgOiB7ICooLnJlbC5maW5pKSB9CiAgLnJlbGEuZmluaSAgICAgIDogeyAqKC5yZWxhLmZpbmkpIH0KICAucmVsLnJvZGF0YSAgICAgOiB7ICooLnJlbC5yb2RhdGEgLnJlbC5yb2RhdGEuKiAucmVsLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsYS5yb2RhdGEgICAgOiB7ICooLnJlbGEucm9kYXRhIC5yZWxhLnJvZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5yLiopIH0KICAucmVsLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbC5kYXRhLnJlbC5ybyAucmVsLmRhdGEucmVsLnJvLiogLnJlbC5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWxhLmRhdGEucmVsLnJvICAgOiB7ICooLnJlbGEuZGF0YS5yZWwucm8gLnJlbGEuZGF0YS5yZWwucm8uKiAucmVsYS5nbnUubGlua29uY2UuZC5yZWwucm8uKikgfQogIC5yZWwuZGF0YSAgICAgICA6IHsgKigucmVsLmRhdGEgLnJlbC5kYXRhLiogLnJlbC5nbnUubGlua29uY2UuZC4qKSB9CiAgLnJlbGEuZGF0YSAgICAgIDogeyAqKC5yZWxhLmRhdGEgLnJlbGEuZGF0YS4qIC5yZWxhLmdudS5saW5rb25jZS5kLiopIH0KICAucmVsLnRkYXRhCSAgOiB7ICooLnJlbC50ZGF0YSAucmVsLnRkYXRhLiogLnJlbC5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWxhLnRkYXRhCSAgOiB7ICooLnJlbGEudGRhdGEgLnJlbGEudGRhdGEuKiAucmVsYS5nbnUubGlua29uY2UudGQuKikgfQogIC5yZWwudGJzcwkgIDogeyAqKC5yZWwudGJzcyAucmVsLnRic3MuKiAucmVsLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbGEudGJzcwkgIDogeyAqKC5yZWxhLnRic3MgLnJlbGEudGJzcy4qIC5yZWxhLmdudS5saW5rb25jZS50Yi4qKSB9CiAgLnJlbC5jdG9ycyAgICAgIDogeyAqKC5yZWwuY3RvcnMpIH0KICAucmVsYS5jdG9ycyAgICAgOiB7ICooLnJlbGEuY3RvcnMpIH0KICAucmVsLmR0b3JzICAgICAgOiB7ICooLnJlbC5kdG9ycykgfQogIC5yZWxhLmR0b3JzICAgICA6IHsgKigucmVsYS5kdG9ycykgfQogIC5yZWwuZ290ICAgICAgICA6IHsgKigucmVsLmdvdCkgfQogIC5yZWxhLmdvdCAgICAgICA6IHsgKigucmVsYS5nb3QpIH0KICAucmVsLmJzcyAgICAgICAgOiB7ICooLnJlbC5ic3MgLnJlbC5ic3MuKiAucmVsLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsYS5ic3MgICAgICAgOiB7ICooLnJlbGEuYnNzIC5yZWxhLmJzcy4qIC5yZWxhLmdudS5saW5rb25jZS5iLiopIH0KICAucmVsLmlwbHQgICAgICAgOgogICAgewogICAgICBQUk9WSURFX0hJRERFTiAoX19yZWxfaXBsdF9zdGFydCA9IC4pOwogICAgICAqKC5yZWwuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsX2lwbHRfZW5kID0gLik7CiAgICB9CiAgLnJlbGEuaXBsdCAgICAgIDoKICAgIHsKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X3N0YXJ0ID0gLik7CiAgICAgICooLnJlbGEuaXBsdCkKICAgICAgUFJPVklERV9ISURERU4gKF9fcmVsYV9pcGx0X2VuZCA9IC4pOwogICAgfQogIC5yZWwucGx0ICAgICAgICA6CiAgICB7CiAgICAgICooLnJlbC5wbHQpCiAgICB9CiAgLnJlbGEucGx0ICAgICAgIDoKICAgIHsKICAgICAgKigucmVsYS5wbHQpCiAgICB9CiAgLmluaXQgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguaW5pdCkpKQogIH0KICAucGx0ICAgICAgICAgICAgOiB7ICooLnBsdCkgfQogIC5pcGx0ICAgICAgICAgICA6IHsgKiguaXBsdCkgfQogIC50ZXh0ICAgICAgICAgICA6CiAgewogICAgKigudGV4dC51bmxpa2VseSAudGV4dC4qX3VubGlrZWx5IC50ZXh0LnVubGlrZWx5LiopCiAgICAqKC50ZXh0LmV4aXQgLnRleHQuZXhpdC4qKQogICAgKigudGV4dC5zdGFydHVwIC50ZXh0LnN0YXJ0dXAuKikKICAgICooLnRleHQuaG90IC50ZXh0LmhvdC4qKQogICAgKigudGV4dCAuc3R1YiAudGV4dC4qIC5nbnUubGlua29uY2UudC4qKQogICAgLyogLmdudS53YXJuaW5nIHNlY3Rpb25zIGFyZSBoYW5kbGVkIHNwZWNpYWxseSBieSBlbGYzMi5lbS4gICovCiAgICAqKC5nbnUud2FybmluZykKICAgICooLmdsdWVfN3QpICooLmdsdWVfNykgKigudmZwMTFfdmVuZWVyKSAqKC52NF9ieCkKICB9CiAgLmZpbmkgICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqKFNPUlRfTk9ORSguZmluaSkpKQogIH0KICBQUk9WSURFIChfX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoX2V0ZXh0ID0gLik7CiAgUFJPVklERSAoZXRleHQgPSAuKTsKICAucm9kYXRhICAgICAgICAgOiB7ICooLnJvZGF0YSAucm9kYXRhLiogLmdudS5saW5rb25jZS5yLiopIH0KICAucm9kYXRhMSAgICAgICAgOiB7ICooLnJvZGF0YTEpIH0KICAuQVJNLmV4dGFiICAgOiB7ICooLkFSTS5leHRhYiogLmdudS5saW5rb25jZS5hcm1leHRhYi4qKSB9CiAgIFBST1ZJREVfSElEREVOIChfX2V4aWR4X3N0YXJ0ID0gLik7CiAgLkFSTS5leGlkeCAgIDogeyAqKC5BUk0uZXhpZHgqIC5nbnUubGlua29uY2UuYXJtZXhpZHguKikgfQogICBQUk9WSURFX0hJRERFTiAoX19leGlkeF9lbmQgPSAuKTsKICAuZWhfZnJhbWVfaGRyIDogeyAqKC5laF9mcmFtZV9oZHIpICooLmVoX2ZyYW1lX2VudHJ5IC5laF9mcmFtZV9lbnRyeS4qKSB9CiAgLmVoX2ZyYW1lICAgICAgIDogT05MWV9JRl9STyB7IEtFRVAgKCooLmVoX2ZyYW1lKSkgKiguZWhfZnJhbWUuKikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JPIHsgKiguZ2NjX2V4Y2VwdF90YWJsZQogIC5nY2NfZXhjZXB0X3RhYmxlLiopIH0KICAuZ251X2V4dGFiICAgOiBPTkxZX0lGX1JPIHsgKiguZ251X2V4dGFiKikgfQogIC8qIFRoZXNlIHNlY3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgdGhlIFN1bi9PcmFjbGUgQysrIGNvbXBpbGVyLiAgKi8KICAuZXhjZXB0aW9uX3JhbmdlcyAgIDogT05MWV9JRl9STyB7ICooLmV4Y2VwdGlvbl9yYW5nZXMKICAuZXhjZXB0aW9uX3JhbmdlcyopIH0KICAvKiBBZGp1c3QgdGhlIGFkZHJlc3MgZm9yIHRoZSBkYXRhIHNlZ21lbnQuICBXZSB3YW50IHRvIGFkanVzdCB1cCB0bwogICAgIHRoZSBzYW1lIGFkZHJlc3Mgd2l0aGluIHRoZSBwYWdlIG9uIHRoZSBuZXh0IHBhZ2UgdXAuICAqLwogIC4gPSBEQVRBX1NFR01FTlRfQUxJR04gKENPTlNUQU5UIChNQVhQQUdFU0laRSksIENPTlNUQU5UIChDT01NT05QQUdFU0laRSkpOwogIC8qIEV4Y2VwdGlvbiBoYW5kbGluZyAgKi8KICAuZWhfZnJhbWUgICAgICAgOiBPTkxZX0lGX1JXIHsgS0VFUCAoKiguZWhfZnJhbWUpKSAqKC5laF9mcmFtZS4qKSB9CiAgLmdudV9leHRhYiAgICAgIDogT05MWV9JRl9SVyB7ICooLmdudV9leHRhYikgfQogIC5nY2NfZXhjZXB0X3RhYmxlICAgOiBPTkxZX0lGX1JXIHsgKiguZ2NjX2V4Y2VwdF90YWJsZSAuZ2NjX2V4Y2VwdF90YWJsZS4qKSB9CiAgLmV4Y2VwdGlvbl9yYW5nZXMgICA6IE9OTFlfSUZfUlcgeyAqKC5leGNlcHRpb25fcmFuZ2VzIC5leGNlcHRpb25fcmFuZ2VzKikgfQogIC8qIFRocmVhZCBMb2NhbCBTdG9yYWdlIHNlY3Rpb25zICAqLwogIC50ZGF0YQkgIDogeyAqKC50ZGF0YSAudGRhdGEuKiAuZ251LmxpbmtvbmNlLnRkLiopIH0KICAudGJzcwkJICA6IHsgKigudGJzcyAudGJzcy4qIC5nbnUubGlua29uY2UudGIuKikgKigudGNvbW1vbikgfQogIC5wcmVpbml0X2FycmF5ICAgICA6CiAgewogICAgUFJPVklERV9ISURERU4gKF9fcHJlaW5pdF9hcnJheV9zdGFydCA9IC4pOwogICAgS0VFUCAoKigucHJlaW5pdF9hcnJheSkpCiAgICBQUk9WSURFX0hJRERFTiAoX19wcmVpbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuaW5pdF9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2luaXRfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5pbml0X2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguY3RvcnMuKikpKQogICAgS0VFUCAoKiguaW5pdF9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19pbml0X2FycmF5X2VuZCA9IC4pOwogIH0KICAuZmluaV9hcnJheSAgICAgOgogIHsKICAgIFBST1ZJREVfSElEREVOIChfX2ZpbmlfYXJyYXlfc3RhcnQgPSAuKTsKICAgIEtFRVAgKCooU09SVF9CWV9JTklUX1BSSU9SSVRZKC5maW5pX2FycmF5LiopIFNPUlRfQllfSU5JVF9QUklPUklUWSguZHRvcnMuKikpKQogICAgS0VFUCAoKiguZmluaV9hcnJheSBFWENMVURFX0ZJTEUgKCpjcnRiZWdpbi5vICpjcnRiZWdpbj8ubyAqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5kdG9ycykpCiAgICBQUk9WSURFX0hJRERFTiAoX19maW5pX2FycmF5X2VuZCA9IC4pOwogIH0KICAuY3RvcnMgICAgICAgICAgOgogIHsKICAgIC8qIGdjYyB1c2VzIGNydGJlZ2luLm8gdG8gZmluZCB0aGUgc3RhcnQgb2YKICAgICAgIHRoZSBjb25zdHJ1Y3RvcnMsIHNvIHdlIG1ha2Ugc3VyZSBpdCBpcwogICAgICAgZmlyc3QuICBCZWNhdXNlIHRoaXMgaXMgYSB3aWxkY2FyZCwgaXQKICAgICAgIGRvZXNuJ3QgbWF0dGVyIGlmIHRoZSB1c2VyIGRvZXMgbm90CiAgICAgICBhY3R1YWxseSBsaW5rIGFnYWluc3QgY3J0YmVnaW4ubzsgdGhlCiAgICAgICBsaW5rZXIgd29uJ3QgbG9vayBmb3IgYSBmaWxlIHRvIG1hdGNoIGEKICAgICAgIHdpbGRjYXJkLiAgVGhlIHdpbGRjYXJkIGFsc28gbWVhbnMgdGhhdCBpdAogICAgICAgZG9lc24ndCBtYXR0ZXIgd2hpY2ggZGlyZWN0b3J5IGNydGJlZ2luLm8KICAgICAgIGlzIGluLiAgKi8KICAgIEtFRVAgKCpjcnRiZWdpbi5vKC5jdG9ycykpCiAgICBLRUVQICgqY3J0YmVnaW4/Lm8oLmN0b3JzKSkKICAgIC8qIFdlIGRvbid0IHdhbnQgdG8gaW5jbHVkZSB0aGUgLmN0b3Igc2VjdGlvbiBmcm9tCiAgICAgICB0aGUgY3J0ZW5kLm8gZmlsZSB1bnRpbCBhZnRlciB0aGUgc29ydGVkIGN0b3JzLgogICAgICAgVGhlIC5jdG9yIHNlY3Rpb24gZnJvbSB0aGUgY3J0ZW5kIGZpbGUgY29udGFpbnMgdGhlCiAgICAgICBlbmQgb2YgY3RvcnMgbWFya2VyIGFuZCBpdCBtdXN0IGJlIGxhc3QgKi8KICAgIEtFRVAgKCooRVhDTFVERV9GSUxFICgqY3J0ZW5kLm8gKmNydGVuZD8ubyApIC5jdG9ycykpCiAgICBLRUVQICgqKFNPUlQoLmN0b3JzLiopKSkKICAgIEtFRVAgKCooLmN0b3JzKSkKICB9CiAgLmR0b3JzICAgICAgICAgIDoKICB7CiAgICBLRUVQICgqY3J0YmVnaW4ubyguZHRvcnMpKQogICAgS0VFUCAoKmNydGJlZ2luPy5vKC5kdG9ycykpCiAgICBLRUVQICgqKEVYQ0xVREVfRklMRSAoKmNydGVuZC5vICpjcnRlbmQ/Lm8gKSAuZHRvcnMpKQogICAgS0VFUCAoKihTT1JUKC5kdG9ycy4qKSkpCiAgICBLRUVQICgqKC5kdG9ycykpCiAgfQogIC5qY3IgICAgICAgICAgICA6IHsgS0VFUCAoKiguamNyKSkgfQogIC5kYXRhLnJlbC5ybyA6IHsgKiguZGF0YS5yZWwucm8ubG9jYWwqIC5nbnUubGlua29uY2UuZC5yZWwucm8ubG9jYWwuKikgKiguZGF0YS5yZWwucm8gLmRhdGEucmVsLnJvLiogLmdudS5saW5rb25jZS5kLnJlbC5yby4qKSB9CiAgLmR5bmFtaWMgICAgICAgIDogeyAqKC5keW5hbWljKSB9CiAgLiA9IERBVEFfU0VHTUVOVF9SRUxST19FTkQgKDAsIC4pOwogIC5nb3QgICAgICAgICAgICA6IHsgKiguZ290LnBsdCkgKiguaWdvdC5wbHQpICooLmdvdCkgKiguaWdvdCkgfQogIC5kYXRhICAgICAgICAgICA6CiAgewogICAgUFJPVklERSAoX19kYXRhX3N0YXJ0ID0gLik7CiAgICAqKC5kYXRhIC5kYXRhLiogLmdudS5saW5rb25jZS5kLiopCiAgICBTT1JUKENPTlNUUlVDVE9SUykKICB9CiAgLmRhdGExICAgICAgICAgIDogeyAqKC5kYXRhMSkgfQogIF9lZGF0YSA9IC47IFBST1ZJREUgKGVkYXRhID0gLik7CiAgX19ic3Nfc3RhcnQgPSAuOwogIF9fYnNzX3N0YXJ0X18gPSAuOwogIC5ic3MgICAgICAgICAgICA6CiAgewogICAqKC5keW5ic3MpCiAgICooLmJzcyAuYnNzLiogLmdudS5saW5rb25jZS5iLiopCiAgICooQ09NTU9OKQogICAvKiBBbGlnbiBoZXJlIHRvIGVuc3VyZSB0aGF0IHRoZSAuYnNzIHNlY3Rpb24gb2NjdXBpZXMgc3BhY2UgdXAgdG8KICAgICAgX2VuZC4gIEFsaWduIGFmdGVyIC5ic3MgdG8gZW5zdXJlIGNvcnJlY3QgYWxpZ25tZW50IGV2ZW4gaWYgdGhlCiAgICAgIC5ic3Mgc2VjdGlvbiBkaXNhcHBlYXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5vIGlucHV0IHNlY3Rpb25zLgogICAgICBGSVhNRTogV2h5IGRvIHdlIG5lZWQgaXQ/IFdoZW4gdGhlcmUgaXMgbm8gLmJzcyBzZWN0aW9uLCB3ZSBkb24ndAogICAgICBwYWQgdGhlIC5kYXRhIHNlY3Rpb24uICAqLwogICAuID0gQUxJR04oLiAhPSAwID8gMzIgLyA4IDogMSk7CiAgfQogIF9ic3NfZW5kX18gPSAuIDsgX19ic3NfZW5kX18gPSAuIDsKICAuID0gQUxJR04oMzIgLyA4KTsKICAuID0gU0VHTUVOVF9TVEFSVCgibGRhdGEtc2VnbWVudCIsIC4pOwogIC4gPSBBTElHTigzMiAvIDgpOwogIF9fZW5kX18gPSAuIDsKICBfZW5kID0gLjsgUFJPVklERSAoZW5kID0gLik7CiAgLiA9IERBVEFfU0VHTUVOVF9FTkQgKC4pOwogIC8qIFN0YWJzIGRlYnVnZ2luZyBzZWN0aW9ucy4gICovCiAgLnN0YWIgICAgICAgICAgMCA6IHsgKiguc3RhYikgfQogIC5zdGFic3RyICAgICAgIDAgOiB7ICooLnN0YWJzdHIpIH0KICAuc3RhYi5leGNsICAgICAwIDogeyAqKC5zdGFiLmV4Y2wpIH0KICAuc3RhYi5leGNsc3RyICAwIDogeyAqKC5zdGFiLmV4Y2xzdHIpIH0KICAuc3RhYi5pbmRleCAgICAwIDogeyAqKC5zdGFiLmluZGV4KSB9CiAgLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQogIC5jb21tZW50ICAgICAgIDAgOiB7ICooLmNvbW1lbnQpIH0KICAvKiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4KICAgICBTeW1ib2xzIGluIHRoZSBEV0FSRiBkZWJ1Z2dpbmcgc2VjdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcKICAgICBvZiB0aGUgc2VjdGlvbiBzbyB3ZSBiZWdpbiB0aGVtIGF0IDAuICAqLwogIC8qIERXQVJGIDEgKi8KICAuZGVidWcgICAgICAgICAgMCA6IHsgKiguZGVidWcpIH0KICAubGluZSAgICAgICAgICAgMCA6IHsgKigubGluZSkgfQogIC8qIEdOVSBEV0FSRiAxIGV4dGVuc2lvbnMgKi8KICAuZGVidWdfc3JjaW5mbyAgMCA6IHsgKiguZGVidWdfc3JjaW5mbykgfQogIC5kZWJ1Z19zZm5hbWVzICAwIDogeyAqKC5kZWJ1Z19zZm5hbWVzKSB9CiAgLyogRFdBUkYgMS4xIGFuZCBEV0FSRiAyICovCiAgLmRlYnVnX2FyYW5nZXMgIDAgOiB7ICooLmRlYnVnX2FyYW5nZXMpIH0KICAuZGVidWdfcHVibmFtZXMgMCA6IHsgKiguZGVidWdfcHVibmFtZXMpIH0KICAvKiBEV0FSRiAyICovCiAgLmRlYnVnX2luZm8gICAgIDAgOiB7ICooLmRlYnVnX2luZm8gLmdudS5saW5rb25jZS53aS4qKSB9CiAgLmRlYnVnX2FiYnJldiAgIDAgOiB7ICooLmRlYnVnX2FiYnJldikgfQogIC5kZWJ1Z19saW5lICAgICAwIDogeyAqKC5kZWJ1Z19saW5lIC5kZWJ1Z19saW5lLiogLmRlYnVnX2xpbmVfZW5kICkgfQogIC5kZWJ1Z19mcmFtZSAgICAwIDogeyAqKC5kZWJ1Z19mcmFtZSkgfQogIC5kZWJ1Z19zdHIgICAgICAwIDogeyAqKC5kZWJ1Z19zdHIpIH0KICAuZGVidWdfbG9j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wHHw/1ggAADQcfD/cCAAAOBx8P+IIAAAMHLw/7AgAAAwc/D/4CAAAFBz8P/4IAAAcHPw/xAhAACQdPD/SCEAAAB18P9wIQAAoHjw/6ghAAAQefD/0CEAAGB58P/4IQAAoHrw/zgiAAAwfPD/uCIAAEB88P/QIgAAEH/w/yAjAABgf/D/OCMAALB/8P9QIwAAkIDw/7AjAAAAgfD/2CMAAECB8P/wIwAAsIHw/xAkAACwhPD/eCQAAGCO8P9QJQAAUI/w/4AlAADQkfD/wCUAACCS8P/4JQAA4JLw/yAmAACwk/D/WCYAAHCU8P+oJgAAUJXw/+gmAACQlfD/GCcAAICW8P9oJwAAEJjw/9AnAADQmPD/GCgAANCZ8P9oKAAAMJzw/7goAAAwnvD/ICkAAJCf8P+IKQAAMKDw/+ApAADgoPD/ACoAAFCi8P8wKgAAEKPw/3AqAAAgpfD/sCoAANCl8P/gKgAA4KXw//gqAADwpfD/ECsAAECm8P8oKwAAgKbw/0ArAAAAp/D/cCsAABCn8P+IKwAAcKjw/8grAADgtfD/GCwAAJC28P94LAAAALjw/8gsAAAQuPD/4CwAAFC58P8wLQAAYLrw/1AtAAAAu/D/cC0AADC88P+gLQAAkLzw/9gtAAAAwfD/KC4AAADE8P9gLgAAkMbw/6AuAAAwyfD/IC8AAJDQ8P9wLwAAQNHw/6gvAADg0fD/0C8AABDV8P8IMAAA4NXw/0AwAABg1vD/aDAAAMDW8P+AMAAAUNfw/7gwAADQ1/D/8DAAAADY8P8IMQAAMNjw/yAxAAAw2fD/cDEAAHDZ8P+YMQAAsNnw/8AxAABQ2vD/4DEAABDf8P8wMgAAoN/w/2gyAADQ4fD/6DIAAEDi8P8IMwAA4OLw/0gzAACw5fD/iDMAAFDm8P+4MwAAYOnw/wA0AACQ6fD/GDQAAADr8P9oNAAAQOvw/4g0AADA6/D/oDQAAADt8P/ANAAAYO/w/xg1AAAw8PD/SDUAAGDw8P9oNQAAMPTw/9A1AACQ9PD/CDYAAMD08P8gNgAA0PTw/zg2AAAQ9fD/YDYAAFD18P94NgAAkPXw/6A2AADQ9fD/0DYAAGD28P8YNwAAoPbw/0A3AADg9vD/aDcAADD38P+INwAAQPfw/6A3AAAA+PD/0DcAAOD98P8wOAAAgP7w/2g4AAAw//D/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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF1xAAAAAAABAAAAAQAAAPBfcQAAAAAAo+RFAAAAAACQYHEAAAAAAEBgcQAAAAAAme5FAAAAAAAQJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwp0EAAAAAADCtQQAAAAAAoLJBAAAAAAAAskEAAAAAAECwQQAAAAAAELVBAAAAAABguEEAAAAAAICrQQAAAAAAkKZBAAAAAABApkEAAAAAAOCmQQAAAAAAwANCAAAAAAAgA0IAAAAAAMAEQgAAAAAAgEVBAAAAAAAIAAAAAAAAAHpNRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHEAAAAAAMA2cQAAAAAA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