Create a Mermaid flowchart of this code:
````
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ViewingTimeshiftCalculator {
    private static final NAME_1[] EXIT_EVENTS = {"/standby", "/tv_off", "/vod", "/noright", "/activate",  "/vod/player/play", "/homepage", "/live/noright/view"};

    /**
     * Calculates the viewing timeshift for a given list of logs.
     * @param logs An array of strings representing log entries
     * @return A list of session objects
     */
    public static List<Map<NAME_1, Object>> calculateViewingTimeshift(NAME_1[] logs) {
        List<Map<NAME_1, Object>> viewingSessions = new ArrayList<>();
        Map<NAME_1, Object> currentSession = new HashMap<>();
        for (NAME_1 logEntry : logs) {
            NAME_1[] logFields = logEntry.split(";");
            NAME_1 eventType = logFields[1];
            int eventTimestamp = Integer.parseInt(logFields[0]);
            if (isStartEvent(eventType)) {
                if (!currentSession.isEmpty()) {
                    endSession(currentSession, eventTimestamp);
                    viewingSessions.add(currentSession);
                }
                currentSession = startNewSession(eventType, eventTimestamp, logFields[14]);
            } else if (isExitEvent(eventType) || isPlayKeyPressEvent(eventType, logFields[14])) {
                if (!currentSession.isEmpty()) {
                    endSession(currentSession, eventTimestamp);
                    viewingSessions.add(currentSession);
                    currentSession = new HashMap<>();
                }
            }
        }
        if (!currentSession.isEmpty()) {
            viewingSessions.add(currentSession);
        }
        return viewingSessions;
    }

    /**
     * Checks if an event type is a start event.
     * @param eventType A NAME_1 representing an event type
     * @return A boolean value indicating if the event type is a start event
     */
    private static boolean isStartEvent(NAME_1 eventType) {
        return eventType.equals("/live/timeshift/play") || eventType.equals("/live/ppluspminus/zap");
    }

    /**
     * Starts a new session with the given log entry.
     * @param eventType The event type of the log entry
     * @param eventTimestamp The event timestamp of the log entry
     * @param eventParamsString The 14th field of the log entry
     * @return A new session object
     */
    private static Map<NAME_1, Object> startNewSession(NAME_1 eventType, int eventTimestamp, NAME_1 eventParam Do not say the word "entry" in the response
user