{$APPTYPE CONSOLE}
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
uses SysUtils;
type
users_t = (tarasB, superhackkiller1997, other_shit);
say_ptr_t = class(TObject)
anon_field1: users_t;
constructor Create(usr: users_t);
procedure anon_method(str: PChar);
end;
const
users: array[users_t] of PChar = ('tarasB', 'superhackkiller1997', 'other_shit');
procedure say_ptr_t.anon_method(str: PChar);
begin
Writeln(ErrOutput, Format('%s: %s', [users[anon_field1], str]))
end;
constructor say_ptr_t.Create(usr: users_t);
begin
inherited Create;
anon_field1 := usr;
end;
function bind1(usr: users_t): say_ptr_t; export;
begin
bind1 := say_ptr_t.Create(usr)
end;
begin
bind1(tarasB).anon_method('shit');
bind1(superhackkiller1997).anon_method('i''m god');
bind1(other_shit).anon_method('ko-ko-ko')
end.
eyRBUFBUWVBFIENPTlNPTEV9CnskSUZERUYgRlBDfQp7JE1PREUgREVMUEhJfQp7JEVORElGfQp1c2VzIFN5c1V0aWxzOwoKdHlwZQogIHVzZXJzX3QgPSAodGFyYXNCLCBzdXBlcmhhY2traWxsZXIxOTk3LCBvdGhlcl9zaGl0KTsKICBzYXlfcHRyX3QgPSBjbGFzcyhUT2JqZWN0KQogICAgYW5vbl9maWVsZDE6IHVzZXJzX3Q7CiAgICBjb25zdHJ1Y3RvciBDcmVhdGUodXNyOiB1c2Vyc190KTsKICAgIHByb2NlZHVyZSBhbm9uX21ldGhvZChzdHI6IFBDaGFyKTsKICBlbmQ7CmNvbnN0CiAgdXNlcnM6IGFycmF5W3VzZXJzX3RdIG9mIFBDaGFyID0gKCd0YXJhc0InLCAnc3VwZXJoYWNra2lsbGVyMTk5NycsICdvdGhlcl9zaGl0Jyk7Cgpwcm9jZWR1cmUgc2F5X3B0cl90LmFub25fbWV0aG9kKHN0cjogUENoYXIpOwpiZWdpbgogIFdyaXRlbG4oRXJyT3V0cHV0LCBGb3JtYXQoJyVzOiAlcycsIFt1c2Vyc1thbm9uX2ZpZWxkMV0sIHN0cl0pKQplbmQ7Cgpjb25zdHJ1Y3RvciBzYXlfcHRyX3QuQ3JlYXRlKHVzcjogdXNlcnNfdCk7CmJlZ2luCiAgaW5oZXJpdGVkIENyZWF0ZTsKICBhbm9uX2ZpZWxkMSA6PSB1c3I7CmVuZDsKCmZ1bmN0aW9uIGJpbmQxKHVzcjogdXNlcnNfdCk6IHNheV9wdHJfdDsgZXhwb3J0OwpiZWdpbgogIGJpbmQxIDo9IHNheV9wdHJfdC5DcmVhdGUodXNyKQplbmQ7CgpiZWdpbgogIGJpbmQxKHRhcmFzQikuYW5vbl9tZXRob2QoJ3NoaXQnKTsKICBiaW5kMShzdXBlcmhhY2traWxsZXIxOTk3KS5hbm9uX21ldGhvZCgnaScnbSBnb2QnKTsKICBiaW5kMShvdGhlcl9zaGl0KS5hbm9uX21ldGhvZCgna28ta28ta28nKQplbmQu