VGVzdCBmb3IgZW5jcnlwdGlvbi4KClNUQVJUVEVTVAo6c28gc21hbGwudmltCjovXnN0YXJ0IG9mIHRleHQvKzEKOmxldCB0ZXh0X2xpbmVzID0gZ2V0bGluZSgnLicsIGxpbmUoJy4nKSArIDIpCjovXnN0YXJ0IG9mIGNtPXppcCBieXRlcy8rMQo6bGV0IGNtMF9ieXRlcyA9IGdldGxpbmUoJy4nLCAnLicpCjovXnN0YXJ0IG9mIGNtPWJsb3dmaXNoIGJ5dGVzLysxCjpsZXQgY20xX2J5dGVzID0gZ2V0bGluZSgnLicsICcuJykKOmJ3aXBlCjpjYWxsIGFwcGVuZCgwLCB0ZXh0X2xpbmVzKQo6JGQKOlgKZm9vYmFyCmZvb2Jhcgo6dyEgWHRlc3RmaWxlCjpid2lwZSEKOmUgWHRlc3RmaWxlCmZvb2Jhcgo6bGV0IGNtMF9yZWFkX2JhY2sgPSBnZXRsaW5lKCcuJywgJyQnKQo6c2V0IGtleT0KOnNldCBjcnlwdG1ldGhvZD1ibG93ZmlzaAo6IiBJZiB0aGUgYmxvd2Zpc2ggdGVzdCBmYWlscyAnY3J5cHRtZXRob2QnIHdpbGwgYmUgJ3ppcCcgbm93Lgo6JXMvXi9cPSZjcnlwdG1ldGhvZCA9PSAnYmxvd2Zpc2gnID8gIk9LICIgOiAiYmxvd2Zpc2ggdGVzdCBmYWlsZWQgIi8KOlgKYmFyZm9vCmJhcmZvbwo6dyEgWHRlc3RmaWxlCjpid2lwZSEKOmUgWHRlc3RmaWxlCmJhcmZvbwo6bGV0IGNtMV9yZWFkX2JhY2sgPSBnZXRsaW5lKCcuJywgJyQnKQo6YndpcGUhCjpzZXQgYmluIG5vZW9sIGtleT0KOmNhbGwgYXBwZW5kKDAsIGNtMF9ieXRlcykKOiRkCjpzZXQgZmVuYz1sYXRpbjEKOnchIFh0ZXN0ZmlsZQo6YndpcGUhCjpzZXQgbm9iaW4KOmUgWHRlc3RmaWxlCmZvb2Zvbwo6bGV0IGNtMF9yZWFkX2JpbiA9IGdldGxpbmUoJy4nLCAnJCcpCjpid2lwZSEKOnNldCBiaW4gbm9lb2wga2V5PQo6Y2FsbCBhcHBlbmQoMCwgY20xX2J5dGVzKQo6JGQKOnNldCBmZW5jPWxhdGluMQo6dyEgWHRlc3RmaWxlCjpid2lwZSEKOnNldCBub2Jpbgo6ZSBYdGVzdGZpbGUKYmFyYmFyCjpjYWxsIGFwcGVuZCgwLCBjbTBfcmVhZF9iaW4pCjpjYWxsIGFwcGVuZCgwLCBjbTFfcmVhZF9iYWNrKQo6Y2FsbCBhcHBlbmQoMCwgY20wX3JlYWRfYmFjaykKOnNldCBrZXk9IGZlbmM9bGF0aW4xCjp3ISB0ZXN0Lm91dAo6cWEhCkVORFRFU1QKCnN0YXJ0IG9mIHRleHQKMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NjcKbGluZSAyICBmb28gYmFyIGJsYWgKbGluZSAzIHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eAplbmQgb2YgdGV4dAoKc3RhcnQgb2YgY209emlwIGJ5dGVzClZpbUNyeXB0fjAxIQYcbFYn3n1NZ6Dqo1ap5wdFIzOOMlXplwplbmQgb2YgY209emlwIGJ5dGVzCgpzdGFydCBvZiBjbT1ibG93ZmlzaCBieXRlcwpWaW1DcnlwdH4wMiFrKb4XlyMW3VOc9T264MgjpU20hkrDQc2lTbSGIYAVm/UP4dIZghaY9w3aCmVuZCBvZiBjbT1ibG93ZmlzaCBieXRlcwo=