Copyright (c) 2019, 2023, Oracle and/or its affiliates. All rights reserved. Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.