Copyright 2022, Andrei Jiroh Halili and contributors Code licensed under MPL-2.0, see the LICENSE file at root for details