(defpackage commands)
(defun commands::test ()
(print 'test))
(defun commands::lalka ()
(princ "lalka"))
(defun main (&optional (package 'commands))
(loop :with package := (find-package package)
:for cmd := (read-line *standard-input* nil) :while cmd
:do (handler-case (funcall (intern (string-upcase cmd) package))
(undefined-function ()
(format t "~&Command `~a' doesn't exists~%" cmd)))))
(main)
KGRlZnBhY2thZ2UgY29tbWFuZHMpCgooZGVmdW4gY29tbWFuZHM6OnRlc3QgKCkKICAocHJpbnQgJ3Rlc3QpKQoKKGRlZnVuIGNvbW1hbmRzOjpsYWxrYSAoKQogIChwcmluYyAibGFsa2EiKSkKCihkZWZ1biBtYWluICgmb3B0aW9uYWwgKHBhY2thZ2UgJ2NvbW1hbmRzKSkKICAobG9vcCA6d2l0aCBwYWNrYWdlIDo9IChmaW5kLXBhY2thZ2UgcGFja2FnZSkKICAgICAgICA6Zm9yIGNtZCA6PSAocmVhZC1saW5lICpzdGFuZGFyZC1pbnB1dCogbmlsKSA6d2hpbGUgY21kCiAgICAgICAgOmRvIChoYW5kbGVyLWNhc2UgKGZ1bmNhbGwgKGludGVybiAoc3RyaW5nLXVwY2FzZSBjbWQpIHBhY2thZ2UpKQogICAgICAgICAgICAgICh1bmRlZmluZWQtZnVuY3Rpb24gKCkKICAgICAgICAgICAgICAgIChmb3JtYXQgdCAifiZDb21tYW5kIGB+YScgZG9lc24ndCBleGlzdHN+JSIgY21kKSkpKSkKCihtYWluKQ==