class CloudListServiceLocalImpl implements CloudListService {
    static final String LIST_KEY_FORMAT = "list/%s-%s.json";
    private Map<String, List<String>> listMap = new HashMap<>();

    private final String server;

    private final ReentrantLock SYNC_LOCK = new ReentrantLock();

    public CloudListServiceLocalImpl(CloudProps cloudProps) {
        this.server = cloudProps.getServer();
    }

    @Override
    public boolean inList(String names, String type, String value) {
        for (String name : names.split(",")) {
            try {
                if (inListDo(name, type, value)) {
                    return true;
                }
            } catch (IOException e) {
                throw new IllegalStateException(e);
            }
        }

        return false;
    }

    private boolean inListDo(String name, String type, String value) throws IOException {<FILL_FUNCTION_BODY>}
}

        String listKey = String.format(LIST_KEY_FORMAT, name, type);
        List<String> listVal = listMap.get(listKey);

        if (listVal == null) {
            SYNC_LOCK.lock();

            try {
                listVal = listMap.get(listKey);

                if (listVal == null) {
                    String value2 = CloudLocalUtils.getValue(server, listKey);

                    if (value2 == null) {
                        listVal = new ArrayList<>();
                    } else {
                        listVal = new ArrayList<>();

                        ONode oNode = ONode.load(value2);
                        if (oNode.isArray()) {
                            for (ONode o1 : oNode.ary()) {
                                listVal.add(o1.getString());
                            }
                        }
                    }

                    listMap.put(listKey, listVal);
                }
            } finally {
                SYNC_LOCK.unlock();
            }
        }

        return listVal.contains(value);
    
<no_super_class>