Template:Interactive calculator

 var bh_calculator = "Ly8gU3RhcnQgQmFzZTY0IGVuY29kaW5nIGhlcmUuCmlmICghKCJiaF8iIGluIHdpbmRvdykpCiAgd2luZG93LmJoXyA9IHt9OwoKYmhfLmNhbGNfdHdyID0gewogIGZpZWxkczogWwogICAgICB7aWQ6ICJsMXR3IiwgICBsYWJlbDogIkwxVFc6IiwgIGluaXQ6IDMuOSwgIHZhbGlkOi9eW1xkXC5dKyU/JC8sIGZvcm1hdDogInt9JSJ9LAogICAgICB7aWQ6ICJsMnR3IiwgICBsYWJlbDogIkwyVFc6IiwgIGluaXQ6IDMwLCAgIHZhbGlkOi9eW1xkXC5dKyU/JC8sIGZvcm1hdDogInt9JSJ9LAogICAgICB7aWQ6ICJ5aWVsZCIsICBsYWJlbDogIllpZWxkOiIsIGluaXQ6IDIsICAgIHZhbGlkOi9eW1xkXC5dKyU/JC8sIGZvcm1hdDogInt9JSJ9LAogICAgICB7aWQ6ICJ0ZXIiLCAgICBsYWJlbDogIlRFUjoiLCAgIGluaXQ6IDAuMDgsIHZhbGlkOi9eW1xkXC5dKyU/JC8sIGZvcm1hdDogInt9JSJ9LAogICAgICB7aWQ6ICJyZXN1bHQiLCBsYWJlbDogIlRXUiA9IiwgIGZvcm1hdDogInt9JSJ9CiAgICBdLAogIGNvbXB1dGU6IGZ1bmN0aW9uKHYpIHsKICAgIGlmICh2LnlpZWxkICogKDEgLSB2LmwxdHcvMTAwKSA+PSB2LnRlcikKICAgICAgdi5yZXN1bHQgPSAodi55aWVsZCAqIHYubDF0dy8xMDApICsgKCh2LnlpZWxkICogKDEgLSB2LmwxdHcvMTAwKSAtIHYudGVyKSAqIHYubDJ0dy8xMDApOwogICAgZWxzZQogICAgICB2LnJlc3VsdCA9IE5hTjsKICAgIHYucmVzdWx0ID0gdi5yZXN1bHQudG9GaXhlZCg0KTsKICB9Cn07CgpiaF8uY2FsY192MSA9IHsKICBuYW1lOiAiYmhfLmNhbGNfdjEiLAoKICBpbml0aWFsaXplOiBmdW5jdGlvbihoYW5kbGVyLCBzY2hlbWEsIHByZWZpeCkgewogICAgdmFyIHN0eWxlcyA9IHsKICAgICAgICBmaWVsZDogImJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogMXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmIiwKICAgICAgICBidXR0b246ICJib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDFweDsgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgcGFkZGluZzogNHB4OyBjdXJzb3I6IHBvaW50ZXIiCiAgICB9OwogICAgdmFyIGludm9rZSA9IGhhbmRsZXIubmFtZSArICIuY2FsY3VsYXRlKFwiIiArIHByZWZpeCArICJcIikiOwogICAgdmFyIGZpZWxkcyA9IHNjaGVtYS5maWVsZHM7CgogICAgdmFyIHRhYmxlID0KICAgICAgICAgICI8dGFibGUgaWQ9JyIgKyBwcmVmaXggKyAidGFibGUnIGNsYXNzPSd3aWtpdGFibGUnPjx0Ym9keT4iCiAgICAgICAgKyAiPHRyPiI7CiAgICBmaWVsZHMuZm9yRWFjaChmdW5jdGlvbihmaWVsZCkgewogICAgICBpZiAoImluaXQiIGluIGZpZWxkKSB7CiAgICAgICAgdmFyIGluaXQgPSBmaWVsZC5mb3JtYXQucmVwbGFjZSgie30iLCBmaWVsZC5pbml0KTsKICAgICAgICB0YWJsZSArPQogICAgICAgICAgICAgICI8dGQ+IgogICAgICAgICAgICArICI8bGFiZWwgZm9yPSciICsgcHJlZml4ICsgZmllbGQuaWQgKyAiJz4iICsgZmllbGQubGFiZWwgKyAiIDwvbGFiZWw+IgogICAgICAgICAgICArICI8aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9JyIgKyBzdHlsZXMuZmllbGQgKyAiJyBzaXplPSc2JyBpZD0nIiArIHByZWZpeCArIGZpZWxkLmlkICsgIiciCiAgICAgICAgICAgICsgIiB2YWx1ZT0nIiArIGluaXQgKyAiJyBvbmNoYW5nZT0nIiArIGludm9rZSArICInPiIKICAgICAgICAgICAgKyAiPC90ZD4iOwogICAgICB9CiAgICB9KTsKICAgIHZhciBmaWVsZCA9IGZpZWxkc1tmaWVsZHMubGVuZ3RoIC0gMV07CiAgICB0YWJsZSArPQogICAgICAgICAgIjwvdHI+PHRyPiIKICAgICAgICArICI8dGQ+PGJ1dHRvbiB0eXBlPSdidXR0b24nIHN0eWxlPSciICsgc3R5bGVzLmJ1dHRvbiArICInIGlkPSciICsgcHJlZml4ICsgIiNidXR0b24nIgogICAgICAgICsgIiBvbmNsaWNrPSciICsgaW52b2tlICsgIic+Q2FsY3VsYXRlPC9idXR0b24+PC90ZD4iCiAgICAgICAgKyAiPHRkPiIKICAgICAgICArICI8bGFiZWwgZm9yPSciICsgcHJlZml4ICsgZmllbGQuaWQgKyAiJz4iICsgZmllbGQubGFiZWwgKyAiIDwvbGFiZWw+IgogICAgICAgICsgIjxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nIiArIHN0eWxlcy5maWVsZCArICInIHNpemU9JzYnIGlkPSciICsgcHJlZml4ICsgZmllbGQuaWQgKyAiJyByZWFkb25seT4iCiAgICAgICAgKyAiPC90ZD4iCiAgICAgICAgKyAiPC90cj4iCiAgICAgICAgKyAiPC90Ym9keT48L3RhYmxlPiI7CiAgICBpZiAoImxvZyIgaW4gYmhfLmNhbGNfdjEgJiYgYmhfLmNhbGNfdjEubG9nKSBjb25zb2xlLmxvZyh0YWJsZSk7CiAgICByZXR1cm4gdGFibGU7CiAgfSwKCiAgY2FsY3VsYXRlOiBmdW5jdGlvbihwcmVmaXgpIHsKICAgIHZhciBzY2hlbWEgPSBiaF8uY2FsY19nbG9iYWxbcHJlZml4XTsKICAgIHZhciBmaWVsZHMgPSBzY2hlbWEuZmllbGRzOwoKICAgIHZhciBnZXRfdmFsdWVzID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciB2YWx1ZXMgPSB7fTsKICAgICAgZmllbGRzLmZvckVhY2goZnVuY3Rpb24oZmllbGQpIHsKICAgICAgICB2YXIgdmFsdWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChwcmVmaXggKyBmaWVsZC5pZCkudmFsdWU7CiAgICAgICAgdmFsdWVzW2ZpZWxkLmlkXSA9IHZhbHVlLnRyaW0oKS5tYXRjaChmaWVsZC52YWxpZCkgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IE5hTjsKICAgICAgfSk7CiAgICAgIHJldHVybiB2YWx1ZXM7CiAgICB9OwoKICAgIHZhciBzZXRfdmFsdWVzID0gZnVuY3Rpb24odmFsdWVzKSB7CiAgICAgIHZhciBmb3JtYXRzID0ge307CiAgICAgIGZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKGZpZWxkKSB7CiAgICAgICAgZm9ybWF0c1tmaWVsZC5pZF0gPSBmaWVsZC5mb3JtYXQ7CiAgICAgIH0pOwogICAgICBmb3IgKHZhciBpZCBpbiB2YWx1ZXMpIHsKICAgICAgICB2YXIgdmFsdWUgPSB2YWx1ZXNbaWRdOwogICAgICAgIHZhbHVlID0gIWlzTmFOKHZhbHVlKSA/IGZvcm1hdHNbaWRdLnJlcGxhY2UoInt9IiwgdmFsdWUpIDogIkVycm9yISI7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocHJlZml4ICsgaWQpLnZhbHVlID0gdmFsdWU7CiAgICAgIH0KICAgIH07CgogICAgdmFyIHZhbHVlcyA9IGdldF92YWx1ZXMoKTsKICAgIHNjaGVtYS5jb21wdXRlKHZhbHVlcyk7CiAgICBpZiAoImxvZyIgaW4gYmhfLmNhbGNfdjEgJiYgYmhfLmNhbGNfdjEubG9nKSBjb25zb2xlLnRhYmxlKHZhbHVlcyk7CiAgICBzZXRfdmFsdWVzKHZhbHVlcyk7CiAgfQp9OwoKYmhfLmNhbGNfcmVnaXN0cmFyID0gewogIHJlZ2lzdGVyOiBmdW5jdGlvbiAoaGFuZGxlciwgc2NoZW1hKSB7CiAgICB2YXIgd3JpdGUgPSBmdW5jdGlvbihzdHJpbmcpIHsKICAgICAgdmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7CiAgICAgIHZhciBzZWxmID0gc2NyaXB0c1tzY3JpcHRzLmxlbmd0aCAtIDFdOwogICAgICBzZWxmLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlYmVnaW4iLCBzdHJpbmcpOwogICAgfTsKCiAgICBpZiAoISgiY2FsY19nbG9iYWwiIGluIGJoXykpCiAgICAgIGJoXy5jYWxjX2dsb2JhbCA9IHtjb3VudGVyOiAxfTsKCiAgICB2YXIgcHJlZml4ID0gaGFuZGxlci5uYW1lICsgIi0iICsgYmhfLmNhbGNfZ2xvYmFsLmNvdW50ZXIrKyArICItIjsKICAgIGJoXy5jYWxjX2dsb2JhbFtwcmVmaXhdID0gc2NoZW1hOwoKICAgIHdyaXRlKGhhbmRsZXIuaW5pdGlhbGl6ZShoYW5kbGVyLCBzY2hlbWEsIHByZWZpeCkpOwogIH0KfTsKCi8vIGJoXy5jYWxjX3YxLmxvZyA9IHRydWU7CmJoXy5jYWxjX3JlZ2lzdHJhci5yZWdpc3RlcihiaF8uY2FsY192MSwgYmhfLmNhbGNfdHdyKTsKLy8gRW5kIEJhc2U2NCBlbmNvZGluZyBoZXJlLgo="; eval(atob(bh_calculator));