IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBUZXN0IGZpbGUgbG9jYXRpb25zIHdpdGggZmlsZSBuYW1lcyB0aGF0IGNvbnRhaW4gc3BhY2VzLgoKIyBOb3RlOiBUaGlzIHRlc3QgZmFpbHMgb24gTGludXggd2l0aCBtdXNsIGxpYmMgdmVyc2lvbnMgdGhhdCBkb24ndCBzdXBwb3J0CiMgdGhlIEdCMTgwMzAgZW5jb2RpbmcgaW4gJ2ljb252Jy4KCmNhdCA8PFxFT0YgPiBtY2F0LXRlc3QyMi5wbwptc2dpZCAiIgptc2dzdHIgIiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLThcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IOKBqHhnLXRlc3QxNyBhLmPigak6MSDigah4Zy10ZXN0MTcgeCB5LmPigak6MQptc2dpZCAiZm9vIgptc2dzdHIgIiIKCiM6IOKBqHhnLXRlc3QxNyB4IHkuY+KBqToyIHhnLXRlc3QxN3ouYzoxCm1zZ2lkICJiYXIiCm1zZ3N0ciAiIgpFT0YKCjogJHtNU0dDQVQ9bXNnY2F0fQoke01TR0NBVH0gLS10by1jb2RlPVVURi04IFwKICAgICAgICAgIC1vIG1jYXQtdGVzdDIyLm91dDEgbWNhdC10ZXN0MjIucG8gfHwgRXhpdCAxCgo6ICR7RElGRj1kaWZmfQoke0RJRkZ9IG1jYXQtdGVzdDIyLnBvIG1jYXQtdGVzdDIyLm91dDEgfHwgRXhpdCAxCgo6ICR7TVNHQ0FUPW1zZ2NhdH0KJHtNU0dDQVR9IC0tdG8tY29kZT1HQjE4MDMwIFwKICAgICAgICAgIC1vIG1jYXQtdGVzdDIyLjIucG8gbWNhdC10ZXN0MjIucG8gfHwgRXhpdCAxCgpjYXQgPDxcRU9GID4gbWNhdC10ZXN0MjIub2sKbXNnaWQgIiIKbXNnc3RyICIiCiJNSU1FLVZlcnNpb246IDEuMFxuIgoiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUdCMTgwMzBcbiIKIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKCiM6IIE2rDR4Zy10ZXN0MTcgYS5jgTasNToxIIE2rDR4Zy10ZXN0MTcgeCB5LmOBNqw1OjEKbXNnaWQgImZvbyIKbXNnc3RyICIiCgojOiCBNqw0eGctdGVzdDE3IHggeS5jgTasNToyIHhnLXRlc3QxN3ouYzoxCm1zZ2lkICJiYXIiCm1zZ3N0ciAiIgpFT0YKCjogJHtESUZGPWRpZmZ9CiR7RElGRn0gbWNhdC10ZXN0MjIub2sgbWNhdC10ZXN0MjIuMi5wbyB8fCBFeGl0IDEKCjogJHtNU0dDQVQ9bXNnY2F0fQoke01TR0NBVH0gLS10by1jb2RlPUdCMTgwMzAgXAogICAgICAgICAgLW8gbWNhdC10ZXN0MjIub3V0MiBtY2F0LXRlc3QyMi4yLnBvIHx8IEV4aXQgMQoKOiAke0RJRkY9ZGlmZn0KJHtESUZGfSBtY2F0LXRlc3QyMi4yLnBvIG1jYXQtdGVzdDIyLm91dDIgfHwgRXhpdCAxCgo6ICR7TVNHQ0FUPW1zZ2NhdH0KJHtNU0dDQVR9IC0tdG8tY29kZT1VVEYtOCBcCiAgICAgICAgICAtbyBtY2F0LXRlc3QyMi5vdXQzIG1jYXQtdGVzdDIyLjIucG8gfHwgRXhpdCAxCgo6ICR7RElGRj1kaWZmfQoke0RJRkZ9IG1jYXQtdGVzdDIyLnBvIG1jYXQtdGVzdDIyLm91dDMgfHwgRXhpdCAxCgo6ICR7TVNHQ0FUPW1zZ2NhdH0KJHtNU0dDQVR9IC0tdG8tY29kZT1JU08tODg1OS0xIFwKICAgICAgICAgIC1vIG1jYXQtdGVzdDIyLm91dDQgbWNhdC10ZXN0MjIucG8gMj4vZGV2L251bGwKdGVzdCAkPyA9IDEgfHwgRXhpdCAxCgpleGl0IDAK