BEGIN {
while (getline < "bank") {
password[$1] = $2
balance[$1] = $3 }
userid = getuserid()
printf "Your balance is %.2f\n", balance
[userid
] while ((cmd = getcommand()) != "Q") {
if (cmd == "D") {
balance[userid] += getamount()
} else if (cmd == "W") {
amt = getamount()
if (amt <= balance[userid]) {
balance[userid] -= amt
} else { print "Can't overdraw account" }
} else { print "Unrecognized command" }
printf "Your balance is %.2f\n", balance
[userid
] } print "Thank you for your custom."
for (userid in password) {
if (userid !~ /^ *$/)
print userid, password[userid], balance[userid] > "bank" } }
function getuserid( userid, passwd) {
userid = ""; passwd = "hello"
while (passwd != password[userid]) {
printf "%s ", "Enter userid:"; getline userid
printf "%s ", "Enter password:"; getline passwd
} return userid }
function getcommand( cmd) {
cmd = "X"
while (cmd !~ /[dDwWqQ]/) {
printf "Enter command: D)eposit, W)ithdrawl or Q)uit: " getline cmd }
function getamount( amt) {
amt = "X"
while (amt !~ /[1-9][0-9]*\.?[0-9]*/) {
printf "Enter amount: "; getline amt
} return amt }
QkVHSU4gewogICAgd2hpbGUgKGdldGxpbmUgPCAiYmFuayIpIHsKICAgICAgICBwYXNzd29yZFskMV0gPSAkMgogICAgICAgIGJhbGFuY2VbJDFdID0gJDMgfQogICAgdXNlcmlkID0gZ2V0dXNlcmlkKCkKICAgICAgICBwcmludGYgIllvdXIgYmFsYW5jZSBpcyAlLjJmXG4iLCBiYWxhbmNlW3VzZXJpZF0KICAgIHdoaWxlICgoY21kID0gZ2V0Y29tbWFuZCgpKSAhPSAiUSIpIHsKICAgICAgICBpZiAoY21kID09ICJEIikgewogICAgICAgICAgICBiYWxhbmNlW3VzZXJpZF0gKz0gZ2V0YW1vdW50KCkKICAgICAgICB9IGVsc2UgaWYgKGNtZCA9PSAiVyIpIHsKICAgICAgICAgICAgYW10ID0gZ2V0YW1vdW50KCkKICAgICAgICAgICAgaWYgKGFtdCA8PSBiYWxhbmNlW3VzZXJpZF0pIHsKICAgICAgICAgICAgICAgIGJhbGFuY2VbdXNlcmlkXSAtPSBhbXQKICAgICAgICAgICAgfSBlbHNlIHsgcHJpbnQgIkNhbid0IG92ZXJkcmF3IGFjY291bnQiIH0KICAgICAgICB9IGVsc2UgeyBwcmludCAiVW5yZWNvZ25pemVkIGNvbW1hbmQiIH0KICAgICAgICBwcmludGYgIllvdXIgYmFsYW5jZSBpcyAlLjJmXG4iLCBiYWxhbmNlW3VzZXJpZF0gfQogICAgcHJpbnQgIlRoYW5rIHlvdSBmb3IgeW91ciBjdXN0b20uIgogICAgZm9yICh1c2VyaWQgaW4gcGFzc3dvcmQpIHsKICAgICAgICBpZiAodXNlcmlkICF+IC9eICokLykKICAgICAgICAgICAgcHJpbnQgdXNlcmlkLCBwYXNzd29yZFt1c2VyaWRdLCBiYWxhbmNlW3VzZXJpZF0gPiAiYmFuayIgfSB9CgpmdW5jdGlvbiBnZXR1c2VyaWQoICAgIHVzZXJpZCwgcGFzc3dkKSB7CiAgICB1c2VyaWQgPSAiIjsgcGFzc3dkID0gImhlbGxvIgogICAgd2hpbGUgKHBhc3N3ZCAhPSBwYXNzd29yZFt1c2VyaWRdKSB7CiAgICAgICAgcHJpbnRmICIlcyAiLCAiRW50ZXIgdXNlcmlkOiI7IGdldGxpbmUgdXNlcmlkCiAgICAgICAgcHJpbnRmICIlcyAiLCAiRW50ZXIgcGFzc3dvcmQ6IjsgZ2V0bGluZSBwYXNzd2QgfQogICAgcmV0dXJuIHVzZXJpZCB9CgpmdW5jdGlvbiBnZXRjb21tYW5kKCAgICBjbWQpIHsKICAgIGNtZCA9ICJYIgogICAgd2hpbGUgKGNtZCAhfiAvW2REd1dxUV0vKSB7CiAgICAgICAgcHJpbnRmICJFbnRlciBjb21tYW5kOiBEKWVwb3NpdCwgVylpdGhkcmF3bCBvciBRKXVpdDogIgogICAgICAgIGdldGxpbmUgY21kIH0KICAgIHJldHVybiB0b3VwcGVyKGNtZCkgfQoKZnVuY3Rpb24gZ2V0YW1vdW50KCAgIGFtdCkgewogICAgYW10ID0gIlgiCiAgICB3aGlsZSAoYW10ICF+IC9bMS05XVswLTldKlwuP1swLTldKi8pIHsKICAgICAgICBwcmludGYgIkVudGVyIGFtb3VudDogIjsgZ2V0bGluZSBhbXQgfQogICAgcmV0dXJuIGFtdCB9