| 1 | aW1wb3J0IHsgQWN0aW9uQnV0dG9uIH0gZnJvbSAiLi4vTWFuYWdlL0FjdGlvbkJ1dHRvbkNsYXNzLm1qcyI7CmltcG9ydCB7IENoZWNrRm9ySXRlbSwgUGlja1VwSXRlbSwgVXNlSXRlbSwgaW52ZW50b3J5SXRlbXMsIHNlbGVjdGVkSXRlbSB9IGZyb20gIi4uL01hbmFnZS9JbnZlbnRvcnlTY3JpcHQubWpzIjsKaW1wb3J0IHsgTmF2ZWdhdGUsIGFsaWVuTWFjaGluZSwgYnVua2VyIH0gZnJvbSAiLi4vTWFuYWdlL1BsYWNlQ2xhc3MubWpzIjsKaW1wb3J0IHsgbW92ZUxpZCwgcGxpbmcgfSBmcm9tICIuLi9NYW5hZ2UvU291bmRNYW5hZ2VyLm1qcyI7CmltcG9ydCB7IERpc3BsYXlUZXh0RnVuY3Rpb24sIFJlbW92ZVRleHRGdW5jdGlvbiB9IGZyb20gIi4uL01hbmFnZS9UZXh0QnViYmxlU2NyaXB0Lm1qcyI7CmltcG9ydCB7IEJ1bmtlckxpZE9wZW5BbmltYXRpb25DYW52YXMsIE1vdmVCdW5rZXJMaWQsIGJ1bmtlckxpZCB9IGZyb20gIi4uL0FuaW1hdGlvbnMvT3BlbkJ1bmtlckFuaW1hdGlvbi5tanMiOwppbXBvcnQgeyB0b290aEltcGxhbnQgfSBmcm9tICIuLi9NYW5hZ2UvSXRlbURhdGFiYXNlU2NyaXB0Lm1qcyI7CmltcG9ydCB7IENhbnZhcyB9IGZyb20gIi4uL01hbmFnZS9DYW52YXNDbGFzcy5tanMiOwppbXBvcnQgeyBidW5rZXJGbG93ZXJzSXRlbSB9IGZyb20gIi4uL01hbmFnZS9TY2VuZUl0ZW1DbGFzcy5tanMiOwoKCmNvbnN0IGJ1bmtlckdhZGdldEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b24oImJ1bmtlcmdhZGdldGJ1dHRvbiIsIDU4MCwgMzAwLCAxMDAsIDYwLCBCdW5rZXJHYWRnZXRGdW5jdGlvbik7CmNvbnN0IHR1cm5CdW5rZXJXaGVlbEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b24oInR1cm5idW5rZXJ3aGVlbGJ1dHRvbiIsIDQ4MCwgMTc0LCAxNjksIDcyLCBUdXJuQnVua2VyV2hlZWxGdW5jdGlvbik7CmNvbnN0IGVudGVyQnVua2VyQnV0dG9uID0gbmV3ICBBY3Rpb25CdXR0b24oImVudGVyYnVua2VyYnV0dG9uIiwgNDI4LCAzMDAsIDMxMiwgNzMsIEVudGVyQnVua2VyRnVuY3Rpb24pOwpjb25zdCBidW5rZXJMaWRDYW52YXMgPSBuZXcgQ2FudmFzKCJidW5rZXJsaWRjYW52YXMiLCBidW5rZXJMaWQpCmNvbnN0IGJ1bmtlckZsb3dlcnNDYW52YXMgPSBuZXcgQ2FudmFzKCJidW5rZXJmbG93ZXJzY2FudmFzIiwgYnVua2VyRmxvd2Vyc0l0ZW0uaW1hZ2UpCgoKCmxldCB0b290aFVzZWQgPSBmYWxzZTsKCmZ1bmN0aW9uIEJ1bmtlckdhZGdldEZ1bmN0aW9uKCkgewogICAgQ2hlY2tGb3JJdGVtKCk7CiAgICBpZiAoc2VsZWN0ZWRJdGVtID09IHRvb3RoSW1wbGFudC50ZXh0KSB7CiAgICAgICAgcGxpbmcucGxheSgpOwogICAgICAgIHRvb3RoVXNlZCA9IHRydWUKICAgICAgICBVc2VJdGVtKHRvb3RoSW1wbGFudCkKICAgICAgICBSZW1vdmVUZXh0RnVuY3Rpb24oKTsKCiAgICB9IGVsc2UgewogICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIlNvbWUga2luZCBvZiBlbGVjdHJpYyBkZXZpY2UuIEl0IG1pZ2h0IHNjYW4gc29tZXRoaW5nLiIpCiAgICB9Cn0KCiBsZXQgYnVua2VyTGlkSXNPcGVuID0gZmFsc2U7Cgphc3luYyBmdW5jdGlvbiBUdXJuQnVua2VyV2hlZWxGdW5jdGlvbigpIHsKICAgIGlmICh0b290aFVzZWQpIHsgCiAgICAgICAgYnVua2VyR2FkZ2V0QnV0dG9uLmFjdGl2YXRlKCk7CiAgICAgICAgdHVybkJ1bmtlcldoZWVsQnV0dG9uLmFjdGl2YXRlKCk7CiAgICAgICAgUmVtb3ZlVGV4dEZ1bmN0aW9uKCk7CiAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMC8zKSk7CiAgICAgICBidW5rZXJMaWRDYW52YXMuYWN0aXZhdGUoKTsKICAgICAgIE1vdmVCdW5rZXJMaWQoKTsKICAgICAgICBtb3ZlTGlkLnBsYXkoKTsKICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwMCkpOwogICAgICAgIGVudGVyQnVua2VyQnV0dG9uLmFjdGl2YXRlKCk7CiAgICAgICAgYnVua2VyTGlkSXNPcGVuID0gdHJ1ZTsgIAogICAgICAgIGJ1bmtlci5jYW52YXMucHVzaChCdW5rZXJMaWRPcGVuQW5pbWF0aW9uQ2FudmFzKSAgICAgCiAgICAgICAgYnVua2VyLmJ1dHRvbnMgPSBbRW50ZXJCdW5rZXJCdXR0b25dOwogICAgLy8gICBVc2VJdGVtKHRvb3RoSW1wbGFudCk7Cgp9IGVsc2UgewogICAgRGlzcGxheVRleHRGdW5jdGlvbigiVGhlIHdoZWVsIHNlZW1zIHRvIGJlIHN0dWNrLiIpCn0KfQoKZnVuY3Rpb24gRW50ZXJCdW5rZXJGdW5jdGlvbigpIHsKICAgIE5hdmVnYXRlKGJ1bmtlciwgYWxpZW5NYWNoaW5lKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIEJ1bmtlckdhZGdldEJ1dHRvbigpIHsKICAgIGJ1bmtlckdhZGdldEJ1dHRvbi5hY3RpdmF0ZSgpOwp9CgpleHBvcnQgZnVuY3Rpb24gVHVybkJ1bmtlcldoZWVsQnV0dG9uKCkgewogICAgdHVybkJ1bmtlcldoZWVsQnV0dG9uLmFjdGl2YXRlKCk7Cn0KCmV4cG9ydCBmdW5jdGlvbiBFbnRlckJ1bmtlckJ1dHRvbigpIHsKICAgIGlmIChidW5rZXJMaWRJc09wZW4pIHsKICAgICAgICBlbnRlckJ1bmtlckJ1dHRvbi5hY3RpdmF0ZSgpOwogICAgfQogICAgCn0KCmV4cG9ydCBmdW5jdGlvbiBCdW5rZXJMaWRDYW52YXMoKSB7CiAgICBpZiAoIWJ1bmtlckxpZElzT3BlbikgewogICAgICAgIGJ1bmtlckxpZENhbnZhcy5hY3RpdmF0ZSgpOwogICAgfSAKfQoKZXhwb3J0IGZ1bmN0aW9uIEJ1bmtlckZsb3dlcnNDYW52YXMoKSB7CiAgICBidW5rZXJGbG93ZXJzQ2FudmFzLmFjdGl2YXRlKCk7ICAgCn0K |
| 1 | Ly9pbXBvcnQgeyBCYWNrZ3JvdW5kLCBiYWNrYnV0dG9uLCBsZWZ0YnV0dG9uLCByaWdodGJ1dHRvbiB9IGZyb20gIi4uL01hbmFnZS9CYWNrZ3JvdW5kU2NyaXB0Lm1qcyI7IAppbXBvcnQgeyBPYmplY3RJbWFnZSwgQ3JlYXRlQnV0dG9uLCBDcmVhdGVDYW52YXNGcmVlLCB1bml0IH0gZnJvbSAiLi4vTWFuYWdlL0dhbWVNYW5hZ2VyLm1qcyI7CmltcG9ydCB7IHNsaW5nc2hvdEJldHdlZW5TZWF0cywgYnVzU2VhdHNGaXJzdCwgYmx1ZUNyZWF0dXJlLCBibHVlQ3JlYXR1cmVUdXJuZWQgIH0gZnJvbSAiLi4vTWFuYWdlL1NjZW5lSXRlbUNsYXNzLm1qcyI7CmltcG9ydCB7IENoZWNrRm9ySXRlbSwgUGlja1VwSXRlbSwgc2VsZWN0ZWRJdGVtIH0gZnJvbSAiLi4vTWFuYWdlL0ludmVudG9yeVNjcmlwdC5tanMiOwppbXBvcnQgeyBjcmVlcCwgbGV0dGVyLCByZW1vdGVDb250cm9sLCBzbGluZ3Nob3QsIHRvb3RoSW1wbGFudCwgdHVuaW5nRm9yayB9IGZyb20gIi4uL01hbmFnZS9JdGVtRGF0YWJhc2VTY3JpcHQubWpzIjsgCmltcG9ydCB7IERpc3BsYXlUZXh0RnVuY3Rpb24sIFJlbW92ZVRleHRGdW5jdGlvbiwgcmVtb3ZldGV4dGJ1dHRvbiB9IGZyb20gIi4uL01hbmFnZS9UZXh0QnViYmxlU2NyaXB0Lm1qcyI7CmltcG9ydCB7IE1vdmVTb21ldGhpbmcgfSBmcm9tICIuLi9BbmltYXRpb25zL0FuaW1hdGlvbk1hbmFnZXIubWpzIjsKCgpsZXQgYnVzc2VhdHNmaXJzdGNhbnZhczsKLy9yZW1vdmVzIHRoZSB0ZXh0IHdoZW4gYnVzIHNlYXRzIGFyZSBjbGlja2VkCmxldCBidXNzZWF0c3JlbW92ZXRleHRidXR0b247CgpmdW5jdGlvbiBCdXNTZWF0c0ZpcnN0Q2FudmFzKCkgewogICAgYnVzc2VhdHNmaXJzdGNhbnZhcyA9IENyZWF0ZUNhbnZhc0ZyZWUoImJ1c3NlYXRzZmlyc3RjYW52YXMiLCAxMTUsIDM4MiwgNTc4LCAzMDYpOwogICAgYnVzc2VhdHNmaXJzdGNhbnZhcy5zdHlsZS56SW5kZXggPSAiNCI7CmJ1c3NlYXRzcmVtb3ZldGV4dGJ1dHRvbiA9IENyZWF0ZUJ1dHRvbigicmVtb3ZldGV4dGJ1c3NlYXRzYnV0dG9uIiwgMTA4LCAzOTQsIDU3OCwgMzA2LCAoKSA9PiB7CiAgICBSZW1vdmVUZXh0RnVuY3Rpb24oKTsKfSkKYnVzc2VhdHNyZW1vdmV0ZXh0YnV0dG9uLnN0eWxlLmN1cnNvciA9ICdkZWZhdWx0JzsKYnVzc2VhdHNyZW1vdmV0ZXh0YnV0dG9uLnN0eWxlLnpJbmRleCA9ICI3IjsKYnVzc2VhdHNyZW1vdmV0ZXh0YnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwp9CgpleHBvcnQgbGV0IGJsdWVjcmVhdHVyZWNhbnZhczsKbGV0IGJsdWVjcmVhdHVyZWxlZnQgPSAzODA7CmxldCBibHVlY3JlYXR1cmV0b3AgPSAzMTA7CmxldCBibHVlY3JlYXR1cmV3aWR0aCA9IDM4NiAvIDI7CmxldCBibHVlY3JlYXR1cmVoZWlnaHQgPSA0OTggLyAyOwovLyAgbGV0IGJsdWVDcmVhdHVyZUltYWdlID0gYmx1ZUNyZWF0dXJlOwoKZnVuY3Rpb24gQmx1ZUNyZWF0dXJlQ2FudmFzKCkgewpibHVlY3JlYXR1cmVjYW52YXMgPSBDcmVhdGVDYW52YXNGcmVlKCJibHVlY3JlYXR1cmVjYW52YXMiLCBibHVlY3JlYXR1cmVsZWZ0LCBibHVlY3JlYXR1cmV0b3AsIGJsdWVjcmVhdHVyZXdpZHRoLCBibHVlY3JlYXR1cmVoZWlnaHQpOwpibHVlY3JlYXR1cmVjYW52YXMuc3R5bGUuekluZGV4ID0gIjEiOwp9CgpsZXQgc2xpbmdzaG90YnV0dG9uOwpsZXQgc2xpbmdzaG90Y2FudmFzOwoKZnVuY3Rpb24gU2xpbmdTaG90QnV0dG9uKCkgewogICAgc2xpbmdzaG90YnV0dG9uID0gQ3JlYXRlQnV0dG9uKCJzbGluZ3Nob3RidXR0b24iLCAzODgsIDUzMiwgNzMsIDc0LCAoKSA9PiB7CiAgICAgICAgUGlja1VwSXRlbShzbGluZ3Nob3QpOwogICAgICAgIHNsaW5nc2hvdGNhbnZhcy5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIHNsaW5nc2hvdGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIFJlbW92ZVRleHRGdW5jdGlvbigpOwogICAgfSkKICAgIHNsaW5nc2hvdGJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgIHNsaW5nc2hvdGJ1dHRvbi5zdHlsZS56SW5kZXggPSAiMTAiOwogICAgc2xpbmdzaG90Y2FudmFzID0gQ3JlYXRlQ2FudmFzRnJlZSgic2xpbmdzaG90Y2FudmFzIiwgMzg4LCA1MzIsIDczLCA3NCk7CnNsaW5nc2hvdGNhbnZhcy5zdHlsZS56SW5kZXggPSAnNyc7Ck9iamVjdEltYWdlKHNsaW5nc2hvdEJldHdlZW5TZWF0cy5pbWFnZSwgc2xpbmdzaG90Y2FudmFzKTsKfQoKCmxldCBibHVlY3JlYXR1cmVidXR0b24KCmZ1bmN0aW9uIEJsdWVDcmVhdHVyZUJ1dHRvbkZ1bmN0aW9uKCkgewogICAgYmx1ZWNyZWF0dXJlYnV0dG9uID0gQ3JlYXRlQnV0dG9uKCJibHVlY3JlYXR1cmVidXR0b24iLCBibHVlY3JlYXR1cmVsZWZ0LCBibHVlY3JlYXR1cmV0b3AsIGJsdWVjcmVhdHVyZXdpZHRoLCBibHVlY3JlYXR1cmVoZWlnaHQsICgpID0+IHsKICAgICAgICBCbHVlQ3JlYXR1cmVGdW5jdGlvbigpOwogICAgfSkKICAgIGJsdWVjcmVhdHVyZWJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgIGJsdWVjcmVhdHVyZWJ1dHRvbi5zdHlsZS56SW5kZXggPSAiNSI7Cn0KCmNvbnNvbGUubG9nKHJlbW92ZXRleHRidXR0b24pCgpsZXQgYmx1ZUNyZWF0dXJlRGlzY292ZXJlZCA9IGZhbHNlOwpsZXQgYmx1ZUNyZWF0dXJlVXAgPSBmYWxzZTsKbGV0IHF1ZXN0aW9uQXNrZWQgPSBmYWxzZTsKbGV0IHByZXNlbnRhdGlvbiA9IGZhbHNlOwpsZXQgaGFydmV5SXNEZWFkID0gZmFsc2U7CgpmdW5jdGlvbiBCbHVlQ3JlYXR1cmVGdW5jdGlvbigpIHsKICAgIGlmICghYmx1ZUNyZWF0dXJlRGlzY292ZXJlZCkgewogICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIkFyZSB0aGV5IHNzc3N0aWxsIGFyb3VuZD8iKTsKICAgICAgICBibHVlQ3JlYXR1cmVEaXNjb3ZlcmVkID0gdHJ1ZTsKICAgIH0gZWxzZSBpZiAoIWJsdWVDcmVhdHVyZVVwKSB7CiAgICAgICAgRGlzcGxheVRleHRGdW5jdGlvbigiRGFtbiwgdGhhdCB3YXNzc3MgY2xvc3Nzc2UuIikKICAgICAgICBibHVlY3JlYXR1cmVjYW52YXMuc3R5bGUudG9wID0gdW5pdCAqIDIyMCArICJweCI7CiAgICAgICAgYmx1ZWNyZWF0dXJlY2FudmFzLnN0eWxlLmxlZnQgPSB1bml0ICogMzQwICsgInB4IjsKICAgICAgICBPYmplY3RJbWFnZShibHVlQ3JlYXR1cmVUdXJuZWQuaW1hZ2UsIGJsdWVjcmVhdHVyZWNhbnZhcyk7CiAgICAgICAgTW92ZVNvbWV0aGluZygiYmx1ZWNyZWF0dXJlYnV0dG9uIiwgMzY5LCAyMjAsIDE4MSwgMTUwKTsKICAgICAgICBibHVlQ3JlYXR1cmVVcCA9IHRydWU7CiAgICAgICAgLy8gYmx1ZUNyZWF0dXJlSW1hZ2UgPSBibHVlQ3JlYXR1cmVUdXJuZWQuaW1hZ2U7CiAgICB9IGVsc2UgaWYgKCFxdWVzdGlvbkFza2VkKSB7CiAgICAgICAgRGlzcGxheVRleHRGdW5jdGlvbigiV2hvIGFyZSB5b3UsIGFueXdheXNzcz8iKQogICAgICAgIGJsdWVjcmVhdHVyZWNhbnZhcy5zdHlsZS5sZWZ0ID0gdW5pdCAqIDM4MCArICJweCI7CiAgICAgICAgT2JqZWN0SW1hZ2UoYmx1ZUNyZWF0dXJlLmltYWdlLCBibHVlY3JlYXR1cmVjYW52YXMpOwogICAgICAgIE1vdmVTb21ldGhpbmcoImJsdWVjcmVhdHVyZWJ1dHRvbiIsIDM2OSwgMjMwLCAxODEsIDE1MCkKICAgICAgICBxdWVzdGlvbkFza2VkID0gdHJ1ZTsKICAgIH0gZWxzZSB7CiAgICAgICAgQ2hlY2tGb3JJdGVtKCk7CiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSA9PSBsZXR0ZXIudGV4dCkgewogICAgICAgICAgICBpZiAoIXByZXNlbnRhdGlvbikgewogICAgICAgICAgICBpZiAoaGFydmV5SXNEZWFkKSB7CiAgICAgICAgICAgICAgICBEaXNwbGF5VGV4dEZ1bmN0aW9uKCJIZSBzc3NzYWlkIGhpcyBtYWNoaW5lIHdvdWxkIHJlYnVpbGQgbWFua2luZCwgYnV0IGluIGEgZ29vZCBhIHdheS5cbkFoLCB5b3UgY2FuIGhhdmUgdGhpc3NzIGFzc3NzIHdlbGwuIEl0IHdhcyBoaXMuIikKICAgICAgICAgICAgICAgIFBpY2tVcEl0ZW0ocmVtb3RlQ29udHJvbCkKICAgICAgICAgICAgICAgIHByZXNlbnRhdGlvbiA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIk9oLCB5b3UncmUgSGFydmV5J3MgbmVwaGV3LiBIYXZlbid0IHNzc3NlZW4gaGltIGluIGEgd2hpbGUuXG5JZiB5b3UgZmluZCBoaW0sIGdpdmUgaGltIHRoaXMuIEl0J3MgaGlzLCBJIGZvdW5kIGl0IGRvd24gdGhlIHN0cmVhbS4iKQogICAgICAgICAgICBwcmVzZW50YXRpb24gPSB0cnVlOyAKICAgICAgICAgICAgUGlja1VwSXRlbShyZW1vdGVDb250cm9sKQogICAgICAgIH0gfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGhhcnZleUlzRGVhZCkgewogICAgICAgICAgICAgICAgRGlzcGxheVRleHRGdW5jdGlvbigiR28gYW5kIGF2ZW5nZSBoaW0uIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBEaXNwbGF5VGV4dEZ1bmN0aW9uKCJUZWxsIGhpbSBJIHNhaWQgaGVsbG8uIikKICAgICAgICAgICAgfQogICAgICAgIH0gfSAgZWxzZSBpZiAoc2VsZWN0ZWRJdGVtID09IHRvb3RoSW1wbGFudC50ZXh0KSB7CiAgICAgICAgICAgRGlzcGxheVRleHRGdW5jdGlvbigiRGVhZCwgaXNzcyBoZT8gRGFtbiwgdGhpc3NzIGlzc3MgZ29pbmcgdGhlIHdyb25nIHdheS5cbkhlcmUsIHRha2UgdGhpc3Nzcy4gSGUgd291bGQgaGF2ZSB3YW50ZWQgeW91IHRvIGhhdmUgaXQuIikKICAgICAgICAgICBoYXJ2ZXlJc0RlYWQgPSB0cnVlOwogICAgICAgICAgIFBpY2tVcEl0ZW0odHVuaW5nRm9yayk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoc2VsZWN0ZWRJdGVtID09IGNyZWVwLnRleHQpIHsKICAgICAgICAgICAgRGlzcGxheVRleHRGdW5jdGlvbigiSGV5LCBpc3Nzbid0IGl0IGxpdHRsZSBNci4gQ3Jpbmd5ISBIYXBweSB5b3UgYXJlIHdlbGwhIik7CiAgICAgICAgfSAKICAgICAgICBlbHNlIGlmIChzZWxlY3RlZEl0ZW0gPT0gcmVtb3RlQ29udHJvbC50ZXh0KSB7CiAgICAgICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIkl0J3Mgb25lIG9mIEhhcnZleSdzcyB0aGluZ3Nzcy4gSXQuLi4gbWFrZXNzcyBzc3N0dWZmIGhhcHBlbi4iKTsKICAgICAgICB9CiAgICAgIGVsc2UgaWYgKHNlbGVjdGVkSXRlbSA9PSBmYWxzZSkgewogICAgICAgICAgICBpZiAoIXByZXNlbnRhdGlvbikgewogICAgICAgICAgICAgICAgRGlzcGxheVRleHRGdW5jdGlvbigiV2hvIGFyZSB5b3UsIGFueXdheXNzcz8iKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIkl0J3NzcyBkYW5nZXJvdXNzcyBhcm91bmQgaGVyZS4iKQogICAgICAgICAgICAgfSAgfSAgZWxzZSB7CiAgICAgICAgICAgIC8vIGlmICh0ZXh0Qm9vbCA9PSAiV2hvIGFyZSB5b3UsIGFueXdheXNzcz8iKSB7CiAgICAgICAgICAgIC8vICAgICBSZW1vdmVUZXh0RnVuY3Rpb24oKTsKICAgICAgICAgICAgLy8gfSBlbHNlIHsKICAgICAgICAgICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIldoYXQnc3NzIHlvdSBnb3QgdGhlcmU/Iik7CiAgICAgICAgICAgIC8vIH0KICAgICAgICB9CiAgICB9CgogIGJsdWVjcmVhdHVyZWxlZnQgPSBwYXJzZUludChibHVlY3JlYXR1cmVjYW52YXMuc3R5bGUubGVmdCkgLyB1bml0OwogIGJsdWVjcmVhdHVyZXRvcCA9IHBhcnNlSW50KGJsdWVjcmVhdHVyZWNhbnZhcy5zdHlsZS50b3ApIC8gdW5pdDsKICBibHVlY3JlYXR1cmV3aWR0aCA9IHBhcnNlSW50KGJsdWVjcmVhdHVyZWNhbnZhcy53aWR0aCkgLyB1bml0OwogIGJsdWVjcmVhdHVyZWhlaWdodCA9IHBhcnNlSW50KGJsdWVjcmVhdHVyZWNhbnZhcy5oZWlnaHQpIC8gdW5pdDsKfQoKZXhwb3J0IGZ1bmN0aW9uIEVudGVyQnVzU2VhdHMoKSB7CiAgICBCbHVlQ3JlYXR1cmVDYW52YXMoKTsKICAgIEJ1c1NlYXRzRmlyc3RDYW52YXMoKTsKICAgIEJsdWVDcmVhdHVyZUJ1dHRvbkZ1bmN0aW9uKCk7CiAgICBpZiAoIXNsaW5nc2hvdC5ib29sKSB7CiAgICAgICAgU2xpbmdTaG90QnV0dG9uKCk7CiAgICB9CiAgICAgT2JqZWN0SW1hZ2UoYnVzU2VhdHNGaXJzdC5pbWFnZSwgYnVzc2VhdHNmaXJzdGNhbnZhcyk7CiAgICAgIE9iamVjdEltYWdlKGJsdWVDcmVhdHVyZS5pbWFnZSwgYmx1ZWNyZWF0dXJlY2FudmFzKTsKfQoKZXhwb3J0IGZ1bmN0aW9uIEV4aXRCdXNTZWF0cygpIHsKICAgIGJsdWVjcmVhdHVyZWNhbnZhcy5yZW1vdmUoKTsKICAgIGJsdWVjcmVhdHVyZWJ1dHRvbi5yZW1vdmUoKTsKICAgIHNsaW5nc2hvdGJ1dHRvbi5yZW1vdmUoKTsKICAgIHNsaW5nc2hvdGNhbnZhcy5yZW1vdmUoKTsKICAgIGJ1c3NlYXRzZmlyc3RjYW52YXMucmVtb3ZlKCk7CiAgICBidXNzZWF0c3JlbW92ZXRleHRidXR0b24ucmVtb3ZlKCk7Cn0KCi8vIEJsdWVDcmVhdHVyZVNwZWVjaChidXNrZXksICJXZSdyZSBpbiBhIGJ1c3Nzcy4uLiBJIHRoaW5rLiIpCgpmdW5jdGlvbiBCbHVlQ3JlYXR1cmVTcGVlY2godGhpc1NlbGVjdGVkSXRlbSwgdGhpc0RpYWxvZ3VlUGhyYXNlKSB7CmlmIChzZWxlY3RlZEl0ZW0gPT0gdGhpc1NlbGVjdGVkSXRlbSkgewogICAgRGlzcGxheVRleHRGdW5jdGlvbih0aGlzRGlhbG9ndWVQaHJhc2UpOwp9Cn0= |
| 1 | aW1wb3J0IHsgRGVhY3RpdmF0ZVJvb2ZNb25zdGVyLCBCdXNXcmVja01vbnN0ZXIsIE1vbnN0ZXJJc0NvbWluZywgUm9vZk1vbnN0ZXJSZXZpdmUsIEVudGVyQnVzUGxhY2VNb25zdGVyRnVuY3Rpb24sIEV4aXRCdXNQbGFjZU1vbnN0ZXJGdW5jdGlvbiB9IGZyb20gIi4uL0FuaW1hdGlvbnMvQnVzUm9vZk1vbnN0ZXIubWpzIjsKaW1wb3J0IHsgR2F0ZUJ1dHRvbiwgQ2hhaW5CdXR0b24sIERpc3BsYXlDaGFpbkNhbnZhczEgfSBmcm9tICIuLi9QbGFjZXMvR2F0ZS5tanMiOwppbXBvcnQgeyBCZWhpbmRVZm9UZXh0LCBVZm9Db3ZlciB9IGZyb20gIi4uL1BsYWNlcy9VZm9DcmFzaGVkLm1qcyI7CmltcG9ydCB7IEJhY2tncm91bmQgfSBmcm9tICIuL0JhY2tncm91bmQubWpzIjsKaW1wb3J0IHsgQWN0aXZhdGVXaW5kb3dCYXJzLCBXaW5kb3dUZXh0QnV0dG9uLCBVbmxvY2tDcmF0ZUZ1bmN0aW9uLCBPcGVuQmFycmVkV2luZG93QnV0dG9uLCBFeGl0Q2FiaW5GdW5jdGlvbiwgRW50ZXJDYWJpbkZ1bmN0aW9uLCBDcmVlcGluZ0NyZWVwQnV0dG9uLCBDcmVlcGluZ0NyZWVwQ2FudmFzIH0gZnJvbSAiLi4vUGxhY2VzL0luc2lkZUNhYmluLm1qcyI7IAppbXBvcnQgeyBDcmVhdGVCdXR0b259IGZyb20gIi4vR2FtZU1hbmFnZXIubWpzIjsKaW1wb3J0IHsgYmVoaW5kQ2FiaW5JbWFnZSwgZm9yZXN0SW1hZ2UsIGdhdGVJbWFnZSwgc3RvbmVJbkZvcmVzdEltYWdlLCB1Zm9JbWFnZSwgaW5zaWRlQ2FiaW5JbWFnZSwgY2FiaW5Qb25kSW1hZ2UsIGJ1c1dyZWNrSW1hZ2UsIHJpdmVyYm9hdEltYWdlLCBwb25kSW1hZ2UsIHN0ZWVyaW5nV2hlZWxJbWFnZSwgYnVzU2VhdHNJbWFnZSwgYWxpZW5NYWNoaW5lRG9vckltYWdlLCBhbGllbk1hY2hpbmVJbWFnZSwgcml2ZXJib2F0Qm93SW1hZ2UsIG1vbnN0ZXJDYXZlSW1hZ2UsIHVuZGVyUml2ZXJib2F0Qm93SW1hZ2UgfSBmcm9tICIuL0ltYWdlRGF0YWJhc2UubWpzIjsKaW1wb3J0IHsgUmVtb3ZlVGV4dEZ1bmN0aW9uIH0gZnJvbSAiLi9UZXh0QnViYmxlU2NyaXB0Lm1qcyI7CmltcG9ydCB7IEJhY2tUb0NhYmluQnV0dG9uIH0gZnJvbSAiLi4vUGxhY2VzL0JlaGluZENhYmluLm1qcyI7CmltcG9ydCB7IEFsaWVuR3JhdmVCdXR0b24sIERlYWN0aXZhdGVGYWxsaW5nTGVhZkZ1bmN0aW9uLCBFbnRlckNhYmluQnV0dG9uLCBQaWNrVXBSb3BlQ2FudmFzLCBQaWNrVXBTaG92ZWwsIFBpY2tVcFNob3ZlbEltYWdlLCBSb3BlQnV0dG9uLCBTZXRJbnRlcnZhbEZhbGxpbmdMZWFmLCBXaW5kb3dCYXJzQ2FiaW5Qb25kQ2FudmFzIH0gZnJvbSAiLi4vUGxhY2VzL0NhYmluUG9uZC5tanMiOwppbXBvcnQgeyBCYWNrV2hlZWxUZXh0QnV0dG9uLCBEZWFjdGl2YXRlRmFsbGluZ0xlYWZCdXNXcmVja0Z1bmN0aW9uLCBFbnRlckJ1c0J1dHRvbiwgT25seUJ1c0NhbnZhcywgUGlja1VwQnVza2V5QnV0dG9uLCBTZXRJbnRlcnZhbEZhbGxpbmdMZWFmQnVzV3JlY2sgfSBmcm9tICIuLi9QbGFjZXMvQnVzV3JlY2subWpzIjsKaW1wb3J0IHsgSWduaXRpb25CdXR0b24sIFN0ZWVyaW5nV2hlZWxPbmx5Q2FudmFzIH0gZnJvbSAiLi4vUGxhY2VzL1N0ZWVyaW5nV2hlZWwubWpzIjsKaW1wb3J0IHsgYnVua2VySW1hZ2UsIHJpdmVyYm9hdEluc2lkZUltYWdlIH0gZnJvbSAiLi9JbWFnZURhdGFiYXNlLm1qcyI7CmltcG9ydCB7IFRvQnVua2VyQnV0dG9uIH0gZnJvbSAiLi4vUGxhY2VzL1BvbmQubWpzIjsKaW1wb3J0IHsgU3RvcFVuZGVyd2F0ZXJBbmltYXRpb24sIFVuZGVyd2F0ZXJNb25zdGVyQnV0dG9uIH0gZnJvbSAiLi4vQW5pbWF0aW9ucy9VbmRlcndhdGVyTW9uc3RlclNjcmlwdC5tanMiOwppbXBvcnQgeyBCdW5rZXJGbG93ZXJzQ2FudmFzLCBCdW5rZXJHYWRnZXRCdXR0b24sIEJ1bmtlckxpZENhbnZhcywgRW50ZXJCdW5rZXJCdXR0b24sIFR1cm5CdW5rZXJXaGVlbEJ1dHRvbiB9IGZyb20gIi4uL1BsYWNlcy9CdW5rZXIubWpzIjsKaW1wb3J0IHsgQ3J5cHRvQ3ViZUJ1dHRvbiwgRXhpdEJ1bmtlckJ1dHRvbiB9IGZyb20gIi4uL1BsYWNlcy9BbGllbk1hY2hpbmUubWpzIjsKaW1wb3J0IHsgUml2ZXJib2F0Qm93QnV0dG9uIH0gZnJvbSAiLi4vUGxhY2VzL0luc2lkZVJpdmVyYm9hdC5tanMiOwppbXBvcnQgeyBPcGVuQWxpZW5NYWNoaW5lRG9vckJ1dHRvbiB9IGZyb20gIi4uL1BsYWNlcy9BbGllbk1hY2hpbmVEb29yLm1qcyI7CmltcG9ydCB7IE1vbnN0ZXJDYXZlUm9ja0NhbnZhcyB9IGZyb20gIi4uL01hbmFnZS9TY2VuZUl0ZW1DbGFzcy5tanMiOwppbXBvcnQgeyBFbnRlckNhdmUsIEV4aXRDYXZlIH0gZnJvbSAiLi4vUHV6emxlcy9BbGllbk1hY2hpbmVQdXp6bGUubWpzIjsKaW1wb3J0IHsgRW50ZXJNb25zdGVyQ2F2ZSwgRXhpdE1vbnN0ZXJDYXZlIH0gZnJvbSAiLi4vQW5pbWF0aW9ucy9DYXZlTW9uc3RlckFuaW1hdGlvbi5tanMiOwppbXBvcnQgeyBFbnRlckJ1c1NlYXRzLCBFeGl0QnVzU2VhdHMgfSBmcm9tICIuLi9QbGFjZXMvQnVzU2VhdHNTY3JpcHQubWpzIjsKaW1wb3J0IHsgRW50ZXJVbmRlckJvd0Z1bmN0aW9uLCBFeGl0VW5kZXJCb3dGdW5jdGlvbiB9IGZyb20gIi4uL1BsYWNlcy9VbmRlclJpdmVyYm9hdEJvdy5tanMiOwppbXBvcnQgeyBFbnRlckJ1c1BsYWNlRnVuY3Rpb24sIEVudGVyUG9uZFBsYWNlRnVuY3Rpb24sIEV4aXRCdXNQbGFjZUZ1bmN0aW9uLCBFeGl0UG9uZFBsYWNlRnVuY3Rpb24gfSBmcm9tICIuLi9QdXp6bGVzL1JvcGVQdXp6bGUubWpzIjsKaW1wb3J0IHsgRW50ZXJSaXZlcmJvYXRCb3dQbGFjZSwgRXhpdFJpdmVyYm9hdEJvd1BsYWNlIH0gZnJvbSAiLi4vQW5pbWF0aW9ucy9SaXZlckJvYXRCb3dNb25zdGVyLm1qcyI7CgpleHBvcnQgbGV0IHRoaXNDdXJyZW50UGxhY2U7CgpleHBvcnQgY2xhc3MgUGxhY2UgewogICAgY29uc3RydWN0b3IgKGJhY2tncm91bmQsIG5hdmVnYXRpb25CdXR0b25zID0gW10sIG5ld1BsYWNlcyA9IFtdLCBjdXJyZW50UGxhY2UsICBidXR0b25zID0gW10sIGNhbnZhcyA9IFtdLCBhY3RpdmF0ZUZ1bmN0aW9ucyA9IFtdLCBkZWFjdGl2YXRlRnVuY3Rpb25zID0gW10pIHsKICAgIC8vTmF2ZWdhdGlvbgogICAgICB0aGlzLmJhY2tncm91bmQgPSBiYWNrZ3JvdW5kOwogICAgICAgIHRoaXMubmF2ZWdhdGlvbkJ1dHRvbnMgPSBuYXZlZ2F0aW9uQnV0dG9uczsKICAgICAgICAvL290aGVyIGJ1dHRvbnMKICAgICAgICB0aGlzLmJ1dHRvbnMgPSBidXR0b25zOwogICAgICAgIC8vcGxhY2VzIHlvdSBnbyB0bwogICAgICAgIHRoaXMubmV3UGxhY2VzID0gbmV3UGxhY2VzOwovL1RoZSBwbGFjZSB5b3UgYXJlIGF0CiAgICAgICAgdGhpcy5jdXJyZW50UGxhY2UgPSBjdXJyZW50UGxhY2U7CiAgICAgICAgLy9PYmplY3RzIGluIHRoZSBzY2VuZQogICAgICAgICB0aGlzLmNhbnZhcyA9IGNhbnZhczsKICAgICAgICAgLy9mdW5jdGlvbnMgY2FsbGVkIHdoZW4gcGxhY2UgaXMgYWN0aXZhdGVkL2RlYWN0aXZhdGVkCiAgICAgICAgIHRoaXMuYWN0aXZhdGVGdW5jdGlvbnMgPSBhY3RpdmF0ZUZ1bmN0aW9uczsKICAgICAgICAgdGhpcy5kZWFjdGl2YXRlRnVuY3Rpb25zID0gZGVhY3RpdmF0ZUZ1bmN0aW9uczsKICAgIH0KCiAgICBhY3RpdmF0ZSgpIHsKICAgICAgLy9Mb2FkIGJhY2tncm91bmQgaW1hZ2UKICAgICAgdGhpc0N1cnJlbnRQbGFjZSA9IHRoaXMuY3VycmVudFBsYWNlOwogICAgICBCYWNrZ3JvdW5kKHRoaXMuYmFja2dyb3VuZCk7CiAgICAgIC8vZnVuY3Rpb25zIGNhbGxlZCBhdCBiYWNrZ3JvdW5kIGxvYWQKICAgICAgaWYgKHRoaXMuYWN0aXZhdGVGdW5jdGlvbnMubGVuZ3RoID4gMCkgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hY3RpdmF0ZUZ1bmN0aW9ucy5sZW5ndGg7IGkrKykgeyAKICAgICAgICAgIHRoaXMuYWN0aXZhdGVGdW5jdGlvbnNbaV0oKTsKICAgICAgICAgfSAKICAgICAgfQogICAgICAvL0Jhc2ljIG5hdmVnYXRpb25idXR0b25zCiAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubmF2ZWdhdGlvbkJ1dHRvbnMubGVuZ3RoOyBpKyspIHsgCiAgICAgICAgdGhpcy5uYXZlZ2F0aW9uQnV0dG9uc1tpXSh0aGlzLm5ld1BsYWNlc1tpXSwgdGhpcy5jdXJyZW50UGxhY2UpOwogICAgICAgfSAgCiAgICAgICAvL0FsbCBvdGhlciBidXR0b25zIGNvbm5lY3RlZCB0byB0aGUgYmFja2dyb3VuZAogICAgICAgaWYgKHRoaXMuYnV0dG9ucy5sZW5ndGggPiAwKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmJ1dHRvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICB0aGlzLmJ1dHRvbnNbaV0oKTsKICAgICAgfX0KICAgICAgLy9BbGwgb3RoZXIgIGNhbnZhc2VzCiAgICAgICBpZiAodGhpcy5jYW52YXMubGVuZ3RoID4gMCkgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jYW52YXMubGVuZ3RoOyBpKyspIHsgIAogICAgICAgICAgdGhpcy5jYW52YXNbaV0oKTsKICAgICAgIH19CiAgICB9IAogICAgZGVhY3RpdmF0ZSgpIHsKICAgICAgUmVtb3ZlVGV4dEZ1bmN0aW9uKCk7CiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5uYXZlZ2F0aW9uQnV0dG9ucy5sZW5ndGg7IGkrKykgeyAKICAgICAgICB0aGlzLm5hdmVnYXRpb25CdXR0b25zW2ldKHRoaXMubmV3UGxhY2VzW2ldLCB0aGlzLmN1cnJlbnRQbGFjZSk7CiAgICAgICB9ICAKICAgICAgIGlmICh0aGlzLmJ1dHRvbnMubGVuZ3RoID4gMCkgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5idXR0b25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdGhpcy5idXR0b25zW2ldKCk7CiAgICAgICB9fQogICAgICAgaWYgKHRoaXMuY2FudmFzLmxlbmd0aCA+IDApIHsKICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jYW52YXMubGVuZ3RoOyBpKyspIHsgICAgIAogICAgICAgIHRoaXMuY2FudmFzW2ldKCk7CiAgICB9fQogICAgaWYgKHRoaXMuZGVhY3RpdmF0ZUZ1bmN0aW9ucy5sZW5ndGggPiAwKSB7CiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kZWFjdGl2YXRlRnVuY3Rpb25zLmxlbmd0aDsgaSsrKSB7IAogICAgICAgIHRoaXMuZGVhY3RpdmF0ZUZ1bmN0aW9uc1tpXSgpOwogICAgICAgfSAKICAgIH0KICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBOYXZlZ2F0ZShjdXJyZW50UGxhY2UsIG5ld1BsYWNlKSB7CiAgY3VycmVudFBsYWNlLmRlYWN0aXZhdGUoKTsgCiAgbmV3UGxhY2UuYWN0aXZhdGUoKTsKfQoKLy9CYXNpYyBuYXZlZ2F0aW9uIGJ1dHRvbnMKCmxldCBsZWZ0QnV0dG9uID0gZmFsc2U7CgpmdW5jdGlvbiBDcmVhdGVMZWZ0QnV0dG9uKG5ld1BsYWNlLCBjdXJyZW50UGxhY2UpIHsKICBpZiAoIWxlZnRCdXR0b24pIHsKICAgbGV0IGxlZnRidXR0b24xID0gQ3JlYXRlQnV0dG9uKCJsZWZ0YnV0dG9uMSIsIDExMCwgNTUsIDQ4LCA2NDgsIGZ1bmN0aW9uKCkgewogICAgTmF2ZWdhdGUoY3VycmVudFBsYWNlLCBuZXdQbGFjZSkKICAgICAgICB9KTsKICAgICAgICBsZWZ0YnV0dG9uMS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICBsZWZ0QnV0dG9uID0gdHJ1ZTsKICB9IGVsc2UgewpsZXQgbGVmdGJ1dHRvbjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGVmdGJ1dHRvbjEiKTsKICAgIGxlZnRidXR0b24xLnJlbW92ZSgpOwogICAgbGVmdEJ1dHRvbiA9IGZhbHNlOwogIH0KIAp9CgpsZXQgcmlnaHRCdXR0b24gPSBmYWxzZTsKCmZ1bmN0aW9uIENyZWF0ZVJpZ2h0QnV0dG9uKG5ld1BsYWNlLCBjdXJyZW50UGxhY2UpIHsKaWYgKCFyaWdodEJ1dHRvbikgewogIGxldCByaWdodGJ1dHRvbjEgPSBDcmVhdGVCdXR0b24oInJpZ2h0YnV0dG9uMSIsIDkzNSwgNTUsIDQ4LCA2NDgsIGZ1bmN0aW9uKCkgewogICAgTmF2ZWdhdGUoY3VycmVudFBsYWNlLCBuZXdQbGFjZSkKICAgICB9KTsKICAgICByaWdodGJ1dHRvbjEuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CiAgICAgcmlnaHRCdXR0b24gPSB0cnVlOwp9IGVsc2UgewogIGxldCByaWdodGJ1dHRvbjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmlnaHRidXR0b24xIikKICByaWdodGJ1dHRvbjEucmVtb3ZlKCk7CiAgcmlnaHRCdXR0b24gPSBmYWxzZTsKfSAgIAogfQogIAogbGV0IGJhY2tCdXR0b24gPSBmYWxzZTsKCiBmdW5jdGlvbiBDcmVhdGVCYWNrQnV0dG9uKG5ld1BsYWNlLCBjdXJyZW50UGxhY2UpIHsKICBpZiAoIWJhY2tCdXR0b24pIHsKICAgIGxldCBiYWNrYnV0dG9uMSA9IENyZWF0ZUJ1dHRvbigiYmFja2J1dHRvbjEiLCAxMTUsIDY1NSwgODY0LCA0OCwgZnVuY3Rpb24oKSB7CiAgICAgIE5hdmVnYXRlKGN1cnJlbnRQbGFjZSwgbmV3UGxhY2UpCiAgICAgIH0pOwogICAgICBiYWNrYnV0dG9uMS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgYmFja0J1dHRvbiA9IHRydWU7CiAgfSBlbHNlIHsKICAgIGxldCBiYWNrYnV0dG9uMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiYWNrYnV0dG9uMSIpCiAgICBiYWNrYnV0dG9uMS5yZW1vdmUoKTsKICAgIGJhY2tCdXR0b24gPSBmYWxzZTsKICB9CiB9CgogbGV0IHVwQnV0dG9uID0gZmFsc2U7CgogZnVuY3Rpb24gQ3JlYXRlVXBCdXR0b24obmV3UGxhY2UsIGN1cnJlbnRQbGFjZSkgewogIGlmICghdXBCdXR0b24pIHsKICAgIGxldCB1cGJ1dHRvbiA9IENyZWF0ZUJ1dHRvbigidXBidXR0b24iLCAxMTUsIDYwLCA4NjQsIDQ4LCBmdW5jdGlvbigpIHsKICAgICAgTmF2ZWdhdGUoY3VycmVudFBsYWNlLCBuZXdQbGFjZSkKICAgICAgfSk7CiAgICAgIHVwYnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICB1cEJ1dHRvbiA9IHRydWU7CiAgfSBlbHNlIHsKICAgIGxldCB1cGJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGJ1dHRvbiIpCiAgICB1cGJ1dHRvbi5yZW1vdmUoKTsKICAgIHVwQnV0dG9uID0gZmFsc2U7CiAgfQogfQoKIGV4cG9ydCBsZXQgbmF2ZWdhdGlvbiA9IFtDcmVhdGVMZWZ0QnV0dG9uLCBDcmVhdGVSaWdodEJ1dHRvbiwgQ3JlYXRlQmFja0J1dHRvbl0KCgovL0luaXRpYXRlIHBsYWNlcwoKZXhwb3J0IHZhciBzdG9uZUluRm9yZXN0CmV4cG9ydCB2YXIgZm9yZXN0CmV4cG9ydCB2YXIgYmVoaW5kQ2FiaW4KZXhwb3J0IHZhciB1Zm8KZXhwb3J0IHZhciBnYXRlIApleHBvcnQgdmFyIGluc2lkZUNhYmluCmV4cG9ydCB2YXIgY2FiaW5Qb25kOwpleHBvcnQgdmFyIGNhYmluUG9uZFBsYWNlOwpleHBvcnQgdmFyIGJ1c1dyZWNrOwpleHBvcnQgdmFyIHBvbmQ7CmV4cG9ydCB2YXIgcml2ZXJib2F0OwpleHBvcnQgdmFyIHN0ZWVyaW5nV2hlZWw7CmV4cG9ydCB2YXIgYnVzU2VhdHM7CmV4cG9ydCB2YXIgYnVua2VyOwpleHBvcnQgdmFyIHJpdmVyYm9hdEluc2lkZTsKZXhwb3J0IHZhciByaXZlcmJvYXRCb3c7CmV4cG9ydCB2YXIgYWxpZW5NYWNoaW5lOwpleHBvcnQgdmFyIGFsaWVuTWFjaGluZURvb3I7CmV4cG9ydCB2YXIgbW9uc3RlckNhdmU7CmV4cG9ydCB2YXIgdW5kZXJSaXZlcmJvYXRCb3c7Cgpmb3Jlc3QgPSBuZXcgUGxhY2UoZm9yZXN0SW1hZ2UsIG5hdmVnYXRpb24sIFt1Zm8sIGdhdGUsIHN0b25lSW5Gb3Jlc3RdLCBmb3Jlc3QsIFtdLCBbXSk7Cgp1Zm8gPSBuZXcgUGxhY2UodWZvSW1hZ2UsIG5hdmVnYXRpb24sIFtiZWhpbmRDYWJpbiwgZm9yZXN0XSwgdWZvLCBbQmVoaW5kVWZvVGV4dCwgVWZvQ292ZXJdLCBbXSk7CgpnYXRlID0gbmV3IFBsYWNlKGdhdGVJbWFnZSwgbmF2ZWdhdGlvbiwgW2ZvcmVzdCwgYmVoaW5kQ2FiaW5dLCBnYXRlLCBbQ2hhaW5CdXR0b24sIEdhdGVCdXR0b25dLCBbRGlzcGxheUNoYWluQ2FudmFzMV0pOwoKYmVoaW5kQ2FiaW4gPSBuZXcgUGxhY2UoYmVoaW5kQ2FiaW5JbWFnZSwgbmF2ZWdhdGlvbiwgW2dhdGUsIHVmbywgZm9yZXN0XSwgYmVoaW5kQ2FiaW4sIFtCYWNrVG9DYWJpbkJ1dHRvbl0sIFtdLCBbUm9vZk1vbnN0ZXJSZXZpdmVdKTsKCnN0b25lSW5Gb3Jlc3QgPSBuZXcgUGxhY2Uoc3RvbmVJbkZvcmVzdEltYWdlLCBuYXZlZ2F0aW9uLCBbZm9yZXN0LCBmb3Jlc3QsIGZvcmVzdF0sIHN0b25lSW5Gb3Jlc3QpOwoKaW5zaWRlQ2FiaW4gPSBuZXcgUGxhY2UoaW5zaWRlQ2FiaW5JbWFnZSwgW0NyZWF0ZVJpZ2h0QnV0dG9uLCBDcmVhdGVCYWNrQnV0dG9uXSwgW2NhYmluUG9uZCwgY2FiaW5Qb25kXSwgaW5zaWRlQ2FiaW4sIFtPcGVuQmFycmVkV2luZG93QnV0dG9uLCBVbmxvY2tDcmF0ZUZ1bmN0aW9uLCBXaW5kb3dUZXh0QnV0dG9uLCBDcmVlcGluZ0NyZWVwQnV0dG9uXSwgW0FjdGl2YXRlV2luZG93QmFycywgQ3JlZXBpbmdDcmVlcENhbnZhc10sIFtEZWFjdGl2YXRlUm9vZk1vbnN0ZXIsIEVudGVyQ2FiaW5GdW5jdGlvbl0sIFtFeGl0Q2FiaW5GdW5jdGlvbl0pOwoKY2FiaW5Qb25kID0gbmV3IFBsYWNlKGNhYmluUG9uZEltYWdlLCBuYXZlZ2F0aW9uLCBbcml2ZXJib2F0LCBidXNXcmVjaywgcG9uZF0sIGNhYmluUG9uZCwgW0VudGVyQ2FiaW5CdXR0b24sIFBpY2tVcFNob3ZlbCwgQWxpZW5HcmF2ZUJ1dHRvbiwgUm9wZUJ1dHRvbl0sIFtXaW5kb3dCYXJzQ2FiaW5Qb25kQ2FudmFzLCBQaWNrVXBTaG92ZWxJbWFnZSwgUGlja1VwUm9wZUNhbnZhc10sIFtTZXRJbnRlcnZhbEZhbGxpbmdMZWFmLCBNb25zdGVySXNDb21pbmddLCBbRGVhY3RpdmF0ZUZhbGxpbmdMZWFmRnVuY3Rpb25dKTsgLy9BY3RpdmF0ZUNhYmluUG9uZCwgU2V0SW50ZXJ2YWxGYWxsaW5nTGVhZgoKYnVzV3JlY2sgPSBuZXcgUGxhY2UoYnVzV3JlY2tJbWFnZSwgbmF2ZWdhdGlvbiwgW10sIGJ1c1dyZWNrLCBbRW50ZXJCdXNCdXR0b24sIFBpY2tVcEJ1c2tleUJ1dHRvbiwgQmFja1doZWVsVGV4dEJ1dHRvbl0sIFtPbmx5QnVzQ2FudmFzXSwgW1NldEludGVydmFsRmFsbGluZ0xlYWZCdXNXcmVjaywgRW50ZXJCdXNQbGFjZUZ1bmN0aW9uLCBNb25zdGVySXNDb21pbmcsIEVudGVyQnVzUGxhY2VNb25zdGVyRnVuY3Rpb25dLCBbRGVhY3RpdmF0ZUZhbGxpbmdMZWFmQnVzV3JlY2tGdW5jdGlvbiwgRXhpdEJ1c1BsYWNlRnVuY3Rpb24sIEV4aXRCdXNQbGFjZU1vbnN0ZXJGdW5jdGlvbl0pOwoKcG9uZCA9IG5ldyBQbGFjZShwb25kSW1hZ2UsIG5hdmVnYXRpb24sIFtdLCBwb25kLCBbVG9CdW5rZXJCdXR0b25dLCBbXSwgW0VudGVyUG9uZFBsYWNlRnVuY3Rpb24sIE1vbnN0ZXJJc0NvbWluZ10sIFtFeGl0UG9uZFBsYWNlRnVuY3Rpb25dKTsKCnJpdmVyYm9hdCA9IG5ldyBQbGFjZShyaXZlcmJvYXRJbWFnZSwgbmF2ZWdhdGlvbiwgW3BvbmQsIGNhYmluUG9uZCwgYnVzV3JlY2tdLCByaXZlcmJvYXQsIFtVbmRlcndhdGVyTW9uc3RlckJ1dHRvbl0sIFtTdG9wVW5kZXJ3YXRlckFuaW1hdGlvbl0sIFtNb25zdGVySXNDb21pbmddKTsKCnN0ZWVyaW5nV2hlZWwgPSBuZXcgUGxhY2Uoc3RlZXJpbmdXaGVlbEltYWdlLCBuYXZlZ2F0aW9uLCBbXSwgc3RlZXJpbmdXaGVlbCwgW0lnbml0aW9uQnV0dG9uXSwgW1N0ZWVyaW5nV2hlZWxPbmx5Q2FudmFzXSwgW01vbnN0ZXJJc0NvbWluZ10sIFtdKTsKCmJ1c1NlYXRzID0gbmV3IFBsYWNlKGJ1c1NlYXRzSW1hZ2UsIG5hdmVnYXRpb24sIFtdLCBidXNTZWF0cywgW10sIFtdLCBbRW50ZXJCdXNTZWF0c10sIFtFeGl0QnVzU2VhdHMsIEJ1c1dyZWNrTW9uc3Rlcl0pOwoKYnVua2VyID0gbmV3IFBsYWNlKGJ1bmtlckltYWdlLCBuYXZlZ2F0aW9uLCBbcG9uZCwgcG9uZCwgcG9uZF0sIGJ1bmtlciwgW0J1bmtlckdhZGdldEJ1dHRvbiwgVHVybkJ1bmtlcldoZWVsQnV0dG9uLCBFbnRlckJ1bmtlckJ1dHRvbl0sIFtCdW5rZXJMaWRDYW52YXMsIEJ1bmtlckZsb3dlcnNDYW52YXNdLCBbRGVhY3RpdmF0ZVJvb2ZNb25zdGVyXSk7CgpyaXZlcmJvYXRJbnNpZGUgPSBuZXcgUGxhY2Uocml2ZXJib2F0SW5zaWRlSW1hZ2UsIFtDcmVhdGVCYWNrQnV0dG9uLCBDcmVhdGVSaWdodEJ1dHRvbl0sIFtyaXZlcmJvYXQsIHJpdmVyYm9hdF0sIHJpdmVyYm9hdEluc2lkZSwgW1JpdmVyYm9hdEJvd0J1dHRvbl0sIFtdLCBbRGVhY3RpdmF0ZVJvb2ZNb25zdGVyXSk7CgpyaXZlcmJvYXRCb3cgPSBuZXcgUGxhY2Uocml2ZXJib2F0Qm93SW1hZ2UsIG5hdmVnYXRpb24sIFtyaXZlcmJvYXRJbnNpZGUsIHJpdmVyYm9hdEluc2lkZSwgdW5kZXJSaXZlcmJvYXRCb3ddLCByaXZlcmJvYXRCb3csIFtdLCBbXSwgW0VudGVyUml2ZXJib2F0Qm93UGxhY2VdLCBbRXhpdFJpdmVyYm9hdEJvd1BsYWNlXSk7Cgp1bmRlclJpdmVyYm9hdEJvdyA9IG5ldyBQbGFjZSh1bmRlclJpdmVyYm9hdEJvd0ltYWdlLCBbQ3JlYXRlVXBCdXR0b25dLCBbcml2ZXJib2F0Qm93XSwgdW5kZXJSaXZlcmJvYXRCb3csIFtdLCBbXSwgW0VudGVyVW5kZXJCb3dGdW5jdGlvbl0sIFtFeGl0VW5kZXJCb3dGdW5jdGlvbl0pOwoKYWxpZW5NYWNoaW5lID0gbmV3IFBsYWNlKGFsaWVuTWFjaGluZUltYWdlLCBuYXZlZ2F0aW9uLCBbYWxpZW5NYWNoaW5lRG9vcl0sIGFsaWVuTWFjaGluZSwgW0V4aXRCdW5rZXJCdXR0b24sIENyeXB0b0N1YmVCdXR0b25dLCBbXSwgW0VudGVyQ2F2ZV0sIFtFeGl0Q2F2ZV0pCgphbGllbk1hY2hpbmVEb29yID0gbmV3IFBsYWNlKGFsaWVuTWFjaGluZURvb3JJbWFnZSwgbmF2ZWdhdGlvbiwgW2FsaWVuTWFjaGluZV0sIGFsaWVuTWFjaGluZURvb3IsIFtPcGVuQWxpZW5NYWNoaW5lRG9vckJ1dHRvbl0pOwoKbW9uc3RlckNhdmUgPSBuZXcgUGxhY2UobW9uc3RlckNhdmVJbWFnZSwgbmF2ZWdhdGlvbiwgW2FsaWVuTWFjaGluZURvb3IsIGFsaWVuTWFjaGluZURvb3IsIGFsaWVuTWFjaGluZURvb3JdLCBtb25zdGVyQ2F2ZSwgW10sIFtNb25zdGVyQ2F2ZVJvY2tDYW52YXNdLCBbRW50ZXJNb25zdGVyQ2F2ZV0sIFtFeGl0TW9uc3RlckNhdmVdKTsKCgovL01ha2Ugc3VyZSB0aGUgZ28tdG8gcGxhY2VzIGFyZSBsb2FkZWQgd2hlbiB0aGUgbmF2ZWdhdGlvbmJ1dHRvbnMgYXJlIGNsaWNrZWQuCmluc2lkZUNhYmluLm5ld1BsYWNlcyA9IFtjYWJpblBvbmQsIGNhYmluUG9uZF07Cmluc2lkZUNhYmluLmN1cnJlbnRQbGFjZSA9IGluc2lkZUNhYmluOwoKY2FiaW5Qb25kLmN1cnJlbnRQbGFjZSA9IGNhYmluUG9uZDsKY2FiaW5Qb25kLm5ld1BsYWNlcyA9IFtyaXZlcmJvYXQsIGJ1c1dyZWNrLCBwb25kXTsKCmJ1c1dyZWNrLmN1cnJlbnRQbGFjZSA9IGJ1c1dyZWNrOwpidXNXcmVjay5uZXdQbGFjZXMgPSBbY2FiaW5Qb25kLCBwb25kLCByaXZlcmJvYXRdCgpwb25kLmN1cnJlbnRQbGFjZSA9IHBvbmQ7CnBvbmQubmV3UGxhY2VzID0gW2J1c1dyZWNrLCByaXZlcmJvYXQsIGNhYmluUG9uZF07CgpyaXZlcmJvYXQuY3VycmVudFBsYWNlID0gcml2ZXJib2F0OwpyaXZlcmJvYXQubmV3UGxhY2VzID0gW3BvbmQsIGNhYmluUG9uZCwgYnVzV3JlY2tdOwoKZm9yZXN0Lm5ld1BsYWNlcyA9IFtiZWhpbmRDYWJpbiwgdWZvLCBnYXRlXQpmb3Jlc3QuY3VycmVudFBsYWNlID0gZm9yZXN0OwoKdWZvLm5ld1BsYWNlcyA9IFtmb3Jlc3QsIGdhdGUsIGJlaGluZENhYmluXQp1Zm8uY3VycmVudFBsYWNlID0gdWZvOwoKZ2F0ZS5uZXdQbGFjZXMgPSBbdWZvLCBiZWhpbmRDYWJpbiwgZm9yZXN0XQpnYXRlLmN1cnJlbnRQbGFjZSA9IGdhdGU7CgpiZWhpbmRDYWJpbi5uZXdQbGFjZXMgPSBbZ2F0ZSwgZm9yZXN0LCB1Zm9dOwpiZWhpbmRDYWJpbi5jdXJyZW50UGxhY2UgPSBiZWhpbmRDYWJpbjsKYmVoaW5kQ2FiaW4uYnV0dG9ucyA9IFtCYWNrVG9DYWJpbkJ1dHRvbl07CgpzdG9uZUluRm9yZXN0LmN1cnJlbnRQbGFjZSA9IHN0b25lSW5Gb3Jlc3QKc3RvbmVJbkZvcmVzdC5uZXdQbGFjZSA9IGZvcmVzdDsKCnN0ZWVyaW5nV2hlZWwuY3VycmVudFBsYWNlID0gc3RlZXJpbmdXaGVlbDsKc3RlZXJpbmdXaGVlbC5uZXdQbGFjZXMgPSBbYnVzU2VhdHMsIGJ1c1dyZWNrLCBidXNTZWF0c107CnN0ZWVyaW5nV2hlZWwuY2FudmFzID0gW1N0ZWVyaW5nV2hlZWxPbmx5Q2FudmFzXTsKCmJ1c1NlYXRzLmN1cnJlbnRQbGFjZSA9IGJ1c1NlYXRzOwpidXNTZWF0cy5uZXdQbGFjZXMgPSBbYnVzV3JlY2ssIHN0ZWVyaW5nV2hlZWwsIHN0ZWVyaW5nV2hlZWxdCgpidW5rZXIubmV3UGxhY2VzID0gW3BvbmQsIHBvbmQsIHBvbmRdOwpidW5rZXIuY3VycmVudFBsYWNlID0gYnVua2VyOwoKcml2ZXJib2F0SW5zaWRlLm5ld1BsYWNlcyA9IFtyaXZlcmJvYXQsIHJpdmVyYm9hdF07CnJpdmVyYm9hdEluc2lkZS5jdXJyZW50UGxhY2UgPSByaXZlcmJvYXRJbnNpZGU7CgphbGllbk1hY2hpbmUubmV3UGxhY2VzID0gW2FsaWVuTWFjaGluZURvb3IsIGFsaWVuTWFjaGluZURvb3IsIGFsaWVuTWFjaGluZURvb3JdCmFsaWVuTWFjaGluZS5jdXJyZW50UGxhY2UgPSBhbGllbk1hY2hpbmU7CgphbGllbk1hY2hpbmVEb29yLm5ld1BsYWNlcyA9IFthbGllbk1hY2hpbmUsIGFsaWVuTWFjaGluZSwgYWxpZW5NYWNoaW5lXTsKYWxpZW5NYWNoaW5lRG9vci5jdXJyZW50UGxhY2UgPSBhbGllbk1hY2hpbmVEb29yOwoKcml2ZXJib2F0Qm93Lm5ld1BsYWNlcyA9IFtyaXZlcmJvYXRJbnNpZGUsIHJpdmVyYm9hdEluc2lkZSwgcml2ZXJib2F0SW5zaWRlXTsKcml2ZXJib2F0Qm93LmN1cnJlbnRQbGFjZSA9IHJpdmVyYm9hdEJvdzsKCnVuZGVyUml2ZXJib2F0Qm93Lm5ld1BsYWNlcyA9IFtyaXZlcmJvYXRCb3ddOwp1bmRlclJpdmVyYm9hdEJvdy5jdXJyZW50UGxhY2UgPSB1bmRlclJpdmVyYm9hdEJvdzsKCm1vbnN0ZXJDYXZlLm5ld1BsYWNlcyA9IFthbGllbk1hY2hpbmVEb29yLCBhbGllbk1hY2hpbmVEb29yLCBhbGllbk1hY2hpbmVEb29yXTsKbW9uc3RlckNhdmUuY3VycmVudFBsYWNlID0gbW9uc3RlckNhdmU7 |
| 1 | aW1wb3J0IHsgQWN0aW9uQnV0dG9uIH0gZnJvbSAiLi4vTWFuYWdlL0FjdGlvbkJ1dHRvbkNsYXNzLm1qcyI7CmltcG9ydCB7IENhbnZhcyB9IGZyb20gIi4uL01hbmFnZS9DYW52YXNDbGFzcy5tanMiOwppbXBvcnQgeyBDaGVja0Zvckl0ZW0sIFBpY2tVcEl0ZW0sIFVzZUl0ZW0sIGludmVudG9yeUl0ZW1zLCBzZWxlY3RlZEl0ZW0gfSBmcm9tICIuLi9NYW5hZ2UvSW52ZW50b3J5U2NyaXB0Lm1qcyI7CmltcG9ydCB7IHBsaWVycywgcm9wZSwgcm9wZVRhaWwsIHRvb3RoSW1wbGFudCB9IGZyb20gIi4uL01hbmFnZS9JdGVtRGF0YWJhc2VTY3JpcHQubWpzIjsKaW1wb3J0IHsgYnVzV3JlY2ssIHBvbmQgfSBmcm9tICIuLi9NYW5hZ2UvUGxhY2VDbGFzcy5tanMiOwppbXBvcnQgeyBEaXNwbGF5VGV4dEZ1bmN0aW9uLCBSZW1vdmVUZXh0RnVuY3Rpb24gfSBmcm9tICIuLi9NYW5hZ2UvVGV4dEJ1YmJsZVNjcmlwdC5tanMiOwppbXBvcnQgeyBTY2VuZUl0ZW0gfSBmcm9tICIuLi9NYW5hZ2UvU2NlbmVJdGVtQ2xhc3MubWpzIjsKaW1wb3J0IHsgZGVhZE1hblB1bGxlZCB9IGZyb20gIi4uL1BsYWNlcy9TdGVlcmluZ1doZWVsLm1qcyI7CmltcG9ydCB7IHVuaXQgfSBmcm9tICIuLi9NYW5hZ2UvR2FtZU1hbmFnZXIubWpzIjsKCmNvbnN0IHJvcGVPbkdyb3VuZEJ1c0ltYWdlID0gbmV3IFNjZW5lSXRlbSgiL0Nsb3NlU3ByaXRlcy9TY2VuZUl0ZW1zL1JvcGVPbkdyb3VuZEJ1cy5wbmciKTsKY29uc3QgdGllZFJvcGVCdXNJbWFnZSA9IG5ldyBTY2VuZUl0ZW0oIi9DbG9zZVNwcml0ZXMvU2NlbmVJdGVtcy9UaWVkUm9wZUJ1cy5wbmciKTsKY29uc3QgdGllZFJvcGVQb25kSW1hZ2UgPSBuZXcgU2NlbmVJdGVtKCIvQ2xvc2VTcHJpdGVzL1NjZW5lSXRlbXMvVGllZFJvcGVDYW52YXMucG5nIik7CmNvbnN0IGRlYWRNYW5JbWFnZSA9IG5ldyBTY2VuZUl0ZW0oIi9DbG9zZVNwcml0ZXMvU2NlbmVJdGVtcy9EZWFkTWFuV2hpdGUucG5nIik7Cgpjb25zdCB0aWVSb3BlVG9CdXNCdXR0b24gPSBuZXcgQWN0aW9uQnV0dG9uKCJ0aWVyb3BldG9idXNidXR0b24iLCA1MjAsIDQyMCwgODAsIDEwMCwgVGllUm9wZVRvQnVzRnVuY3Rpb24pOwpjb25zdCB0aWVSb3BlVGFpbFRvV2lyZUJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b24oInRpZXJvcGV0YWlsdG93aXJlYnV0dG9uIiwgMjYwLCA0OTAsIDgwLCA0MCwgVGllUm9wZVRhaWxXaXJlRnVuY3Rpb24pOwoKY29uc3Qgcm9wZU9uR3JvdW5kQnVzQ2FudmFzID0gbmV3IENhbnZhcygicm9wZW9uZ3JvdW5kYnVzY2FudmFzIiwgcm9wZU9uR3JvdW5kQnVzSW1hZ2UuaW1hZ2UpOwpjb25zdCB0aWVkUm9wZVBvbmRDYW52YXMgPSBuZXcgQ2FudmFzKCJ0aWVkcm9wZXBvbmRjYW52YXMiLCB0aWVkUm9wZVBvbmRJbWFnZS5pbWFnZSk7CmNvbnN0IHRpZWRSb3BlQnVzQ2FudmFzID0gbmV3IENhbnZhcygidGllZHJvcGVidXNjYW52YXMiLCB0aWVkUm9wZUJ1c0ltYWdlLmltYWdlKQpjb25zdCBkZWFkTWFuQ2FudmFzID0gbmV3IENhbnZhcygiZGVhZG1hbmNhbnZhcyIsIGRlYWRNYW5JbWFnZS5pbWFnZSkgCgpmdW5jdGlvbiBSb3BlT25Hcm91bmRCdXNDYW52YXMoKSB7CiAgICByb3BlT25Hcm91bmRCdXNDYW52YXMuYWN0aXZhdGUoKTsKfQoKZnVuY3Rpb24gVGllZFJvcGVQb25kQ2FudmFzKCkgewp0aWVkUm9wZVBvbmRDYW52YXMuYWN0aXZhdGUoKTsKfQoKZnVuY3Rpb24gVGllZFJvcGVCdXNDYW52YXMoKSB7CiAgICB0aWVkUm9wZUJ1c0NhbnZhcy5hY3RpdmF0ZSgpOwp9CgpleHBvcnQgZnVuY3Rpb24gRGVhZE1hbkNhbnZhcygpIHsKICAgICAgICBkZWFkTWFuQ2FudmFzLmFjdGl2YXRlKCk7Cn0KCmxldCByb3BlVGllZCA9IGZhbHNlOyAKCi8vYXR0YWNoIHJvcGUgdGhlIGJ1cyB3aGVlbCBodWIuCmZ1bmN0aW9uIFRpZVJvcGVUb0J1c0Z1bmN0aW9uKCkgewogICAgQ2hlY2tGb3JJdGVtKCk7CiAgICBpZiAoIXJvcGVUaWVkKSB7CiAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSA9PSByb3BlLnRleHQpIHsKICAgICAgICAgICAgcm9wZU9uR3JvdW5kQnVzQ2FudmFzLmFjdGl2YXRlKCk7CiAgICAgICAgICAgIFBpY2tVcEl0ZW0ocm9wZVRhaWwpOwogICAgICAgICAgICBVc2VJdGVtKHJvcGUsIHRydWUpOwogICAgICAgICAgICBSZW1vdmVUZXh0RnVuY3Rpb24oKTsKICAgICAgICAgICAgcm9wZVRpZWQgPSB0cnVlOwogICAgICAgICAgICBidXNXcmVjay5jYW52YXMucHVzaChSb3BlT25Hcm91bmRCdXNDYW52YXMpCiAgICAgICAgICAgIGNvbnNvbGUubG9nKGJ1c1dyZWNrLmNhbnZhcykKICAgICAgICAgIC8vICBEaXNwbGF5VGV4dEZ1bmN0aW9uKCJZb3UgdGllIHRoZSByb3BlIHRvIHRoZSB3aGVlbGh1Yi4iKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIlRoZSB3aGVlbCBodWIgaXMgcnVzdHkgYW5kIHdvcm4uXG5JIGRvbid0IHRoaW5rIGEgd2hlZWwgd291bGQgZml0IGFueW1vcmUuIikKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIERpc3BsYXlUZXh0RnVuY3Rpb24oIlRoZSByb3BlIGlzIHRpZ2h0bHkgdGllZCB0byB0aGUgd2hlZWwgaHViLiIpOwogICAgfQogIAp9CgpleHBvcnQgbGV0IHJvcGVUYWlsVGllZCA9IGZhbHNlOwoKZnVuY3Rpb24gVGllUm9wZVRhaWxXaXJlRnVuY3Rpb24oKSB7CiAgICBpZiAocm9wZVRpZWQgJiYgIXJvcGVUYWlsVGllZCkgewogICAgICAgIENoZWNrRm9ySXRlbSgpCiAgICBpZiAoc2VsZWN0ZWRJdGVtID09IHJvcGVUYWlsLnRleHQpIHsKcm9wZVRhaWxUaWVkID0gdHJ1ZTsKdGllZFJvcGVQb25kQ2FudmFzLmFjdGl2YXRlKCk7CnBvbmQuY2FudmFzLnB1c2goVGllZFJvcGVQb25kQ2FudmFzKTsKYnVzV3JlY2suY2FudmFzLnBvcCgpOyAKY29uc29sZS5sb2coYnVzV3JlY2suY2FudmFzKQpidXNXcmVjay5jYW52YXMucHVzaChUaWVkUm9wZUJ1c0NhbnZhcykKVXNlSXRlbShyb3BlVGFpbCwgdHJ1ZSk7Cn0gZWxzZSB7CkRpc3BsYXlUZXh0RnVuY3Rpb24oIlRoZSByb3BlIGlzIHRpZWQgdG8gdGhlIHdpcmUuIik7Cn0gIH0gZWxzZSBpZiAoZGVhZE1hblB1bGxlZCkgewogICBDaGVja0Zvckl0ZW0oKTsKICAgICBpZiAoc2VsZWN0ZWRJdGVtID09IHBsaWVycy50ZXh0ICYmICFpbnZlbnRvcnlJdGVtcy5pbmNsdWRlcyh0b290aEltcGxhbnQudGV4dCkpIHsKICAgICAgICBQaWNrVXBJdGVtKHRvb3RoSW1wbGFudCk7CiAgICAgICAgVXNlSXRlbShwbGllcnMpOwogICAgIH0gZWxzZSB7CiAgICAgICAgRGlzcGxheVRleHRGdW5jdGlvbigiQSB0ZWFyIHJ1bnMgZG93biB5b3VyIGNoZWVrLiBQb29yIHVuY2xlIEhhcnZleS4gV2hhdCBoYXBwZW5lZCB0byBoaW0/IikKICAgICB9Cn0KIGVsc2UgewogICAgRGlzcGxheVRleHRGdW5jdGlvbigiVGhlcmUncyBhIHN0cmFuZ2Ugd2lyZSBjb21pbmcgb3V0XG5vZiB0aGUgd2F0ZXIuIEl0IHdvbid0IGJ1ZGdlLiIpOwp9Cn0KCi8vIEZ1bmN0aW9ucyBjYWxsZWQgd2hlbiBwb25kIFBsYWNlIGNsYXNzIGlzIGNhbGxlZApleHBvcnQgZnVuY3Rpb24gRW50ZXJQb25kUGxhY2VGdW5jdGlvbigpIHsKdGllUm9wZVRhaWxUb1dpcmVCdXR0b24uYWN0aXZhdGUoKTsKaWYgKGRlYWRNYW5QdWxsZWQpIHsKICAgIGxldCB0aWVyb3BldGFpbHRvd2lyZWJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aWVyb3BldGFpbHRvd2lyZWJ1dHRvbiIpOwogICAgdGllcm9wZXRhaWx0b3dpcmVidXR0b24uc3R5bGUudG9wID0gdW5pdCAqIDQ3MCArICJweCI7Cn0KfQoKZXhwb3J0IGZ1bmN0aW9uIEV4aXRQb25kUGxhY2VGdW5jdGlvbigpIHsKICAgIHRpZVJvcGVUYWlsVG9XaXJlQnV0dG9uLmFjdGl2YXRlKCk7Cn0KCi8vZnVuY3Rpb25zIGNhbGxlZCB3aGVuIGJ1cyB3cmVjayBjbGFzcyBpcyBjYWxsZWQKZXhwb3J0IGZ1bmN0aW9uIEVudGVyQnVzUGxhY2VGdW5jdGlvbigpIHsKdGllUm9wZVRvQnVzQnV0dG9uLmFjdGl2YXRlKCk7CmlmICghaW52ZW50b3J5SXRlbXMuaW5jbHVkZXMocGxpZXJzLnRleHQpKXsKUGlja1VwSXRlbShwbGllcnMpO30KfQoKZXhwb3J0IGZ1bmN0aW9uIEV4aXRCdXNQbGFjZUZ1bmN0aW9uKCkgewogICAgdGllUm9wZVRvQnVzQnV0dG9uLmFjdGl2YXRlKCk7Cn0KCgo= |
| 1 | EjUKJAFVEiDry5argW251tEBXIfv2eYDvtBm/d9QBVsSbyu5eOG+JxIKQnVua2VyLm1qcxjRFRI9CiQBVRIggTtlCaRL72RgKBJmkJrAF1fVXznYP1AFkoPYipJwa00SEkJ1c1NlYXRzU2NyaXB0Lm1qcxi4MxI5CiQBVRIgj0+Geml4UKuPi0nGJ1M/DLRHXFuElPPu6a/g/N/aUYsSDlBsYWNlQ2xhc3MubWpzGLxjEjkKJAFVEiC3As/Lk00c50mZeK9Q9HU60I128bBs2HvUqCun2iuCwRIOUm9wZVB1enpsZS5tanMYjSAKAggB |
| 1 | { |
| 2 | "ActionError": { |
| 3 | "kind": { |
| 4 | "FunctionCallError": { |
| 5 | "CompilationError": { |
| 6 | "CodeDoesNotExist": { |
| 7 | "accountId": "closeprotocol.near" |
| 8 | } |
| 9 | } |
| 10 | } |
| 11 | }, |
| 12 | "index": 0 |
| 13 | } |
| 14 | } |
| 1 | |
| 1 | { |
| 2 | "deposit": "37306739541178104761568" |
| 3 | } |
Empty Result
| 1 | |