PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTEiPgo8L2hlYWQ+Cjxib2R5PgoKPHNjcmlwdD4KICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKPC9zY3JpcHQ+Cgo8cD5UZXN0IGZvciA8YSBocmVmPSdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MSc+YnVnIDc0NjE8L2E+OiAKQWx3YXlzIGVuY29kZSB0aGUgcGF0aCBwYXJ0IG9mIGFuIFVSSSBhcyBVVEYtODwvcD4KClRlc3QgdGhlIFVSTCBhcyBpdCBpcyBwYXNzZWQgdG8gdGhlIHNlcnZlci4gV2luSUUgNiBhbmQgRmlyZWZveCAzLjBhIHJlc3VsdHMgYXJlIGN1cnJlbnRseSBkaWZmcmVyZW50OgpJRSB1c2VzIHRoZSB0YXJnZXQgZW5jb2RpbmcgZm9yIHRoZSBxdWVyeSBwYXRoLCB3aGlsZSBGaXJlZm94IHVzZXMgdGhlIHBhZ2UgZW5jb2RpbmcuIEFsc28sIFdpbklFIGRvZXNuJ3QgcGVyY2VudC1lbmNvZGUKdGhlIHF1ZXJ5IHBhdGguPGJyPgoiPHNjcmlwdCBpZD1zY3IxIHNyYz0iaW50ZXJjZXB0L3ByaW50L/Tg6esuanM/9+XpPezu6SI+PC9zY3JpcHQ+IiAobm8gdGFyZ2V0IGNoYXJzZXQgc3BlY2lmaWVkKTxicj4KIjxzY3JpcHQgaWQ9c2NyMiBjaGFyc2V0PSJ3aW5kb3dzLTEyNTEiIHNyYz0iaW50ZXJjZXB0L3ByaW50L/Tg6esuanM/9+XpPezu6SI+PC9zY3JpcHQ+IiAodGFyZ2V0IGNoYXJzZXQ9d2luZG93cy0xMjUxLCBzYW1lIGFzIHBhZ2UpPGJyPgoiPHNjcmlwdCBpZD1zY3IzIGNoYXJzZXQ9Imlzby04ODU5LTUiIHNyYz0iaW50ZXJjZXB0L3ByaW50L/Tg6esuanM/9+XpPezu6SI+PC9zY3JpcHQ+IiAodGFyZ2V0IGNoYXJzZXQ9aXNvLTg4NTktNSk8YnI+PGJyPgoKU2hvdyB0aGUgc291cmNlIGF0dHJpYnV0ZSBvZiB0aGUgc2NyaXB0cy4gV2luSUUgNiBkb2Vzbid0IHVzZSBwZXJjZW50IGVuY29kaW5nIGhlcmUsIHdoaWxlIEZpcmVmb3ggZG9lcy48YnI+CjxzY3JpcHQ+CiB0cnkgewogIGRvY3VtZW50LndyaXRlKCciJyArIGRvY3VtZW50LnNjcmlwdHNbMV0uc3JjICsgJyI8YnI+Jyk7CiAgZG9jdW1lbnQud3JpdGUoJyInICsgZG9jdW1lbnQuc2NyaXB0c1syXS5zcmMgKyAnIjxicj4nKTsKICBkb2N1bWVudC53cml0ZSgnIicgKyBkb2N1bWVudC5zY3JpcHRzWzNdLnNyYyArICciPGJyPicpOwogfSBjYXRjaCAoZXgpIHsKICBkb2N1bWVudC53cml0ZSgnIicgKyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyMSIpLnNyYyArICciPGJyPicpOwogIGRvY3VtZW50LndyaXRlKCciJyArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3IyIikuc3JjICsgJyI8YnI+Jyk7CiAgZG9jdW1lbnQud3JpdGUoJyInICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcjMiKS5zcmMgKyAnIjxicj4nKTsKIH0KPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4K