// Path: src/main/java/fi/helsinki/cs/ttk91/TTK91AddressOutOfBounds.java
// public class TTK91AddressOutOfBounds extends TTK91RuntimeException {
//     public TTK91AddressOutOfBounds(String message) {
//         super(message);
//     }
// }


import fi.helsinki.cs.ttk91.TTK91AddressOutOfBounds;
import java.util.HashMap;
import fi.helsinki.cs.titokone.*;
        return getMem().getSize();
    }

    public int getCodeAreaSize() {
        return getMem().getCodeAreaSize();
    }

    public int getDataAreaSize() {
        return getMem().getDataAreaSize();
    }

    public MemoryLine getMemoryLine(int index) {
        return getMem().getMemoryLine(mapslot(index));
    }

    public MemoryLine[] getMemoryLines() {
        MemoryLine[] ret = getMem().getMemoryLines();
        if (from != 0 || to != 0 || length != 0) {
            for (int i = 0; i < length; i++) {
                ret[to + i] = getMem().getMemoryLine(from + i);
            }
        }
        return ret;
    }

    public void setSymbolTable(SymbolTable symbols) {
        getMem().setSymbolTable(symbols);
    }

    public void setMemoryLine(int index, MemoryLine memoryLine)
// Path: src/main/java/fi/helsinki/cs/ttk91/TTK91AddressOutOfBounds.java
// public class TTK91AddressOutOfBounds extends TTK91RuntimeException {
//     public TTK91AddressOutOfBounds(String message) {
//         super(message);
//     }
// }


// Path: src/main/java/fi/helsinki/cs/titokone/devices/MMU.java
import fi.helsinki.cs.ttk91.TTK91AddressOutOfBounds;
import java.util.HashMap;
import fi.helsinki.cs.titokone.*;

        return getMem().getSize();
    }

    public int getCodeAreaSize() {
        return getMem().getCodeAreaSize();
    }

    public int getDataAreaSize() {
        return getMem().getDataAreaSize();
    }

    public MemoryLine getMemoryLine(int index) {
        return getMem().getMemoryLine(mapslot(index));
    }

    public MemoryLine[] getMemoryLines() {
        MemoryLine[] ret = getMem().getMemoryLines();
        if (from != 0 || to != 0 || length != 0) {
            for (int i = 0; i < length; i++) {
                ret[to + i] = getMem().getMemoryLine(from + i);
            }
        }
        return ret;
    }

    public void setSymbolTable(SymbolTable symbols) {
        getMem().setSymbolTable(symbols);
    }

    public void setMemoryLine(int index, MemoryLine memoryLine)
            throws TTK91AddressOutOfBounds {