package test5;

@SuppressWarnings("unused")
public class InnerModifier2 {
    public class Public {}
    protected class Protected {}
    private class Private {}
    class Package {}
    public static class PublicStatic {}
    protected static class ProtectedStatic {}
    private static class PrivateStatic {}
    static class PackageStatic {}
}
