VGhpcyBpcyBhIGNvbGxlY3Rpb24gb2YgdGVzdHMgZm9yIHRoZSBDIGFuZCBDKysgZnJvbnRlbmRzIG9mIEVHQ1MuIEZvcgpmdXJ0aGVyIGluZm9ybWF0aW9uIHBsZWFzZSBjaGVjayBSRUFETUUuZ2NjIGFuZCBSRUFETUUuZysrLCB0aG91Z2ggdGhlCmxhdHRlciBtYXkgbm90IGJlIHVwLXRvLWRhdGUgYW55IG1vcmUuCgpUaGUgZHJpdmVyIHRoYXQgcnVucyB0aGlzIHRlc3RzdWl0ZSBpcyBjYWxsZWQgRGVqYUdudSBhbmQgeW91IHdpbGwKbmVlZCBhIGN1cnJlbnQgRGVqYUdudSBzbmFwc2hvdCwgd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20KZnRwOi8vZWdjcy5jeWdudXMuY29tL3B1Yi9lZ2NzL2luZnJhc3RydWN0dXJlLCBmb3IgZXhhbXBsZS4KCk1vc3Qgb2YgdGhlc2UgdGVzdHMgd2VyZSBvcmlnaW5hbGx5IGRldmVsb3BlZCBhbmQvb3IgY29sbGVjdGVkIGJ5CkN5Z251cyBTb2x1dGlvbnMsIGJ1dCB0aGVzZSBkYXlzIG1hbnkgYXJlIGJlaW5nIGFkZGVkIGJ5IHRoZSBFR0NTCmRldmVsb3BlcnMuCgpUaGVzZSB0ZXN0cyBhcmUgaW5jbHVkZWQgImFzIGlzIi4gSWYgYW55IG9mIHRoZW0gZmFpbHMsIGRvIG5vdCByZXBvcnQKYSBidWcuICBCdWcgcmVwb3J0cyBmb3IgRGVqYUdudSBjYW4gZ28gdG8gYnVnLWRlamFnbnVAcHJlcC5haS5taXQuZWR1LgpEaXNjdXNzaW9uIGFuZCBjb21tZW50cyBhYm91dCB0aGlzIHRlc3RzdWl0ZSBzaG91bGQgYmUgc2VudCB0bwpnY2NAZ2NjLmdudS5vcmc7IGFkZGl0aW9ucyBhbmQgY2hhbmdlcyB0byBzaG91bGQgZ28gdG8gc2VudCB0bwpnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZy4KClRoZSBlbnRpcmUgdGVzdHN1aXRlIGlzIGludm9rZWQgYnkgYG1ha2UgY2hlY2tgIGF0IHRoZSB0b3AgbGV2ZWwgb2YKdGhlIEVHQ1MgdHJlZS4gYG1ha2UgY2hlY2stZysrYCBydW5zIHRoZSBDKysgdGVzdHN1aXRlIG9ubHkuCgoKU1RSVUNUVVJFIE9GIFRIRSBURVNUU1VJVEUKCkFsbW9zdCBhbGwgQysrIHRlc3RzIHJlc2lkZSBpbiBzdWJkaXJlY3RvcmllcyBvZiBnKysub2xkLWRlamEsIGJhc2VkIG9uCnRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOgoKICBnKysuYmVuamFtaW4JVGVzdHMgYnkgQmVuamFtaW4gS296CiAgZysrLmJvYgogIGcrKy5icmVuZGFuCVRlc3RzIGJ5IEJyZW5kYW4gS2Vob2UKICBnKysuYnVncwogIGcrKy5laCAgCVRlc3RzIGZvciBleGNlcHRpb24gaGFuZGxpbmcKICBnKysuZXh0ICAJVGVzdHMgZm9yIGcrKyBleHRlbnNpb25zCiAgZysrLmdiICAJVGVzdHMgYnkgR2VyYWxkIEJhdW1nYXJ0bmVyCiAgZysrLmphc29uCVRlc3RzIGJ5IEphc29uIE1lcmlsbAogIGcrKy5qZWZmCVRlc3RzIGJ5IEplZmZyZXkgQSBMYXcKICBnKysubWFydGluCVRlc3RzIGJ5IE1hcnRpbiB2LiBM9ndpcwogIGcrKy5taWtlCVRlc3RzIGJ5IE1pa2UgU3R1bXAKICBnKysubmlrbGFzCVRlc3RzIGJ5IE5pa2xhcyBIYWxscXZpc3QKICBnKysubnMgIAlUZXN0cyBmb3IgbmFtZXNwYWNlcwogIGcrKy5vdGhlcgogIGcrKy5wdCAgCVRlc3RzIGZvciB0ZW1wbGF0ZXMKICBnKysucmZnCiAgZysrLnJvYmVydGwJVGVzdHMgZnJvbSBnY2MtYnVnc0BnY2MuZ251Lm9yZywgZ2F0aGVyZWQgYnkgUm9iZXJ0IExpcGUKCQpnKysub2xkLWRlamEgdXNlcyBhIGZpeGVkIGRyaXZlciBmb3IgYWxsIGcrKyB0ZXN0cyBiYXNlZCBvbiB0aGUgb2xkCkRlamFHbnUgZHJpdmVycy4gQnV0IGp1c3QgYmVjYXVzZSBpdHMgb2xkLCBkb2Vzbid0IG1lYW4gaXRzIHJlZHVuZGFudCEKVGVzdHMgdGhhdCB3YW50IHRvIHVzZSB0aGUgbm9ybWFsIGRnLmV4cCBkcml2ZXIgY2FuIGJlIHB1dCBpbiBnKysuZGcgaW5zdGVhZC4KVGhpcyBtYXkgYmUgcmVxdWlyZWQgZm9yIHBsYXRmb3JtLXNwZWNpZmljIHRlc3RzLCBvciB0ZXN0cyB3aXRoIG90aGVyCnNwZWNpYWwgcmVxdWlyZW1lbnRzLgo=