/*%FSM<COMPILE "C:\Program Files (x86)\PoseidonTools\Data\Packages\Bin\fsmEditor\scriptedFSM.cfg, task control client">*/
/*%FSM<HEAD>*/
/*
item0[] = {"task_control",0,250,-225.000000,-625.000000,-125.000000,-575.000000,0.000000,"task control"};
item1[] = {"delay",4,218,-500.000000,-250.000000,-400.000000,-200.000000,0.000000,"delay"};
item2[] = {"setup",2,250,-650.000000,-625.000000,-550.000000,-575.000000,0.000000,"setup"};
item3[] = {"_",8,218,-500.000000,-625.000000,-400.000000,-575.000000,0.000000,""};
item4[] = {"items_and_vars",2,250,-500.000000,-175.000000,-400.000000,-125.000000,0.000000,"items" \n "and" \n "vars"};
item5[] = {"task_completed",4,218,300.000000,75.000000,400.000000,125.000000,15.000000,"task" \n "completed"};
item6[] = {"end",1,250,-775.000000,350.000000,-675.000000,400.000000,0.000000,"end"};
item7[] = {"no_item_spawn",4,218,-350.000000,-175.000000,-250.000000,-125.000000,0.000000,"no item spawn"};
item8[] = {"do_monitor",2,250,-75.000000,-25.000000,25.000000,25.000000,0.000000," do monitor"};
item9[] = {"next",2,250,300.000000,-25.000000,400.000000,25.000000,0.000000,"next"};
item10[] = {"loop",4,218,75.000000,-25.000000,175.000000,25.000000,5.000000,"loop"};
item11[] = {"_",8,218,-75.000000,-100.000000,25.000000,-50.000000,0.000000,""};
item12[] = {"_",8,218,75.000000,-325.000000,175.000000,-275.000000,0.000000,""};
item13[] = {"chat_conditions",2,250,-75.000000,-175.000000,25.000000,-125.000000,0.000000,"chat conditions"};
item14[] = {"event_conditions",2,250,300.000000,-325.000000,400.000000,-275.000000,0.000000,"event" \n "conditions"};
item15[] = {"_",8,218,300.000000,-250.000000,400.000000,-200.000000,0.000000,""};
item16[] = {"comms",2,250,-500.000000,-350.000000,-400.000000,-300.000000,0.000000,"comms"};
item17[] = {"_",8,218,300.000000,-100.000000,400.000000,-50.000000,0.000000,""};
item18[] = {"task_conditions",2,250,300.000000,-175.000000,400.000000,-125.000000,0.000000,"task" \n "conditions"};
item19[] = {"chat_1",4,218,75.000000,-100.000000,175.000000,-50.000000,5.000000,"chat 1"};
item20[] = {"chat_2",4,218,75.000000,-175.000000,175.000000,-125.000000,10.000000,"chat 2"};
item21[] = {"chat_3",4,218,75.000000,-250.000000,175.000000,-200.000000,15.000000,"chat 3"};
item22[] = {"item_spawn",4,218,-650.000000,-175.000000,-550.000000,-125.000000,5.000000,"item spawn"};
item23[] = {"actions",2,250,-350.000000,-25.000000,-250.000000,25.000000,0.000000,"actions"};
item24[] = {"point",4,218,-150.000000,350.000000,-50.000000,400.000000,0.000000,"point"};
item25[] = {"spawn_item",2,250,-650.000000,-25.000000,-550.000000,25.000000,0.000000,"spawn item"};
item26[] = {"ready",4,218,-500.000000,-25.000000,-400.000000,25.000000,0.000000,"ready"};
item27[] = {"in_house",4,218,-775.000000,50.000000,-675.000000,100.000000,10.000000,"in house"};
item28[] = {"hidden_nearby",4,218,-775.000000,-175.000000,-675.000000,-125.000000,5.000000,"hidden nearby"};
item29[] = {"near_player",4,218,-775.000000,-25.000000,-675.000000,25.000000,15.000000,"near player"};
item30[] = {"event_1",4,218,425.000000,-400.000000,525.000000,-350.000000,10.000000,"event 1"};
item31[] = {"event_2",4,218,300.000000,-400.000000,400.000000,-350.000000,15.000000,"event 2"};
item32[] = {"event_3",4,218,175.000000,-400.000000,275.000000,-350.000000,20.000000,"event 3"};
item33[] = {"_",8,218,-650.000000,-400.000000,-550.000000,-350.000000,0.000000,""};
item34[] = {"completed",2,250,175.000000,75.000000,275.000000,125.000000,0.000000,"completed"};
item35[] = {"diag_1",4,218,300.000000,150.000000,400.000000,200.000000,15.000000,"diag 1"};
item36[] = {"diag_2",4,218,175.000122,210.091980,275.000122,260.091980,10.000000,"diag 2"};
item37[] = {"pause",4,218,300.000000,275.000000,400.000000,325.000000,0.000000,"pause"};
item38[] = {"reward",2,250,25.000000,275.000000,125.000000,325.000000,0.000000,"reward"};
item39[] = {"comms_1",2,4346,-150.000000,425.000000,-50.000000,475.000000,0.000000,"comms"};
item40[] = {"mission_complete",4,218,-650.000000,350.000000,-550.000000,400.000000,10.000000,"mission complete"};
item41[] = {"_",8,218,25.000000,75.000000,125.000000,125.000000,0.000000,""};
item42[] = {"_",8,218,-350.000000,100.000000,-250.000000,150.000000,0.000000,""};
item43[] = {"markers",2,250,-225.000000,175.000000,-125.000000,225.000000,0.000000,"markers"};
item44[] = {"continue",4,218,-75.000000,175.000000,25.000000,225.000000,100.000000,"continue"};
item45[] = {"radius",4,218,-300.000000,350.000000,-200.000000,400.000000,0.000000,"radius"};
item46[] = {"marker_pos",4,218,-350.000000,225.000000,-250.000000,275.000000,0.000000,"marker pos"};
item47[] = {"do_markers",2,250,-225.000000,275.000000,-125.000000,325.000000,0.000000,"do markers"};
item48[] = {"find_spot",2,250,-900.000000,-175.000000,-800.000000,-125.000000,0.000000,"find spot"};
item49[] = {"task_failed",4,218,450.000000,-25.000000,550.000000,25.000000,10.000000,"task" \n "failed"};
item50[] = {"failed",2,250,450.000000,75.000000,550.000000,125.000000,0.000000,"failed"};
item51[] = {"diag",4,218,575.000000,-25.000000,675.000000,25.000000,5.000000,"diag"};
item52[] = {"fsm",4,218,575.000000,75.000000,675.000000,125.000000,10.000000,"fsm"};
item53[] = {"sqf",4,218,575.000000,150.000000,675.000000,200.000000,15.000000,"sqf"};
item54[] = {"call",4,218,575.000000,225.000000,675.000000,275.000000,20.000000,"call"};
item55[] = {"clean_up",2,250,300.000000,425.000000,400.000000,475.000000,0.000000,"clean up"};
item56[] = {"_",8,218,25.000000,425.000000,125.000000,475.000000,0.000000,""};
item57[] = {"markers",4,218,525.000000,350.000000,625.000000,400.000000,5.000000,"markers"};
item58[] = {"fsm",4,218,-225.000000,-100.000000,-125.000000,-50.000000,15.000000,"fsm"};
item59[] = {"sqf",4,218,-225.000000,-25.000000,-125.000000,25.000000,10.000000,"sqf"};
item60[] = {"call",4,218,-225.000000,50.000000,-125.000000,100.000000,20.000000,"call"};
item61[] = {"not_hidden",4,218,-900.000000,-100.000000,-800.000000,-50.000000,10.000000,"not hidden"};
item62[] = {"is_hidden",4,218,-775.000000,-100.000000,-675.000000,-50.000000,5.000000,"is hidden"};
item63[] = {"gui",2,250,-775.000000,-250.000000,-675.000000,-200.000000,0.000000,"gui"};
item64[] = {"no_dialogoue",4,218,-650.000000,-250.000000,-550.000000,-200.000000,10.000000,"no dialogoue"};
item65[] = {"dialogue",4,218,-900.000000,-250.000000,-800.000000,-200.000000,5.000000,"dialogue"};
item66[] = {"remind_dialogue",4,218,200.000000,350.000000,300.000000,400.000000,10.000000,"remind" \n "dialogue"};
item67[] = {"_",8,218,-300.000000,425.000000,-200.000000,475.000000,0.000000,""};
item68[] = {"next_task",2,250,-500.000000,425.000000,-400.000000,475.000000,0.000000,"next task"};
item69[] = {"clean_up",4,218,400.000000,350.000000,500.000000,400.000000,15.000000,"clean up"};
item70[] = {"comms_2",2,250,-75.000000,-325.000000,25.000000,-275.000000,0.000000,"comms"};
item71[] = {"server",4,218,-75.000000,-250.000000,25.000000,-200.000000,10.000000,"server"};
item72[] = {"simple_task",4,218,-225.000000,-450.000000,-125.000000,-400.000000,10.000000,"simple" \n "task"};
item73[] = {"skip",4,218,-500.000000,225.000000,-400.000000,275.000000,5.000000,"skip"};
item74[] = {"run_test",4,218,-500.000000,-525.000000,-400.000000,-475.000000,20.000000,"run test"};
item75[] = {"override_for_task",2,250,-500.000000,-450.000000,-400.000000,-400.000000,0.000000,"override for" \n "task Editor"};
item76[] = {"bin_it",4,218,425.000000,-325.000000,525.000000,-275.000000,5.000000,"bin it"};
item77[] = {"",7,210,708.500000,-141.500000,716.500000,-133.500000,0.000000,""};
item78[] = {"",7,210,708.500000,446.000000,716.500000,454.000000,0.000000,""};
item79[] = {"next_task",4,218,-650.000000,425.000000,-550.000000,475.000000,5.000000,"next task"};
item80[] = {"",7,210,-929.000000,446.000000,-921.000000,454.000000,0.000000,""};
item81[] = {"",7,210,-929.000000,-604.000000,-921.000000,-596.000000,0.000000,""};
item82[] = {"call",4,218,103.990662,149.799805,193.990662,199.799805,5.000000,"call"};
link0[] = {0,3};
link1[] = {1,4};
link2[] = {2,33};
link3[] = {2,72};
link4[] = {2,74};
link5[] = {3,2};
link6[] = {4,7};
link7[] = {4,22};
link8[] = {5,34};
link9[] = {7,23};
link10[] = {8,11};
link11[] = {9,5};
link12[] = {9,10};
link13[] = {9,49};
link14[] = {10,8};
link15[] = {11,13};
link16[] = {12,14};
link17[] = {13,12};
link18[] = {13,19};
link19[] = {13,20};
link20[] = {13,21};
link21[] = {13,71};
link22[] = {14,15};
link23[] = {14,30};
link24[] = {14,31};
link25[] = {14,32};
link26[] = {14,76};
link27[] = {15,18};
link28[] = {16,1};
link29[] = {17,9};
link30[] = {18,17};
link31[] = {19,13};
link32[] = {20,13};
link33[] = {21,13};
link34[] = {22,25};
link35[] = {23,42};
link36[] = {23,58};
link37[] = {23,59};
link38[] = {23,60};
link39[] = {23,73};
link40[] = {24,47};
link41[] = {25,26};
link42[] = {25,27};
link43[] = {25,28};
link44[] = {25,29};
link45[] = {26,23};
link46[] = {27,25};
link47[] = {28,48};
link48[] = {29,25};
link49[] = {30,14};
link50[] = {31,14};
link51[] = {32,14};
link52[] = {33,16};
link53[] = {34,35};
link54[] = {34,36};
link55[] = {34,41};
link56[] = {34,82};
link57[] = {35,34};
link58[] = {36,34};
link59[] = {37,55};
link60[] = {38,37};
link61[] = {39,67};
link62[] = {40,6};
link63[] = {41,38};
link64[] = {42,43};
link65[] = {43,44};
link66[] = {43,46};
link67[] = {44,8};
link68[] = {45,47};
link69[] = {46,47};
link70[] = {47,24};
link71[] = {47,44};
link72[] = {47,45};
link73[] = {48,61};
link74[] = {48,62};
link75[] = {49,50};
link76[] = {50,37};
link77[] = {50,51};
link78[] = {50,52};
link79[] = {50,53};
link80[] = {50,54};
link81[] = {51,50};
link82[] = {52,50};
link83[] = {53,50};
link84[] = {54,50};
link85[] = {55,56};
link86[] = {55,57};
link87[] = {55,66};
link88[] = {55,69};
link89[] = {56,39};
link90[] = {57,55};
link91[] = {58,23};
link92[] = {59,23};
link93[] = {60,23};
link94[] = {61,48};
link95[] = {62,25};
link96[] = {63,64};
link97[] = {63,65};
link98[] = {64,4};
link99[] = {65,63};
link100[] = {66,55};
link101[] = {67,68};
link102[] = {68,40};
link103[] = {68,79};
link104[] = {69,55};
link105[] = {70,12};
link106[] = {71,70};
link107[] = {72,23};
link108[] = {73,68};
link109[] = {74,75};
link110[] = {75,33};
link111[] = {75,72};
link112[] = {76,77};
link113[] = {77,78};
link114[] = {78,55};
link115[] = {79,80};
link116[] = {80,81};
link117[] = {81,2};
link118[] = {82,34};
globals[] = {0.000000,0,0,0,0,640,480,1,402,6316128,1,-1036.249023,990.485596,688.632874,-753.906189,1242,884,1};
window[] = {2,-1,-1,-1,-1,642,365,1390,117,3,1260};
*//*%FSM</HEAD>*/
class FSM
{
        fsmName = "task control client";
        class States
        {
                /*%FSM<STATE "task_control">*/
                class task_control
                {
                        name = "task_control";
                        itemno = 0;
                        init = /*%FSM<STATEINIT""">*/"_plyr = player;" \n
                         "_taskName = _this select 0;" \n
                         "_unit = objNull;" \n
                         "_taskItem = objNull;" \n
                         "_taskID = 0;" \n
                         "_editorTest  = false;" \n
                         "if(count _this > 1)then{" \n
                         "_editorTest = _this select 1;" \n
                         "};" \n
                         "if(count _this > 2)then{" \n
                         "_taskID = _this select 2;" \n
                         "};" \n
                         "if(count _this > 3)then{" \n
                         "_unit = _this select 3;" \n
                         "};" \n
                         "if(count _this >4)then{" \n
                         "_plyr = _this select 4;" \n
                         "};" \n
                         "_trgt = _plyr;" \n
                         "if(count _this > 5)then{" \n
                         "_trgt = _this select 5;" \n
                         "};" \n
                         "" \n
                         "//Common Vars" \n
                         "_plyrArr = [""Epoch_Man_Base_F"",""Epoch_Female_base_F""];" \n
                         "_config = 'inGameTasks' call EPOCH_returnConfig;" \n
                         "_scriptPath = getText ( _config >> ""file"");" \n
                         "_fsmPath = ""epoch_code\system"";" \n
                         "_filterBuilds = getArray ( _config >> ""filterBuilds"");" \n
                         "" \n
                         "//DECLARE" \n
                         "_taskCall = """";" \n
                         "" \n
                         "" \n
                         "" \n
                         ""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 3;
                                        priority = 0.000000;
                                        to="setup";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "setup">*/
                class setup
                {
                        name = "setup";
                        itemno = 2;
                        init = /*%FSM<STATEINIT""">*/"" \n
                         "//_config = missionConfigFile;" \n
                         "" \n
                         "//Mission Control - WIP. TODO: Move to serverside mission control UINamespace not secure." \n
                         "//uiNameSpace setVariable [""axeTask"",_taskName];" \n
                         "_plyrVar = missionNamespace getVariable [""EPOCH_playerMissionArray"",[]];" \n
                         "_taskIndex = ((_plyrVar apply {_x find ""axeTask"" > -1;}) find true);" \n
                         "if(_taskIndex > -1)then{" \n
                         "_plyrVar deleteAt _taskIndex;" \n
                         "};" \n
                         "_plyrVar pushBack [""axeTask"",_taskName];" \n
                         "missionNamespace setVariable [""EPOCH_playerMissionArray"",_plyrVar];" \n
                         "" \n
                         "missionNameSpace setVariable [""axeTask"",_taskName];" \n
                         "" \n
                         "//Built in Vars" \n
                         "_startTime = diag_tickTime;" \n
                         "EPOCH_task_startTime = _startTime;" \n
                         "EPOCH_taskLastLoop = EPOCH_task_startTime;" \n
                         "EPOCH_taskItem = objNull;" \n
                         "if(isNil ""EPOCH_taskMarkerName"")then{EPOCH_taskMarkerName = """";};" \n
                         "" \n
                         "//Task Vars from Config with relevant local vars" \n
                         "//TODO - Move relevant ones into FSM so only called if required." \n
                         "_taskTitle = getText  ( _config >> _taskName >> ""title"");" \n
                         "EPOCH_taskTitle = _taskTitle;" \n
                         "_taskDesc = getText ( _config >> _taskName >>  ""desc"");" \n
                         "_taskImg = getText ( _config >> _taskName >>  ""img"");" \n
                         "_taskSimple = getNumber ( _config >> _taskName >>  ""simpleTask"");" \n
                         "_taskDelay = getNumber ( _config >> _taskName >>  ""triggerDelay"");" \n
                         "_taskTrigger = getText ( _config >> _taskName >>  ""triggerCondition"");" \n
                         "_taskFSM = getText ( _config >> _taskName >>  ""initfsm"");" \n
                         "_taskSQF = getText ( _config >> _taskName >>  ""initsqf"");" \n
                         "_taskCall = getText ( _config >> _taskName >>  ""initcall"");" \n
                         "_binTask = getNumber ( _config >> _taskName >>  ""callEventBinTask"");" \n
                         "_taskEventCond1 = compile getText ( _config >> _taskName >>  ""callEventCondition1"");" \n
                         "_taskEventCond2 = compile getText ( _config >> _taskName >>  ""callEventCondition2"");" \n
                         "_taskEventCond3 = compile getText ( _config >> _taskName >>  ""callEventCondition3"");" \n
                         "_taskEventSQF1 = getText ( _config >> _taskName >>  ""callEventSQF1"");" \n
                         "_taskEventSQF2 = getText ( _config >> _taskName >>  ""callEventSQF2"");" \n
                         "_taskEventSQF3 = getText ( _config >> _taskName >>  ""callEventSQF3"");" \n
                         "_taskEventFSM1 = getText ( _config >> _taskName >>  ""callEventFSM1"");" \n
                         "_taskEventFSM2 = getText ( _config >> _taskName >>  ""callEventFSM2"");" \n
                         "_taskEventFSM3 = getText ( _config >> _taskName >>  ""callEventFSM3"");" \n
                         "_taskEventCALL1 = compile getText ( _config >> _taskName >>  ""callEventCALL1"");" \n
                         "_taskEventCALL2 = compile getText ( _config >> _taskName >>  ""callEventCALL2"");" \n
                         "_taskEventCALL3 = compile getText ( _config >> _taskName >>  ""callEventCALL3"");" \n
                         "_taskEventTask1 = getText ( _config >> _taskName >>  ""callEventTask1"");" \n
                         "_taskEventTask2 = getText ( _config >> _taskName >>  ""callEventTask2"");" \n
                         "_taskEventTask3 = getText ( _config >> _taskName >>  ""callEventTask3"");" \n
                         "_event1Done = false;" \n
                         "_event2Done = false;" \n
                         "_event3Done = false;" \n
                         "_taskItems =  getArray ( _config >> _taskName >> ""items"");" \n
                         "_taskItemSpawn =  getNumber ( _config >> _taskName >>  ""itemSpawn"");" \n
                         "_taskMarkerType = getNumber ( _config >> _taskName >>  ""markerType"");" \n
                         "_taskMarkerRad = getNumber ( _config >> _taskName >>  ""markerRadius"");" \n
                         "_taskMarkerText =  getText ( _config >> _taskName >>  ""markerText"");" \n
                         "_taskMarkerVis = getNumber ( _config >> _taskName >>  ""markerVisible"");" \n
                         "_taskDiagSquelch = getNumber ( _config >> _taskName >>  ""diagSquelch"");" \n
                         "_lastChat = diag_tickTime;" \n
                         "_taskDiagCond1 = compile getText ( _config >> _taskName >>  ""diag1Condition"");" \n
                         "_taskDiagCond2 = compile getText ( _config >> _taskName >>  ""diag2Condition"");" \n
                         "_taskDiagCond3 = compile getText ( _config >> _taskName >>  ""diag3Condition"");" \n
                         "_taskDiag1 = getArray ( _config >> _taskName >>  ""dialogue1"");" \n
                         "_taskDiag2 = getArray ( _config >> _taskName >>  ""dialogue2"");" \n
                         "_taskDiag3 = getArray ( _config >> _taskName >>  ""dialogue3"");" \n
                         "_chat1Done = false;" \n
                         "_chat2Done = false;" \n
                         "_chat3Done = false;" \n
                         "" \n
                         "//Failed" \n
                         "_taskFailedCond = compile getText ( _config >> _taskName >>  ""failedCondition"");" \n
                         "_taskFailDist = getNumber ( _config >> _taskName >>  ""abandonDist"");" \n
                         "if(_taskFailDist < 1)then{_taskFailDist=999999;};" \n
                         "_taskFailTime = getNumber ( _config >> _taskName >>  ""abandonTime"");" \n
                         "if(_taskFailTime < 1)then{_taskFailTime=999999;};" \n
                         "_taskFailed = false;" \n
                         "//Failed Calls and Diag done in task failed." \n
                         "_taskFailedCall = compile """";" \n
                         "" \n
                         "//Completed" \n
                         "_taskCompleteCond = compile getText ( _config >> _taskName >>  ""completeCondition"");" \n
                         "_taskReward = getArray ( _config >> _taskName >>  ""reward"");" \n
                         "_taskCompleteDiag1 = getArray ( _config >> _taskName >>  ""completed1"");" \n
                         "_taskCompleteDiag2 = getArray ( _config >> _taskName >>  ""completed2"");" \n
                         "_taskCompleteCall = compile getText ( _config >> _taskName >>  ""completedCALL"");" \n
                         "_diag1Done = false;" \n
                         "_diag2Done = false;" \n
                         "_taskReminder = getArray ( _config >> _taskName >>  ""reminder"");" \n
                         "_taskCheckTime = getNumber ( _config >> _taskName >>  ""taskCheckTime"");" \n
                         "" \n
                         "" \n
                         "_taskNextTrigger = getArray ( _config >> _taskName >>  ""nextTask"");" \n
                         "_taskCleanup = getNumber ( _config >> _taskName >>  ""cleanUp"");" \n
                         "_missionCleanUp = getArray ( _config >> _taskName >>  ""cleanUpCalls"");" \n
                         "" \n
                         "_completed = false;" \n
                         "" \n
                         "//Custom Vars" \n
                         "_customVars = [];" \n
                         "_varNames = getArray ( _config >> ""varName"");" \n
                         "_varDatas = getArray ( _config >> ""varData"");" \n
                         "_serverCmd = [];" \n
                         "_doSkip = false;" \n
                         "_taskFailed = false;" \n
                         "_doBin = false;" \n
                         "" \n
                         "if(count _varNames > 0)then{" \n
                         "" \n
                         "{" \n
                         "call compile format [""missionNamespace setVariable%3""""%1"""", %2%4;"",parseText _x,_varDatas select _forEachIndex,parseText ""["",parseText ""]""];" \n
                         "//systemChat format [""%1 = %2"",parseText (_x),(_varDatas select _forEachIndex)];" \n
                         "//_customVars pushBack (_varDatas select _forEachIndex);" \n
                         "}forEach _varNames;" \n
                         "" \n
                         "};" \n
                         "" \n
                         "//Functions" \n
                         "_execFSM = {" \n
                         "//systemChat format[""execing FSM %1"",_this];" \n
                         "call compile format [""[_taskName,_plyr,_unit,_taskItem] execFSM """"%1"""""",_this];" \n
                         "};" \n
                         "" \n
                         "_execSQF = {" \n
                         "//systemChat format[""execing SQF %1"",_this];" \n
                         "call compile format [""[_taskName,_plyr,_unit,_taskItem] execVM """"%1"""""",_this];" \n
                         "};" \n
                         "" \n
                         "_spawnWH = {" \n
                         "_retTaskWH = objNull;" \n
                         "_retTaskWH = createVehicle[""GroundWeaponHolder"",_this select 0,[],0,""CAN_COLLIDE""];" \n
                         "_retTaskWH" \n
                         "};" \n
                         "" \n
                         "//SystemChat format [""INIT: %1"",_taskTitle];" \n
                         "_debugDo = ""INIT"";" \n
                         "_showDebug = {" \n
                         "//hint format [""%4\n%1\nStage: %2\nMsg: %3\nTask: %4"", _debugDo,_missionStage,_msg1,_missionName,_taskTitle];" \n
                         "};"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "run_test">*/
                                class run_test
                                {
                                        itemno = 74;
                                        priority = 20.000000;
                                        to="override_for_task";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_editorTest"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "simple_task">*/
                                class simple_task
                                {
                                        itemno = 72;
                                        priority = 10.000000;
                                        to="actions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskSimple > 0;"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_doSkip = true;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 33;
                                        priority = 0.000000;
                                        to="comms";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "items_and_vars">*/
                class items_and_vars
                {
                        name = "items_and_vars";
                        itemno = 4;
                        init = /*%FSM<STATEINIT""">*/"//SystemChat format [""START: Do Spawn: %1"",_taskItemSpawn];" \n
                         "_taskStartPos = getPosATL _plyr;" \n
                         "_startTime = diag_tickTime;"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "item_spawn">*/
                                class item_spawn
                                {
                                        itemno = 22;
                                        priority = 5.000000;
                                        to="spawn_item";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskItemSpawn > 0 && count _taskItems > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_taskItem = objNull;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "no_item_spawn">*/
                                class no_item_spawn
                                {
                                        itemno = 7;
                                        priority = 0.000000;
                                        to="actions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskItemSpawn < 1"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "end">*/
                class end
                {
                        name = "end";
                        itemno = 6;
                        init = /*%FSM<STATEINIT""">*/"//uiNameSpace setVariable [""axeTask"",nil];" \n
                         "if!(_doBin)then{" \n
                         "_plyrVar = missionNamespace getVariable [""EPOCH_playerMissionArray"",[]];" \n
                         "_taskIndex = ((_plyrVar apply {_x find ""axeTask"" > -1;}) find true);" \n
                         "if(_taskIndex > -1)then{" \n
                         "_plyrVar deleteAt _taskIndex;" \n
                         "};" \n
                         "missionNamespace setVariable [""EPOCH_playerMissionArray"",_plyrVar];" \n
                         "};" \n
                         "if(count _missionCleanUp > 0)then{" \n
                         "{" \n
                         "call compile _x;" \n
                         "} forEach _missionCleanUp;" \n
                         "};" \n
                         "_debugDo = ""DISPOSE"";" \n
                         "diag_log format [""Task Failed: %1"",_taskName];"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "do_monitor">*/
                class do_monitor
                {
                        name = "do_monitor";
                        itemno = 8;
                        init = /*%FSM<STATEINIT""">*/"_lastLoop = diag_tickTime;" \n
                         "EPOCH_taskLastLoop = _lastLoop;" \n
                         "_plyPos = getPosATL _plyr;"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 11;
                                        priority = 0.000000;
                                        to="chat_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "next">*/
                class next
                {
                        name = "next";
                        itemno = 9;
                        init = /*%FSM<STATEINIT""">*/"//Clean Up / Other Options here"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "task_completed">*/
                                class task_completed
                                {
                                        itemno = 5;
                                        priority = 15.000000;
                                        to="completed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_completed && diag_tickTime - _lastLoop > _taskCheckTime"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_lastLoop = diag_tickTime;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "task_failed">*/
                                class task_failed
                                {
                                        itemno = 49;
                                        priority = 10.000000;
                                        to="failed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskFailed"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_taskFailedDiag = [];" \n
                                         "_taskFailedFSM = """";" \n
                                         "_taskFailedSQF = """";" \n
                                         "_taskFailedCall = compile """";" \n
                                         "" \n
                                         "if!(_editorTest)then{" \n
                                         "_taskFailedDiag = getArray ( _config >> _taskName >>  ""failed"");" \n
                                         "_taskFailedFSM = getText ( _config >> _taskName >>  ""failedFSM"");" \n
                                         "_taskFailedSQF = getText ( _config >> _taskName >>  ""failedSQF"");" \n
                                         "_taskFailedCall = compile getText ( _config >> _taskName >>  ""failedCall"");" \n
                                         "_nextTask = getArray ( _config >> _taskName >>  ""failedTask"");" \n
                                         "}else{" \n
                                         "_taskFailedDiag = parseText axeValCacheList select 41;" \n
                                         "_taskFailedFSM = axeValCacheList select 42;" \n
                                         "_taskFailedSQF = axeValCacheList select 43;" \n
                                         "_taskFailedCall = axeValCacheList select 44;" \n
                                         "_nextTask = parseText axeValCacheList select 45;" \n
                                         "};" \n
                                         "" \n
                                         "_taskReminder = [];"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "loop">*/
                                class loop
                                {
                                        itemno = 10;
                                        priority = 5.000000;
                                        to="do_monitor";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"((!_completed) || (!_taskFailed)) && diag_tickTime - _lastLoop > _taskCheckTime"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "chat_conditions">*/
                class chat_conditions
                {
                        name = "chat_conditions";
                        itemno = 13;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "chat_3">*/
                                class chat_3
                                {
                                        itemno = 21;
                                        priority = 15.000000;
                                        to="chat_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"diag_tickTime - _lastChat > _taskDiagSquelch && call _taskDiagCond3 && count _taskDiag3 > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_diag = selectRandom _taskDiag3;" \n
                                         "" \n
                                         "[format [""%1"",_diag], 5] call Epoch_message;" \n
                                         "" \n
                                         "" \n
                                         "_chat3Done = true;" \n
                                         "_lastChat = diag_tickTime;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "chat_2">*/
                                class chat_2
                                {
                                        itemno = 20;
                                        priority = 10.000000;
                                        to="chat_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"diag_tickTime - _lastChat > _taskDiagSquelch && call _taskDiagCond2 && count _taskDiag2 > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_diag = selectRandom _taskDiag2;" \n
                                         "[format [""%1"",_diag], 5] call Epoch_message;" \n
                                         "_chat2Done = true;" \n
                                         "_lastChat = diag_tickTime;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "server">*/
                                class server
                                {
                                        itemno = 71;
                                        priority = 10.000000;
                                        to="comms_2";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"count _serverCmd > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "chat_1">*/
                                class chat_1
                                {
                                        itemno = 19;
                                        priority = 5.000000;
                                        to="chat_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"(!_chat1Done) && call _taskDiagCond1 && count _taskDiag1 > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_diag = selectRandom _taskDiag1;" \n
                                         "[format [""%1"",_diag], 5] call Epoch_message;" \n
                                         "_chat1Done = true;" \n
                                         "_lastChat = diag_tickTime;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 12;
                                        priority = 0.000000;
                                        to="event_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "event_conditions">*/
                class event_conditions
                {
                        name = "event_conditions";
                        itemno = 14;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "event_3">*/
                                class event_3
                                {
                                        itemno = 32;
                                        priority = 20.000000;
                                        to="event_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"(!_event3Done) && call _taskEventCond3"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"if!(_taskEventFSM3 == """")then{" \n
                                         "_taskEventFSM3 call _execFSM;" \n
                                         "};" \n
                                         "" \n
                                         "if!(_taskEventSQF3 == """")then{" \n
                                         "_taskEventSQF3 call _execSQF;" \n
                                         "};" \n
                                         "" \n
                                         "if!(str(_taskEventCALL3) == ""{}"")then{" \n
                                         "call _taskEventCALL3;" \n
                                         "};" \n
                                         "" \n
                                         "if!(_taskEventTask3 == """")then{" \n
                                         "call compile format[""epochTaskHandle = [""""%2""""] execFSM """"%1\task_control.fsm"""";"",_fsmPath,_taskEventTask3];" \n
                                         "" \n
                                         "if(_binTask > 0)then{" \n
                                         "_doBin = true;" \n
                                         "};" \n
                                         "" \n
                                         "};" \n
                                         "" \n
                                         "_event3Done = true;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "event_2">*/
                                class event_2
                                {
                                        itemno = 31;
                                        priority = 15.000000;
                                        to="event_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"(!_event2Done) && call _taskEventCond2"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"if!(_taskEventFSM2 == """")then{" \n
                                         "_taskEventFSM2 call _execFSM;" \n
                                         "};" \n
                                         "" \n
                                         "if!(_taskEventSQF2 == """")then{" \n
                                         "_taskEventSQF2 call _execSQF;" \n
                                         "};" \n
                                         "" \n
                                         "if!(str(_taskEventCALL2) == ""{}"")then{" \n
                                         "call _taskEventCALL2;" \n
                                         "};" \n
                                         "" \n
                                         "if!(_taskEventTask2 == """")then{" \n
                                         "call compile format[""epochTaskHandle = [""""%2""""] execFSM """"%1\task_control.fsm"""";"",_fsmPath,_taskEventTask2];" \n
                                         "" \n
                                         "if(_binTask > 0)then{" \n
                                         "_doBin = true;" \n
                                         "};" \n
                                         "" \n
                                         "};" \n
                                         "" \n
                                         "_event2Done = true;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "event_1">*/
                                class event_1
                                {
                                        itemno = 30;
                                        priority = 10.000000;
                                        to="event_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"(!_event1Done) && call _taskEventCond1"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"if!(_taskEventFSM1 == """")then{" \n
                                         "_taskEventFSM1 call _execFSM;" \n
                                         "};" \n
                                         "" \n
                                         "if!(_taskEventSQF1 == """")then{" \n
                                         "_taskEventSQF1 call _execSQF;" \n
                                         "};" \n
                                         "" \n
                                         "if!(str(_taskEventCALL1) == ""{}"")then{" \n
                                         "call _taskEventCALL1;" \n
                                         "};" \n
                                         "" \n
                                         "if!(_taskEventTask1 == """")then{" \n
                                         "//TODO: Allow new separate mission from here." \n
                                         "call compile format[""epochTaskHandle = [""""%2""""] execFSM """"%1\task_control.fsm"""";"",_fsmPath,_taskEventTask1];" \n
                                         "" \n
                                         "if(_binTask > 0)then{" \n
                                         "_doBin = true;" \n
                                         "};" \n
                                         "" \n
                                         "};" \n
                                         "" \n
                                         "_event1Done = true;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "bin_it">*/
                                class bin_it
                                {
                                        itemno = 76;
                                        priority = 5.000000;
                                        to="clean_up";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_doBin"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 15;
                                        priority = 0.000000;
                                        to="task_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "comms">*/
                class comms
                {
                        name = "comms";
                        itemno = 16;
                        init = /*%FSM<STATEINIT""">*/"//[_plyr,0,_taskID] remoteExec [""EPOCH_Server_missionComms"",3];"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "delay">*/
                                class delay
                                {
                                        itemno = 1;
                                        priority = 0.000000;
                                        to="items_and_vars";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"diag_tickTime > _startTime + _taskDelay"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "task_conditions">*/
                class task_conditions
                {
                        name = "task_conditions";
                        itemno = 18;
                        init = /*%FSM<STATEINIT""">*/"if((_plyPos distance _taskStartPos > _taskFailDist) || (diag_tickTIme - _startTime > _taskFailTime) || (call _taskFailedCond))then{" \n
                         "_taskFailed = true;" \n
                         "};" \n
                         "" \n
                         "if(call _taskCompleteCond)then{" \n
                         "_completed = true;" \n
                         "};"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 17;
                                        priority = 0.000000;
                                        to="next";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "actions">*/
                class actions
                {
                        name = "actions";
                        itemno = 23;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "call">*/
                                class call
                                {
                                        itemno = 60;
                                        priority = 20.000000;
                                        to="actions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(_taskCall == """")" \n
                                         "//USE isNill NOT == """""/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"call compile _taskCall;" \n
                                         "_taskCall = """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "fsm">*/
                                class fsm
                                {
                                        itemno = 58;
                                        priority = 15.000000;
                                        to="actions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(_taskFSM == """")"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_taskFSM call _execFSM;" \n
                                         "_taskFSM = """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "sqf">*/
                                class sqf
                                {
                                        itemno = 59;
                                        priority = 10.000000;
                                        to="actions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(_taskSQF == """")"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"systemChat ""SQF NOT NIL"";" \n
                                         "_taskSQF call _execSQF;" \n
                                         "_taskSQF = """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "skip">*/
                                class skip
                                {
                                        itemno = 73;
                                        priority = 5.000000;
                                        to="next_task";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_doSkip"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 42;
                                        priority = 0.000000;
                                        to="markers";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "spawn_item">*/
                class spawn_item
                {
                        name = "spawn_item";
                        itemno = 25;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "near_player">*/
                                class near_player
                                {
                                        itemno = 29;
                                        priority = 15.000000;
                                        to="spawn_item";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskItemSpawn == 3"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_pos = getPosATL player;" \n
                                         "_taskItem = [_pos] call _spawnWH;" \n
                                         "_taskItemSpawn = -1;" \n
                                         ""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "in_house">*/
                                class in_house
                                {
                                        itemno = 27;
                                        priority = 10.000000;
                                        to="spawn_item";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskItemSpawn == 1"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_nrBuilds = nearestObjects [_plyr,[""house""],50];" \n
                                         "_arrGarr = [];" \n
                                         "_bldMap = [];" \n
                                         "_pos = getPosATL _plyr;" \n
                                         "" \n
                                         "{" \n
                                         "" \n
                                         "if(!((typeOf _x) in _filterBuilds))then{" \n
                                         "" \n
                                         "	_garrCount = 0;" \n
                                         "" \n
                                         "	while {format [""%1"", _x buildingPos (_garrCount)] != ""[0,0,0]"" } do {" \n
                                         "	_garrCount = _garrCount + 1;" \n
                                         "	};" \n
                                         "" \n
                                         "	if(_garrCount > 0)then{" \n
                                         "	_arrGarr pushBack [_x,_garrCount];" \n
                                         "	};" \n
                                         "" \n
                                         "};" \n
                                         "" \n
                                         "}forEach _nrBuilds;" \n
                                         "" \n
                                         "if(count _arrGarr > 0)then{" \n
                                         "" \n
                                         "	{" \n
                                         "	_garrPos =  (_x select 0) buildingPos (floor random (_x select 1));" \n
                                         "	_bldMap pushBack _garrPos;" \n
                                         "" \n
                                         "	}forEach _arrGarr;" \n
                                         "" \n
                                         "};" \n
                                         "" \n
                                         "if(count _bldMap > 0)then{" \n
                                         "_pos = _bldMap select (floor random (count _bldMap));" \n
                                         "};" \n
                                         "" \n
                                         "" \n
                                         "//_taskItem = createVehicle[""WeaponHolderSimulated"",_pos,[],0,""CAN_COLLIDE""];" \n
                                         "_taskItem = [_pos] call _spawnWH;" \n
                                         "" \n
                                         "" \n
                                         "_taskItemSpawn = -1;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "hidden_nearby">*/
                                class hidden_nearby
                                {
                                        itemno = 28;
                                        priority = 5.000000;
                                        to="find_spot";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskItemSpawn == 2"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_taskItemSpawn = -1;" \n
                                         "_posSafe = false;" \n
                                         "_done = false;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "ready">*/
                                class ready
                                {
                                        itemno = 26;
                                        priority = 0.000000;
                                        to="actions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!isNull _taskItem"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"[player,Epoch_personalToken,_taskItems,[],_taskItem,false] remoteExec [""EPOCH_Server_createObject"",2];" \n
                                         "EPOCH_taskItem = _taskItem;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "completed">*/
                class completed
                {
                        name = "completed";
                        itemno = 34;
                        init = /*%FSM<STATEINIT""">*/"//Put more checks in for empty dialogue array so as not just waiting a set time"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "diag_1">*/
                                class diag_1
                                {
                                        itemno = 35;
                                        priority = 15.000000;
                                        to="completed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!_diag1Done && count _taskCompleteDiag1 > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_diag = selectRandom _taskCompleteDiag1;" \n
                                         "[format [""%1"",_diag], 5] call Epoch_message;" \n
                                         "_diag1Done = true;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "diag_2">*/
                                class diag_2
                                {
                                        itemno = 36;
                                        priority = 10.000000;
                                        to="completed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_diag1Done && (!_diag2Done) && diag_tickTime - _lastLoop > 20 && count _taskCompleteDiag2 > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_diag = selectRandom _taskCompleteDiag2;" \n
                                         "[format [""%1"",_diag], 5] call Epoch_message;" \n
                                         "_diag2Done = true;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "call">*/
                                class call
                                {
                                        itemno = 82;
                                        priority = 5.000000;
                                        to="completed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(str(_taskCompleteCall) == ""{}"")"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"call _taskCompleteCall;" \n
                                         "_taskCompleteCall = compile """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 41;
                                        priority = 0.000000;
                                        to="reward";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "reward">*/
                class reward
                {
                        name = "reward";
                        itemno = 38;
                        init = /*%FSM<STATEINIT""">*/"if(count _taskReward > 0)then{" \n
                         "" \n
                         "diag_log format [""spawn reward: %1"",_taskReward];" \n
                         "" \n
                         "_rewardHolder = [getPosATL player] call _spawnWH;" \n
                         "" \n
                         "[player,Epoch_personalToken,_taskReward,[],_rewardHolder,false] remoteExec [""EPOCH_Server_createObject"",2];" \n
                         "" \n
                         "};" \n
                         "" \n
                         "_debugDo = ""REWARD"";"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "pause">*/
                                class pause
                                {
                                        itemno = 37;
                                        priority = 0.000000;
                                        to="clean_up";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"diag_tickTime - _lastLoop > _taskCheckTime"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "comms_1">*/
                class comms_1
                {
                        name = "comms_1";
                        itemno = 39;
                        init = /*%FSM<STATEINIT""">*/"//[_plyr,1,_taskID] remoteExec [""EPOCH_Server_missionComms"",3];"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 67;
                                        priority = 0.000000;
                                        to="next_task";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "markers">*/
                class markers
                {
                        name = "markers";
                        itemno = 43;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "continue">*/
                                class continue
                                {
                                        itemno = 44;
                                        priority = 100.000000;
                                        to="do_monitor";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"//no marker" \n
                                         "_taskMarkerType < 1"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "marker_pos">*/
                                class marker_pos
                                {
                                        itemno = 46;
                                        priority = 0.000000;
                                        to="do_markers";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskMarkerType > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_markerPos = [];" \n
                                         "if(isNil ""EPOCH_taskMarkerPos"")then{" \n
                                         "if!(isNull _trgt)then{" \n
                                         "_markerPos = getPos _trgt;" \n
                                         "};" \n
                                         "" \n
                                         "if!(isNull _unit)then{" \n
                                         "_markerPos = getPos _unit;" \n
                                         "};" \n
                                         "" \n
                                         "if!(isNull _taskItem)then{" \n
                                         "_markerPos = getPos _taskItem;" \n
                                         "};" \n
                                         "" \n
                                         "}else{" \n
                                         "_markerPos = EPOCH_taskMarkerPos;" \n
                                         "};" \n
                                         "" \n
                                         "_mkrName = format[""EPOCHTaskMark%1%2"", _taskName,diag_tickTime];" \n
                                         "EPOCH_taskMarkerName = _mkrName;" \n
                                         "_markerText = getText ( _config >> _taskName >>  ""markerText"");" \n
                                         "_markerRad = getNumber ( _config >> _taskName >>  ""markerRadius"");" \n
                                         "" \n
                                         "if(_taskMarkerType == 2)then{" \n
                                         "_markerPos set [0, (_markerPos select 0) + (floor (random _markerRad) - (_markerRad / 2))];" \n
                                         "_markerPos set [1, (_markerPos select 1) + (floor (random _markerRad) - (_markerRad / 2))];" \n
                                         "};" \n
                                         "" \n
                                         "" \n
                                         ""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "do_markers">*/
                class do_markers
                {
                        name = "do_markers";
                        itemno = 47;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "continue">*/
                                class continue
                                {
                                        itemno = 44;
                                        priority = 100.000000;
                                        to="do_monitor";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"//no marker" \n
                                         "_taskMarkerType < 1"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "radius">*/
                                class radius
                                {
                                        itemno = 45;
                                        priority = 0.000000;
                                        to="do_markers";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskMarkerType == 2"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"[[_taskMarkerVis,player],_markerPos,""ELLIPSE"",""mil_dot"",_markerText,""ColorYellow"",[_taskMarkerRad,_taskMarkerRad], ""SolidBorder"", 42, 0.6,_taskTitle] remoteExec [""EPOCH_server_makeMarker"",2];" \n
                                         "_taskMarkerType = -1;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "point">*/
                                class point
                                {
                                        itemno = 24;
                                        priority = 0.000000;
                                        to="do_markers";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskMarkerType == 1"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"[[_taskMarkerVis,player],_markerPos,""ICON"",""mil_dot"",_markerText,""ColorYellow"",[0.8,0.8], ""SolidBorder"", 42, 0.6,_taskTitle] remoteExec [""EPOCH_server_makeMarker"",2];" \n
                                         "_taskMarkerType = -1;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "find_spot">*/
                class find_spot
                {
                        name = "find_spot";
                        itemno = 48;
                        init = /*%FSM<STATEINIT""">*/"//TODO: try catch used incorrectly here" \n
                         "try{" \n
                         "_pos = [(getPosATL _plyr), (floor (random 80) + 42), floor random 360] call BIS_fnc_relPos;" \n
                         "" \n
                         "if (!lineIntersects [eyePos _plyr, _pos, _plyr, _unit]) then {_posSafe = true;};" \n
                         "" \n
                         "if(_posSafe)then{" \n
                         "//_taskItem = createVehicle[""GroundWeaponHolder"",_pos,[],0,""CAN_COLLIDE""];" \n
                         "_taskItem = [_pos] call _spawnWH;" \n
                         "_taskItemSpawn = -1;" \n
                         "_done = true;" \n
                         "};" \n
                         "" \n
                         "}catch{" \n
                         "systemchat format[""CATCH:%1"",_exception];" \n
                         "done = true;" \n
                         "_taskItemSpawn = 1;" \n
                         "};"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "not_hidden">*/
                                class not_hidden
                                {
                                        itemno = 61;
                                        priority = 10.000000;
                                        to="find_spot";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!_posSafe;"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "is_hidden">*/
                                class is_hidden
                                {
                                        itemno = 62;
                                        priority = 5.000000;
                                        to="spawn_item";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_done;"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "failed">*/
                class failed
                {
                        name = "failed";
                        itemno = 50;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "call">*/
                                class call
                                {
                                        itemno = 54;
                                        priority = 20.000000;
                                        to="failed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(str(_taskFailedCall) == ""{}"")"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"call _taskFailedCall;" \n
                                         "_taskFailedCall = compile """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "sqf">*/
                                class sqf
                                {
                                        itemno = 53;
                                        priority = 15.000000;
                                        to="failed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(_taskFailedSQF == """")"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_taskFailedSQF call _execSQF;" \n
                                         "_taskFailedSQF = """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "fsm">*/
                                class fsm
                                {
                                        itemno = 52;
                                        priority = 10.000000;
                                        to="failed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(_taskFailedFSM == """")"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_taskFailedFSM call _execFSM;" \n
                                         "_taskFailedFSM = """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "diag">*/
                                class diag
                                {
                                        itemno = 51;
                                        priority = 5.000000;
                                        to="failed";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"count _taskFailedDiag > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_diag = selectRandom _taskFailedDiag;" \n
                                         "[format [""%1"",_diag], 5] call Epoch_message;" \n
                                         "_taskFailedDiag = [];"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "pause">*/
                                class pause
                                {
                                        itemno = 37;
                                        priority = 0.000000;
                                        to="clean_up";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"diag_tickTime - _lastLoop > _taskCheckTime"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "clean_up">*/
                class clean_up
                {
                        name = "clean_up";
                        itemno = 55;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "clean_up">*/
                                class clean_up
                                {
                                        itemno = 69;
                                        priority = 15.000000;
                                        to="clean_up";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskCleanup > 0"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"//deleteVehicle _taskItem;" \n
                                         "//[_plyr,0,_taskID,_taskItem] remoteExec [""EPOCH_Server_missionComms"",3];" \n
                                         "_taskCleanup = -1;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "remind_dialogue">*/
                                class remind_dialogue
                                {
                                        itemno = 66;
                                        priority = 10.000000;
                                        to="clean_up";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"count _taskReminder > 0 && !_taskFailed"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_diag = selectRandom _taskReminder;" \n
                                         "[format [""%1"",_diag], 5] call Epoch_message;" \n
                                         "_taskReminder = [];"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "markers">*/
                                class markers
                                {
                                        itemno = 57;
                                        priority = 5.000000;
                                        to="clean_up";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(isNil ""EPOCH_taskMarkerName"") && (_taskCleanup > 0 || _taskFailed)"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"[player,_taskMarkerVis,EPOCH_taskMarkerName] remoteExec [""EPOCH_server_removeMarker"",2];" \n
                                         "_mkrName = nil;" \n
                                         "EPOCH_taskMarkerName = nil;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 56;
                                        priority = 0.000000;
                                        to="comms_1";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "gui">*/
                class gui
                {
                        name = "gui";
                        itemno = 63;
                        init = /*%FSM<STATEINIT""">*/"//GUI dialogue Options for Raymix :)"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "no_dialogoue">*/
                                class no_dialogoue
                                {
                                        itemno = 64;
                                        priority = 10.000000;
                                        to="items_and_vars";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskTitle == """""/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "dialogue">*/
                                class dialogue
                                {
                                        itemno = 65;
                                        priority = 5.000000;
                                        to="gui";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"!(_taskTitle == """")"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"" \n
                                         "axeTaskTitle = _taskTitle;" \n
                                         "axeTaskDesc = _taskDesc;" \n
                                         "axeTaskImg = _taskImg;" \n
                                         "createDialog ""taskAccept"";" \n
                                         "" \n
                                         "_taskTitle = """";"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "next_task">*/
                class next_task
                {
                        name = "next_task";
                        itemno = 68;
                        init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "mission_complete">*/
                                class mission_complete
                                {
                                        itemno = 40;
                                        priority = 10.000000;
                                        to="end";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"count _taskNextTrigger < 1 || !alive _plyr || _taskFailed || _doBin"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "next_task">*/
                                class next_task
                                {
                                        itemno = 79;
                                        priority = 5.000000;
                                        to="setup";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"count _taskNextTrigger > 0 && !_taskFailed"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_taskName = selectRandom _taskNextTrigger;" \n
                                         "diag_log format [""Trigger Next Task: %1"",_taskName];" \n
                                         "_taskNextTrigger = [];"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "comms_2">*/
                class comms_2
                {
                        name = "comms_2";
                        itemno = 70;
                        init = /*%FSM<STATEINIT""">*/"" \n
                         "systemChat format [""SERVER CMD: %1"",_serverCmd];" \n
                         "" \n
                         "_serverCmd = [];"/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 12;
                                        priority = 0.000000;
                                        to="event_conditions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
                /*%FSM<STATE "override_for_task">*/
                class override_for_task
                {
                        name = "override_for_task";
                        itemno = 75;
                        init = /*%FSM<STATEINIT""">*/"_taskAuthor = axeValCacheList select 0;" \n
                         "_taskTitle = axeValCacheList select 1;" \n
                         "_taskSimple = parseNumber (axeValCacheList select 2);" \n
                         "_taskDesc = ""Test Task"";" \n
                         "_taskImg = ""NOIMG"";" \n
                         "_taskTrigger = axeValCacheList select 3;" \n
                         "_taskLimit = parseNumber (axeValCacheList select 4);" \n
                         "_taskCheckTime = parseNumber (axeValCacheList select 5);" \n
                         "_taskDelay = parseNumber (axeValCacheList select 6);" \n
                         "_taskItems = parseText axeValCacheList select 7;" \n
                         "_taskItemSpawn = parseNumber (axeValCacheList select 8);" \n
                         "_taskMarkerType = parseNumber (axeValCacheList select 9);" \n
                         "_taskMarkerRad = parseNumber (axeValCacheList select 10);" \n
                         "_taskMarkerText = axeValCacheList select 11;" \n
                         "_taskFSM = axeValCacheList select 12;" \n
                         "_taskSQF = axeValCacheList select 13;" \n
                         "_taskCall = axeValCacheList select 14;" \n
                         "_binTask = parseNumber (axeValCacheList select 15);" \n
                         "_taskEventCond1 = axeValCacheList select 16;" \n
                         "_taskEventCond2 = axeValCacheList select 17;" \n
                         "_taskEventCond3 = axeValCacheList select 18;" \n
                         "_taskEventCALL1 = axeValCacheList select 19;" \n
                         "_taskEventFSM1 = axeValCacheList select 20;" \n
                         "_taskEventSQF1 = axeValCacheList select 21;" \n
                         "_taskEventTask1 = axeValCacheList select 22;" \n
                         "_taskEventCALL2 = axeValCacheList select 23;" \n
                         "_taskEventFSM2 = axeValCacheList select 24;" \n
                         "_taskEventSQF2 = axeValCacheList select 25;" \n
                         "_taskEventTask2 = axeValCacheList select 26;" \n
                         "_taskEventCALL3 = axeValCacheList select 27;" \n
                         "_taskEventFSM3 = axeValCacheList select 28;" \n
                         "_taskEventSQF3 = axeValCacheList select 29;" \n
                         "_taskEventTask3 = axeValCacheList select 30;" \n
                         "_taskDiagCond1 = axeValCacheList select 31;" \n
                         "_taskDiag1 = parseText axeValCacheList select 32;" \n
                         "_taskDiagSquelch = parseNumber (axeValCacheList select 33);" \n
                         "_taskDiagCond2 = axeValCacheList select 34;" \n
                         "_taskDiag2 = parseText axeValCacheList select 35;" \n
                         "_taskDiagCond3 = axeValCacheList select 36;" \n
                         "_taskDiag3 = parseText axeValCacheList select 37;" \n
                         "_taskFailedCond = axeValCacheList select 38;" \n
                         "_taskFailDist = parseNumber (axeValCacheList select 39);" \n
                         "_taskFailTime = parseNumber (axeValCacheList select 40);" \n
                         "//See task failed for this bit" \n
                         "_taskCleanup = parseNumber (axeValCacheList select 46);" \n
                         "_taskCompleteCond = axeValCacheList select 47;" \n
                         "_taskReward = parseText axeValCacheList select 48;" \n
                         "_taskCompleteDiag1 = parseText axeValCacheList select 49;" \n
                         "_taskCompleteDiag2 = parseText axeValCacheList select 50;" \n
                         "_taskReminder = axeValCacheList select 51;" \n
                         "_taskNextTrigger = parseText axeValCacheList select 52;" \n
                         ""/*%FSM</STATEINIT""">*/;
                        precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
                        class Links
                        {
                                /*%FSM<LINK "simple_task">*/
                                class simple_task
                                {
                                        itemno = 72;
                                        priority = 10.000000;
                                        to="actions";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"_taskSimple > 0;"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/"_doSkip = true;"/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                                /*%FSM<LINK "_">*/
                                class _
                                {
                                        itemno = 33;
                                        priority = 0.000000;
                                        to="comms";
                                        precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
                                        condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/;
                                        action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/;
                                };
                                /*%FSM</LINK>*/
                        };
                };
                /*%FSM</STATE>*/
        };
        initState="task_control";
        finalStates[] =
        {
                "end",
        };
};
/*%FSM</COMPILE>*/