}
def apply
(base
:String, extras
:String
) { s.extraData = extras
s
}
def apply
(base
:String
) = new MyString
(base
) }
def main
(args
: Array
[String
]) { println(MyString("hello", "world"))
println(MyString("hello"))
}
}
b2JqZWN0IE1haW4gewogIGNsYXNzIE15U3RyaW5nKHZhbCBqU3RyaW5nOiBTdHJpbmcpIHsKICAgIHByaXZhdGUgdmFyIGV4dHJhRGF0YSA9ICIiCiAgICBvdmVycmlkZSBkZWYgdG9TdHJpbmcgPSBqU3RyaW5nICsgZXh0cmFEYXRhCiAgfQogIG9iamVjdCBNeVN0cmluZyB7CiAgICBkZWYgYXBwbHkoYmFzZTpTdHJpbmcsIGV4dHJhczpTdHJpbmcpIHsKICAgICAgdmFsIHMgPSBuZXcgTXlTdHJpbmcoYmFzZSkKICAgICAgcy5leHRyYURhdGEgPSBleHRyYXMKICAgICAgcwogICAgfQogICAgZGVmIGFwcGx5KGJhc2U6U3RyaW5nKSA9IG5ldyAgTXlTdHJpbmcoYmFzZSkKICB9CgogIGRlZiBtYWluKGFyZ3M6IEFycmF5W1N0cmluZ10pIHsKICAgIHByaW50bG4oTXlTdHJpbmcoImhlbGxvIiwgIndvcmxkIikpCiAgICBwcmludGxuKE15U3RyaW5nKCJoZWxsbyIpKQogIH0KCn0KCg==