IyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBHZW5lcmF0ZWQgTk1BS0UgRmlsZSwgQmFzZWQgb24ganBlZy5kc3AKIUlGICIkKENGRykiID09ICIiCkNGRz1qcGVnIC0gV2luMzIKIU1FU1NBR0UgS2VpbmUgS29uZmlndXJhdGlvbiBhbmdlZ2ViZW4uIGpwZWcgLSBXaW4zMiB3aXJkIGFscyBTdGFuZGFyZCB2ZXJ3ZW5kZXQuCiFFTkRJRiAKCiFJRiAiJChDRkcpIiAhPSAianBlZyAtIFdpbjMyIgohTUVTU0FHRSBVbmf8bHRpZ2UgS29uZmlndXJhdGlvbiAiJChDRkcpIiBhbmdlZ2ViZW4uCiFNRVNTQUdFIFNpZSBr9m5uZW4gYmVpbSBBdXNm/GhyZW4gdm9uIE5NQUtFIGVpbmUgS29uZmlndXJhdGlvbiBhbmdlYmVuCiFNRVNTQUdFIGR1cmNoIERlZmluaWVyZW4gZGVzIE1ha3JvcyBDRkcgaW4gZGVyIEJlZmVobHN6ZWlsZS4gWnVtIEJlaXNwaWVsOgohTUVTU0FHRSAKIU1FU1NBR0UgTk1BS0UgL2YgImpwZWcubWFrIiBDRkc9ImpwZWcgLSBXaW4zMiIKIU1FU1NBR0UgCiFNRVNTQUdFIEb8ciBkaWUgS29uZmlndXJhdGlvbiBzdGVoZW4genVyIEF1c3dhaGw6CiFNRVNTQUdFIAohTUVTU0FHRSAianBlZyAtIFdpbjMyIiAoYmFzaWVyZW5kIGF1ZiAgIldpbjMyICh4ODYpIFN0YXRpYyBMaWJyYXJ5IikKIU1FU1NBR0UgCiFFUlJPUiBFaW5lIHVuZ/xsdGlnZSBLb25maWd1cmF0aW9uIHd1cmRlIGFuZ2VnZWJlbi4KIUVORElGIAoKIUlGICIkKE9TKSIgPT0gIldpbmRvd3NfTlQiCk5VTEw9CiFFTFNFIApOVUxMPW51bAohRU5ESUYgCgpPVVRESVI9LlxSZWxlYXNlCklOVERJUj0uXFJlbGVhc2UKIyBCZWdpbiBDdXN0b20gTWFjcm9zCk91dERpcj0uXFJlbGVhc2UKIyBFbmQgQ3VzdG9tIE1hY3JvcwoKQUxMIDogIiQoT1VURElSKVxqcGVnLmxpYiIKCgpDTEVBTiA6CgktQGVyYXNlICIkKElOVERJUilcamFyaWNvbS5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamNhcGltaW4ub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpjYXBpc3RkLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqY2FyaXRoLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqY2NvZWZjdC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamNjb2xvci5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamNkY3RtZ3Iub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpjaHVmZi5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamNpbml0Lm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqY21haW5jdC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamNtYXJrZXIub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpjbWFzdGVyLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqY29tYXBpLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqY3BhcmFtLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqY3ByZXBjdC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamNzYW1wbGUub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpjdHJhbnMub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpkYXBpbWluLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqZGFwaXN0ZC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRhcml0aC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRhdGFkc3Qub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpkYXRhc3JjLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqZGNvZWZjdC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRjb2xvci5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRkY3RtZ3Iub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpkaHVmZi5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRpbnB1dC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRtYWluY3Qub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpkbWFya2VyLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqZG1hc3Rlci5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRtZXJnZS5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamRwb3N0Y3Qub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpkc2FtcGxlLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqZHRyYW5zLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqZXJyb3Iub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGpmZGN0Zmx0Lm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqZmRjdGZzdC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamZkY3RpbnQub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGppZGN0Zmx0Lm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqaWRjdGZzdC5vYmoiCgktQGVyYXNlICIkKElOVERJUilcamlkY3RpbnQub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGptZW1tZ3Iub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXGptZW1ub2JzLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqcXVhbnQxLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqcXVhbnQyLm9iaiIKCS1AZXJhc2UgIiQoSU5URElSKVxqdXRpbHMub2JqIgoJLUBlcmFzZSAiJChJTlRESVIpXHZjNjAuaWRiIgoJLUBlcmFzZSAiJChPVVRESVIpXGpwZWcubGliIgoKIiQoT1VURElSKSIgOgogICAgaWYgbm90IGV4aXN0ICIkKE9VVERJUikvJChOVUxMKSIgbWtkaXIgIiQoT1VURElSKSIKCkNQUD1jbC5leGUKQ1BQX1BST0o9L25vbG9nbyAvRzYgL01UIC9XMyAvR1ggL094IC9PYSAvT2IyIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9XSU5ET1dTIiAvRnAiJChJTlRESVIpXGpwZWcucGNoIiAvWVggL0ZvIiQoSU5URElSKVxcIiAvRmQiJChJTlRESVIpXFwiIC9GRCAvYyAKCi5jeyQoSU5URElSKX0ub2JqOjoKICAgJChDUFApIEA8PAogICAkKENQUF9QUk9KKSAkPCAKPDwKCi5jcHB7JChJTlRESVIpfS5vYmo6OgogICAkKENQUCkgQDw8CiAgICQoQ1BQX1BST0opICQ8IAo8PAoKLmN4eHskKElOVERJUil9Lm9iajo6CiAgICQoQ1BQKSBAPDwKICAgJChDUFBfUFJPSikgJDwgCjw8CgouY3skKElOVERJUil9LnNicjo6CiAgICQoQ1BQKSBAPDwKICAgJChDUFBfUFJPSikgJDwgCjw8CgouY3BweyQoSU5URElSKX0uc2JyOjoKICAgJChDUFApIEA8PAogICAkKENQUF9QUk9KKSAkPCAKPDwKCi5jeHh7JChJTlRESVIpfS5zYnI6OgogICAkKENQUCkgQDw8CiAgICQoQ1BQX1BST0opICQ8IAo8PAoKUlNDPXJjLmV4ZQpCU0MzMj1ic2NtYWtlLmV4ZQpCU0MzMl9GTEFHUz0vbm9sb2dvIC9vIiQoT1VURElSKVxqcGVnLmJzYyIgCkJTQzMyX1NCUlM9IFwKCQpMSUIzMj1saW5rLmV4ZSAtbGliCkxJQjMyX0ZMQUdTPS9ub2xvZ28gL291dDoiJChPVVRESVIpXGpwZWcubGliIiAKTElCMzJfT0JKUz0gXAoJIiQoSU5URElSKVxqYXJpY29tLm9iaiIgXAoJIiQoSU5URElSKVxqY2FwaW1pbi5vYmoiIFwKCSIkKElOVERJUilcamNhcGlzdGQub2JqIiBcCgkiJChJTlRESVIpXGpjYXJpdGgub2JqIiBcCgkiJChJTlRESVIpXGpjY29lZmN0Lm9iaiIgXAoJIiQoSU5URElSKVxqY2NvbG9yLm9iaiIgXAoJIiQoSU5URElSKVxqY2RjdG1nci5vYmoiIFwKCSIkKElOVERJUilcamNodWZmLm9iaiIgXAoJIiQoSU5URElSKVxqY2luaXQub2JqIiBcCgkiJChJTlRESVIpXGpjbWFpbmN0Lm9iaiIgXAoJIiQoSU5URElSKVxqY21hcmtlci5vYmoiIFwKCSIkKElOVERJUilcamNtYXN0ZXIub2JqIiBcCgkiJChJTlRESVIpXGpjb21hcGkub2JqIiBcCgkiJChJTlRESVIpXGpjcGFyYW0ub2JqIiBcCgkiJChJTlRESVIpXGpjcHJlcGN0Lm9iaiIgXAoJIiQoSU5URElSKVxqY3NhbXBsZS5vYmoiIFwKCSIkKElOVERJUilcamN0cmFucy5vYmoiIFwKCSIkKElOVERJUilcamRhcGltaW4ub2JqIiBcCgkiJChJTlRESVIpXGpkYXBpc3RkLm9iaiIgXAoJIiQoSU5URElSKVxqZGFyaXRoLm9iaiIgXAoJIiQoSU5URElSKVxqZGF0YWRzdC5vYmoiIFwKCSIkKElOVERJUilcamRhdGFzcmMub2JqIiBcCgkiJChJTlRESVIpXGpkY29lZmN0Lm9iaiIgXAoJIiQoSU5URElSKVxqZGNvbG9yLm9iaiIgXAoJIiQoSU5URElSKVxqZGRjdG1nci5vYmoiIFwKCSIkKElOVERJUilcamRodWZmLm9iaiIgXAoJIiQoSU5URElSKVxqZGlucHV0Lm9iaiIgXAoJIiQoSU5URElSKVxqZG1haW5jdC5vYmoiIFwKCSIkKElOVERJUilcamRtYXJrZXIub2JqIiBcCgkiJChJTlRESVIpXGpkbWFzdGVyLm9iaiIgXAoJIiQoSU5URElSKVxqZG1lcmdlLm9iaiIgXAoJIiQoSU5URElSKVxqZHBvc3RjdC5vYmoiIFwKCSIkKElOVERJUilcamRzYW1wbGUub2JqIiBcCgkiJChJTlRESVIpXGpkdHJhbnMub2JqIiBcCgkiJChJTlRESVIpXGplcnJvci5vYmoiIFwKCSIkKElOVERJUilcamZkY3RmbHQub2JqIiBcCgkiJChJTlRESVIpXGpmZGN0ZnN0Lm9iaiIgXAoJIiQoSU5URElSKVxqZmRjdGludC5vYmoiIFwKCSIkKElOVERJUilcamlkY3RmbHQub2JqIiBcCgkiJChJTlRESVIpXGppZGN0ZnN0Lm9iaiIgXAoJIiQoSU5URElSKVxqaWRjdGludC5vYmoiIFwKCSIkKElOVERJUilcam1lbW1nci5vYmoiIFwKCSIkKElOVERJUilcam1lbW5vYnMub2JqIiBcCgkiJChJTlRESVIpXGpxdWFudDEub2JqIiBcCgkiJChJTlRESVIpXGpxdWFudDIub2JqIiBcCgkiJChJTlRESVIpXGp1dGlscy5vYmoiCgoiJChPVVRESVIpXGpwZWcubGliIiA6ICIkKE9VVERJUikiICQoREVGX0ZJTEUpICQoTElCMzJfT0JKUykKICAgICQoTElCMzIpIEA8PAogICQoTElCMzJfRkxBR1MpICQoREVGX0ZMQUdTKSAkKExJQjMyX09CSlMpCjw8CgoKIUlGICIkKE5PX0VYVEVSTkFMX0RFUFMpIiAhPSAiMSIKIUlGIEVYSVNUUygianBlZy5kZXAiKQohSU5DTFVERSAianBlZy5kZXAiCiFFTFNFIAohTUVTU0FHRSBXYXJuaW5nOiBjYW5ub3QgZmluZCAianBlZy5kZXAiCiFFTkRJRiAKIUVORElGIAoKCiFJRiAiJChDRkcpIiA9PSAianBlZyAtIFdpbjMyIgpTT1VSQ0U9LlxqYXJpY29tLmMKCiIkKElOVERJUilcamFyaWNvbS5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camNhcGltaW4uYwoKIiQoSU5URElSKVxqY2FwaW1pbi5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camNhcGlzdGQuYwoKIiQoSU5URElSKVxqY2FwaXN0ZC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camNhcml0aC5jCgoiJChJTlRESVIpXGpjYXJpdGgub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpjY29lZmN0LmMKCiIkKElOVERJUilcamNjb2VmY3Qub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpjY29sb3IuYwoKIiQoSU5URElSKVxqY2NvbG9yLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqY2RjdG1nci5jCgoiJChJTlRESVIpXGpjZGN0bWdyLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqY2h1ZmYuYwoKIiQoSU5URElSKVxqY2h1ZmYub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpjaW5pdC5jCgoiJChJTlRESVIpXGpjaW5pdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camNtYWluY3QuYwoKIiQoSU5URElSKVxqY21haW5jdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camNtYXJrZXIuYwoKIiQoSU5URElSKVxqY21hcmtlci5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camNtYXN0ZXIuYwoKIiQoSU5URElSKVxqY21hc3Rlci5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camNvbWFwaS5jCgoiJChJTlRESVIpXGpjb21hcGkub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpjcGFyYW0uYwoKIiQoSU5URElSKVxqY3BhcmFtLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqY3ByZXBjdC5jCgoiJChJTlRESVIpXGpjcHJlcGN0Lm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqY3NhbXBsZS5jCgoiJChJTlRESVIpXGpjc2FtcGxlLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqY3RyYW5zLmMKCiIkKElOVERJUilcamN0cmFucy5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camRhcGltaW4uYwoKIiQoSU5URElSKVxqZGFwaW1pbi5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camRhcGlzdGQuYwoKIiQoSU5URElSKVxqZGFwaXN0ZC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camRhcml0aC5jCgoiJChJTlRESVIpXGpkYXJpdGgub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpkYXRhZHN0LmMKCiIkKElOVERJUilcamRhdGFkc3Qub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpkYXRhc3JjLmMKCiIkKElOVERJUilcamRhdGFzcmMub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpkY29lZmN0LmMKCiIkKElOVERJUilcamRjb2VmY3Qub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpkY29sb3IuYwoKIiQoSU5URElSKVxqZGNvbG9yLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqZGRjdG1nci5jCgoiJChJTlRESVIpXGpkZGN0bWdyLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqZGh1ZmYuYwoKIiQoSU5URElSKVxqZGh1ZmYub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpkaW5wdXQuYwoKIiQoSU5URElSKVxqZGlucHV0Lm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqZG1haW5jdC5jCgoiJChJTlRESVIpXGpkbWFpbmN0Lm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqZG1hcmtlci5jCgoiJChJTlRESVIpXGpkbWFya2VyLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqZG1hc3Rlci5jCgoiJChJTlRESVIpXGpkbWFzdGVyLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqZG1lcmdlLmMKCiIkKElOVERJUilcamRtZXJnZS5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camRwb3N0Y3QuYwoKIiQoSU5URElSKVxqZHBvc3RjdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camRzYW1wbGUuYwoKIiQoSU5URElSKVxqZHNhbXBsZS5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camR0cmFucy5jCgoiJChJTlRESVIpXGpkdHJhbnMub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGplcnJvci5jCgoiJChJTlRESVIpXGplcnJvci5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camZkY3RmbHQuYwoKIiQoSU5URElSKVxqZmRjdGZsdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camZkY3Rmc3QuYwoKIiQoSU5URElSKVxqZmRjdGZzdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camZkY3RpbnQuYwoKIiQoSU5URElSKVxqZmRjdGludC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camlkY3RmbHQuYwoKIiQoSU5URElSKVxqaWRjdGZsdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camlkY3Rmc3QuYwoKIiQoSU5URElSKVxqaWRjdGZzdC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5camlkY3RpbnQuYwoKIiQoSU5URElSKVxqaWRjdGludC5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5cam1lbW1nci5jCgoiJChJTlRESVIpXGptZW1tZ3Iub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGptZW1ub2JzLmMKCiIkKElOVERJUilcam1lbW5vYnMub2JqIiA6ICQoU09VUkNFKSAiJChJTlRESVIpIgoKClNPVVJDRT0uXGpxdWFudDEuYwoKIiQoSU5URElSKVxqcXVhbnQxLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgpTT1VSQ0U9LlxqcXVhbnQyLmMKCiIkKElOVERJUilcanF1YW50Mi5vYmoiIDogJChTT1VSQ0UpICIkKElOVERJUikiCgoKU09VUkNFPS5canV0aWxzLmMKCiIkKElOVERJUilcanV0aWxzLm9iaiIgOiAkKFNPVVJDRSkgIiQoSU5URElSKSIKCgoKIUVORElGIAoK