// Copyright (c) 2022, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package j$.nio.file.attribute;

public class FileAttributeView {
  public static java.nio.file.attribute.FileAttributeView wrap_convert(
      j$.nio.file.attribute.FileAttributeView fileAttributeView) {
    return null;
  }

  public static j$.nio.file.attribute.FileAttributeView wrap_convert(
      java.nio.file.attribute.FileAttributeView fileAttributeView) {
    return null;
  }
}
