import java.util.*;

class Matrix { // 各种格式的文件最终都被转化为像素矩阵
    // 此处代码省略
}

abstract class Implementor {
    public (1); // 显示像素矩阵m
}

class WinImp extends Implementor {
    public void doPaint(Matrix m) { // 调用 Windows 系统的绘制函数绘制像素矩阵
        // 此处代码省略
    }
}
class LinuxImp extends Implementor {
    public void doPaint(Matrix m) { // 调用 Linux 系统的绘制函数绘制像素矩阵
        // 此处代码省略
    }
}

abstract class Image {
    public void setImp(Implementor imp) { this.imp = imp; }
    public abstract void parseFile(String fileName);
    protected Implementor imp;
}

class BMPImage extends Image {
    // 此处代码省略
}

class GIFImage extends Image {
    public void parseFile(String fileName) {
        // 此处解析BMP文件并获得一个像素矩阵对象m
        (2); // 显示像素矩阵m
    }
}

class JPEGImage extends Image {
    // 此处代码省略
}

class Main {
    public static void main(String[]args) {
        // 在Linux操作系统上查看demo.gif图像文件
        Image image = (3);
        Implementor imageImp = (4);
        (5);
        Image.parseFile("demo.gif");
    }
}
