PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSdDb250ZW50LVR5cGUnIGNvbnRlbnQ9J3RleHQvaHRtbDsgY2hhcnNldD1sYXRpbjEnPgo8L2hlYWQ+Cjxib2R5Pgo8c2NyaXB0PgogIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwo8L3NjcmlwdD4KPHA+V2UgbmVlZCB0byB0cmVhdCBMYXRpbi0xIGFzIGlmIGl0IHdlcmUgd2luZG93cy0xMjUyLCBzZWUgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDIiPmJ1ZyA3NjAyPC9hPi48L3A+CjxwPkFzIGVudGl0aWVzOiA8c3BhbiBpZD0nZW50aXRpZXMnPiYjeDgwOyYjeDgxOyYjeDgzOyYjeDg2OyYjeDg3Ozwvc3Bhbj48L3A+CjxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzxwPihlc2NhcGVkKTogJyArIGVzY2FwZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW50aXRpZXMnKS5pbm5lckhUTUwpICsgJzwvcD4nKTs8L3NjcmlwdD48cD5JbmxpbmU6IDxzcGFuIGlkPSdpbmxpbmUnPoCBg4aHPC9zcGFuPjwvcD4KPHNjcmlwdD5kb2N1bWVudC53cml0ZSgnPHA+KGVzY2FwZWQpOiAnICsgZXNjYXBlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbmxpbmUnKS5pbm5lckhUTUwpICsgJzwvcD4nKTs8L3NjcmlwdD48cD5kb2N1bWVudC53cml0ZSBvZiB1bmljb2RlIGVzY2FwZXM6IDxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzxzcGFuIGlkPSJ3cml0ZSI+XHg4MFx4ODFcdTAwODNcdTAwODZcdTAwODc8L3NwYW4+Jyk7PC9zY3JpcHQ+PC9wPjxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoJzxwPihlc2NhcGVkKTogJyArIGVzY2FwZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd3JpdGUnKS5pbm5lckhUTUwpICsgJzwvcD4nKTs8L3NjcmlwdD48cD5pbm5lckhUTUwgYXNzaWdubWVudCBvZiB1bmljb2RlIGVzY2FwZXM6IDxzcGFuIGlkPSdpbm5lcic+PC9zcGFuPjwvcD48c2NyaXB0PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbm5lcicpLmlubmVySFRNTCA9ICdceDgwXHg4MVx1MDA4M1x1MDA4Nlx1MDA4Nyc7PC9zY3JpcHQ+PHNjcmlwdD5kb2N1bWVudC53cml0ZSgnPHA+KGVzY2FwZWQpOiAnICsgZXNjYXBlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbm5lcicpLmlubmVySFRNTCkgKyAnPC9wPicpOzwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K