Ly8vIENvcHlyaWdodCBieSBTeW50YWNvcmUgTExDIKkgMjAxNi0yMDIxLiBTZWUgTElDRU5TRSBmb3IgZGV0YWlscwovLy8gQGZpbGUgICAgICAgPHNjcjFfbWVtaWYuc3ZoPgovLy8gQGJyaWVmICAgICAgTWVtb3J5IGludGVyZmFjZSBkZWZpbml0aW9ucyBmaWxlCi8vLwoKYGlmbmRlZiBTQ1IxX01FTUlGX1NWSApgZGVmaW5lIFNDUjFfTUVNSUZfU1ZICgpgaW5jbHVkZSAic2NyMV9hcmNoX2Rlc2NyaXB0aW9uLnN2aCIKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBNZW1vcnkgY29tbWFuZCBlbnVtCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp0eXBlZGVmIGVudW0gbG9naWMgewogICAgU0NSMV9NRU1fQ01EX1JEICAgICA9IDEnYjAsCiAgICBTQ1IxX01FTV9DTURfV1IgICAgID0gMSdiMQpgaWZkZWYgU0NSMV9YUFJPUF9FTgogICAgLAogICAgU0NSMV9NRU1fQ01EX0VSUk9SICA9ICd4CmBlbmRpZiAvLyBTQ1IxX1hQUk9QX0VOCn0gdHlwZV9zY3IxX21lbV9jbWRfZTsKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBNZW1vcnkgZGF0YSB3aWR0aCBlbnVtCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp0eXBlZGVmIGVudW0gbG9naWNbMTowXSB7CiAgICBTQ1IxX01FTV9XSURUSF9CWVRFICAgICA9IDInYjAwLAogICAgU0NSMV9NRU1fV0lEVEhfSFdPUkQgICAgPSAyJ2IwMSwKICAgIFNDUjFfTUVNX1dJRFRIX1dPUkQgICAgID0gMidiMTAKYGlmZGVmIFNDUjFfWFBST1BfRU4KICAgICwKICAgIFNDUjFfTUVNX1dJRFRIX0VSUk9SICAgID0gJ3gKYGVuZGlmIC8vIFNDUjFfWFBST1BfRU4KfSB0eXBlX3NjcjFfbWVtX3dpZHRoX2U7CgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gTWVtb3J5IHJlc3BvbnNlIGVudW0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnR5cGVkZWYgZW51bSBsb2dpY1sxOjBdIHsKICAgIFNDUjFfTUVNX1JFU1BfTk9UUkRZICAgID0gMidiMDAsCiAgICBTQ1IxX01FTV9SRVNQX1JEWV9PSyAgICA9IDInYjAxLAogICAgU0NSMV9NRU1fUkVTUF9SRFlfRVIgICAgPSAyJ2IxMApgaWZkZWYgU0NSMV9YUFJPUF9FTgogICAgLAogICAgU0NSMV9NRU1fUkVTUF9FUlJPUiAgICAgPSAneApgZW5kaWYgLy8gU0NSMV9YUFJPUF9FTgp9IHR5cGVfc2NyMV9tZW1fcmVzcF9lOwoKYGVuZGlmIC8vIFNDUjFfTUVNSUZfU1ZICg==