@Override
    public InputStream getResourceAsStream(String name) {
        BytecodeKey key = new BytecodeKey(name);
        BytecodeValue byteArray = classByteMap.get(key);
        InputStream stream = null;
        if (byteArray != null) {
            stream = new ByteArrayInputStream(byteArray.getBytes());
        }

        if(stream == null && getReferenceClassLoader() != null) {
            stream = getReferenceClassLoader().getResourceAsStream(key.getName());
        }

        if (stream == null) {
            stream = super.getResourceAsStream(key.getName());
        }

        if (stream == null) {
            stream = ClassLoader.getSystemClassLoader().getResourceAsStream(key.getName());
        }

        if(stream == null) {
            stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(key.getName());
        }

        if(stream == null) {
            throw new ASMSupportException("Class not found : " + name);
        }

        return stream;
    }