Copyright 2023 Vadim @streamich Dalecky <vadimsdaleckis@gmail.com> and other contributors