state transitions cluster__P P cluster__P_Time Time cluster__P_Display Display cluster__P_Display_EditingTime EditingTime enter ^out.startSelection enter ^time_edit exit ^out.stopSelection exit ^edit_done cluster__P_ChronoWrapper ChronoWrapper cluster__P_ChronoWrapper_Chrono Chrono cluster__P_Indiglo Indiglo cluster__P_Alarm Alarm cluster__P_Alarm_On On enter ^out.setAlarm exit ^out.setAlarm cluster__P_Alarm_On_Blinking Blinking __initial __initial->_P _P_Time_initial _P_Time_Increasing Increasing _P_Time_initial->_P_Time_Increasing _P_Time_Editing Editing _P_Time_Editing->_P_Time_Increasing edit_done    _P_Time_Increasing->_P_Time_Editing time_edit    _P_Time_Increasing->_P_Time_Increasing after(1 s)^out.increaseTimeByOne ^out.checkTime ^int_refresh_time    _P_Display_initial _P_Display_TimeUpdate TimeUpdate enter ^out.refreshTimeDisplay _P_Display_initial->_P_Display_TimeUpdate _P_Display_ChronoUpdate ChronoUpdate enter ^out.refreshChronoDisplay _P_Display_ChronoUpdate->_P_Display_ChronoUpdate int_refresh_chrono    _P_Display_ChronoUpdate->_P_Display_TimeUpdate topLeftPressed    _P_Display_WaitingForAlarm WaitingForAlarm enter ^out.refreshAlarmDisplay _P_Display_WaitingForAlarm->_P_Display_TimeUpdate bottomLeftReleased    _P_Display_WaitingForAlarm->_P_Display_EditingTime after(1500 ms)^alarm_edit    _P_Display_WaitingToEdit WaitingToEdit _P_Display_WaitingToEdit->_P_Display_TimeUpdate bottomRightReleased    _P_Display_WaitingToEdit->_P_Display_EditingTime after(1500 ms)    _P_Display_TimeUpdate->_P_Display_ChronoUpdate topLeftPressed    _P_Display_TimeUpdate->_P_Display_WaitingForAlarm bottomLeftPressed    _P_Display_TimeUpdate->_P_Display_WaitingToEdit bottomRightPressed    _P_Display_TimeUpdate->_P_Display_TimeUpdate int_refresh_time    _P_Display_EditingTime_initial _P_Display_EditingTime_Waiting Waiting _P_Display_EditingTime_initial->_P_Display_EditingTime_Waiting _P_Display_EditingTime_Increasing Increasing enter ^out.increaseSelection _P_Display_EditingTime_Increasing->_P_Display_EditingTime_Increasing after(100 ms)    _P_Display_EditingTime_Increasing->_P_Display_EditingTime_Waiting bottomLeftReleased    _P_Display_EditingTime_GoingToNext GoingToNext _P_Display_EditingTime_GoingToNext->_P_Display_TimeUpdate after(2 s)    _P_Display_EditingTime_GoingToNext->_P_Display_EditingTime_Waiting bottomRightReleased^out.selectNext    _P_Display_EditingTime_Waiting->_P_Display_TimeUpdate after(5 s)    _P_Display_EditingTime_Waiting->_P_Display_EditingTime_Increasing bottomLeftPressed    _P_Display_EditingTime_Waiting->_P_Display_EditingTime_GoingToNext bottomRightPressed    _P_ChronoWrapper_initial _P_ChronoWrapper_initial->_P_ChronoWrapper_Chrono _P_ChronoWrapper_Chrono_Stopped Stopped _P_ChronoWrapper_Chrono->_P_ChronoWrapper_Chrono_Stopped bottomLeftPressed [INSTATE(["/P/Display/ChronoUpdate"])]^out.resetChrono ^int_refresh_chrono    _P_ChronoWrapper_Chrono_initial _P_ChronoWrapper_Chrono_initial->_P_ChronoWrapper_Chrono_Stopped _P_ChronoWrapper_Chrono_Running Running _P_ChronoWrapper_Chrono_Running->_P_ChronoWrapper_Chrono_Running after(10 ms)^out.increaseChronoByOne ^int_refresh_chrono    _P_ChronoWrapper_Chrono_Running->_P_ChronoWrapper_Chrono_Stopped bottomRightPressed [INSTATE(["/P/Display/ChronoUpdate"])]    _P_ChronoWrapper_Chrono_Stopped->_P_ChronoWrapper_Chrono_Running bottomRightPressed [INSTATE(["/P/Display/ChronoUpdate"])]    _P_Indiglo_initial _P_Indiglo_Off Off _P_Indiglo_initial->_P_Indiglo_Off _P_Indiglo_Released Released _P_Indiglo_Pushed Pushed _P_Indiglo_Released->_P_Indiglo_Pushed topRightPressed    _P_Indiglo_Released->_P_Indiglo_Off after(2 s)^out.unsetIndiglo    _P_Indiglo_Pushed->_P_Indiglo_Released topRightReleased    _P_Indiglo_Off->_P_Indiglo_Pushed topRightPressed^out.setIndiglo    _P_Alarm_initial _P_Alarm_Off Off _P_Alarm_initial->_P_Alarm_Off _P_Alarm_Off->_P_Alarm_On bottomLeftPressed [INSTATE(["/P/Display/TimeUpdate"])]    _P_Alarm_On_initial _P_Alarm_On_NotBlinking NotBlinking _P_Alarm_On_initial->_P_Alarm_On_NotBlinking _P_Alarm_On_NotBlinking->_P_Alarm_Off bottomLeftPressed [INSTATE(["/P/Display/TimeUpdate"])]    _P_Alarm_On_NotBlinking->_P_Alarm_On_Blinking alarmStart    _P_Alarm_On_Blinking->_P_Alarm_Off topRightPressed    _P_Alarm_On_Blinking->_P_Alarm_Off topLeftPressed    _P_Alarm_On_Blinking->_P_Alarm_Off bottomRightPressed    _P_Alarm_On_Blinking->_P_Alarm_Off bottomLeftPressed    _P_Alarm_On_Blinking->_P_Alarm_On_NotBlinking after(4 s)    _P_Alarm_On_Blinking_initial _P_Alarm_On_Blinking_On On enter ^out.setIndiglo exit ^out.unsetIndiglo _P_Alarm_On_Blinking_initial->_P_Alarm_On_Blinking_On _P_Alarm_On_Blinking_Off Off _P_Alarm_On_Blinking_Off->_P_Alarm_On_Blinking_On after(500 ms)    _P_Alarm_On_Blinking_On->_P_Alarm_On_Blinking_Off after(500 ms)